Class: JSONSkooma::Validators::UriTemplate

Inherits:
Base
  • Object
show all
Defined in:
lib/json_skooma/validators/uri_template.rb

Constant Summary collapse

PCT =
/%\h\h/
VAR_CHAR =
/[A-Za-z\d_]|(#{PCT})/
VAR_NAME =
/#{VAR_CHAR}(\.?#{VAR_CHAR})*/
MOD4 =
/(:[1-9]\d{0,3}|(\*)?)/
VAR_SPEC =
/#{VAR_NAME}(#{MOD4})?/
VAR_LIST =
/#{VAR_SPEC}(,#{VAR_SPEC})*/
OPERATOR =
/[+#.\/;?&=,!@|]/
EXPRESSION =
/\{#{OPERATOR}?#{VAR_LIST}\}/
LITERALS =
/[^\x00-\x20\x7F"'%<>\\^`{|}]/
URI_TEMPLATE =
/((#{LITERALS})|(#{EXPRESSION}))*/
REGEXP =
/\A#{URI_TEMPLATE}\z/

Instance Method Summary collapse

Methods inherited from Base

assert?, call, inherited

Instance Method Details

#call(data) ⇒ Object

Raises:



19
20
21
22
23
# File 'lib/json_skooma/validators/uri_template.rb', line 19

def call(data)
  return if REGEXP.match?(data)

  raise FormatError, "#{data} is not a valid URI template"
end