Module: AssertUrl
- Defined in:
- lib/assert_url.rb
Constant Summary collapse
- PARTS =
%W[scheme host port path query fragment].each do |part| const_set("#{part.capitalize}Error", Class.new(StandardError)) end
Instance Method Summary collapse
- #assert_fragment_equal(expected, value) ⇒ Object
- #assert_host_equal(expected, value) ⇒ Object
- #assert_path_equal(expected, value) ⇒ Object
- #assert_port_equal(expected, value) ⇒ Object
- #assert_query_equal(expected, value) ⇒ Object
- #assert_query_include(expected, value) ⇒ Object
- #assert_scheme_equal(expected, value) ⇒ Object
-
#assert_url_equal(expected, value) ⇒ Object
#assert_url_equal runs all the validations above.
Instance Method Details
#assert_fragment_equal(expected, value) ⇒ Object
82 83 84 85 86 |
# File 'lib/assert_url.rb', line 82 def assert_fragment_equal(expected, value) value = urify(value).fragment expected == value || raises(FragmentError, expected, value) end |
#assert_host_equal(expected, value) ⇒ Object
29 30 31 32 33 |
# File 'lib/assert_url.rb', line 29 def assert_host_equal(expected, value) value = urify(value).host expected == value || raises(HostError, expected, value) end |
#assert_path_equal(expected, value) ⇒ Object
55 56 57 58 59 |
# File 'lib/assert_url.rb', line 55 def assert_path_equal(expected, value) value = urify(value).path expected == value || raises(PathError, expected, value) end |
#assert_port_equal(expected, value) ⇒ Object
42 43 44 45 46 |
# File 'lib/assert_url.rb', line 42 def assert_port_equal(expected, value) value = urify(value).port expected == value || raises(PortError, expected, value) end |
#assert_query_equal(expected, value) ⇒ Object
68 69 70 71 72 73 |
# File 'lib/assert_url.rb', line 68 def assert_query_equal(expected, value) value = urify(value).query expected = (URI.encode_www_form(expected) rescue expected) expected == value || raises(QueryError, expected, value) end |
#assert_query_include(expected, value) ⇒ Object
110 111 112 113 114 |
# File 'lib/assert_url.rb', line 110 def assert_query_include(expected, value) value = Hash[URI.decode_www_form(urify(value).query)] includes?(expected.to_a, value) || (raise QueryError, "expected #{value} to include #{expected}") end |
#assert_scheme_equal(expected, value) ⇒ Object
16 17 18 19 20 |
# File 'lib/assert_url.rb', line 16 def assert_scheme_equal(expected, value) value = urify(value).scheme expected.to_s == value || raises(SchemeError, expected, value) end |
#assert_url_equal(expected, value) ⇒ Object
#assert_url_equal runs all the validations above. It’s not a String comparison.
97 98 99 100 101 |
# File 'lib/assert_url.rb', line 97 def assert_url_equal(expected, value) expected, value = urify(expected), urify(value) PARTS.map { |part| send(:"assert_#{part}_equal", expected.send(part.to_sym), value) }.reduce(:&) end |