Class: Graphomaton::UrlPolicy

Inherits:
Object
  • Object
show all
Defined in:
lib/graphomaton/url_policy.rb

Constant Summary collapse

%w[http https mailto].freeze
ASSET_SCHEMES =
%w[https].freeze
CONTROL_CHARACTERS =
/[\u0000-\u001f\u007f]/

Class Method Summary collapse

Class Method Details

.validate(value, context: 'URL', schemes: LINK_SCHEMES, allow_windows_path: false) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/graphomaton/url_policy.rb', line 11

def self.validate(value, context: 'URL', schemes: LINK_SCHEMES, allow_windows_path: false)
  url = value.to_s
  unless valid?(url, schemes: schemes, allow_windows_path: allow_windows_path)
    raise SecurityError, "Unsafe #{context}: #{value.inspect}"
  end

  url
end

.validate_asset(value, context: 'asset URL') ⇒ Object



20
21
22
# File 'lib/graphomaton/url_policy.rb', line 20

def self.validate_asset(value, context: 'asset URL')
  validate(value, context: context, schemes: ASSET_SCHEMES, allow_windows_path: true)
end