Class: JSONSchemer::Draft202012::Vocab::FormatAssertion::Format
- Extended by:
- Format
- Defined in:
- lib/json_schemer/draft202012/vocab/format_assertion.rb
Constant Summary collapse
- DEFAULT_FORMAT =
proc do |instance, value| !instance.is_a?(String) || valid_spec_format?(instance, value) end
Constants included from Format
Format::ASCII_8BIT_TO_PERCENT_ENCODED, Format::DATE_TIME_OFFSET_REGEX, Format::HOUR_24_REGEX, Format::INVALID_QUERY_REGEX, Format::IP_REGEX, Format::IRI_ESCAPE_REGEX, Format::LEAP_SECOND_REGEX, Format::NIL_UUID, Format::UUID_REGEX
Constants included from Format::URITemplate
Format::URITemplate::EXPLODE, Format::URITemplate::EXPRESSION, Format::URITemplate::LITERALS, Format::URITemplate::MAX_LENGTH, Format::URITemplate::MODIFIER_LEVEL4, Format::URITemplate::OPERATOR, Format::URITemplate::PCT_ENCODED, Format::URITemplate::PREFIX, Format::URITemplate::URI_TEMPLATE, Format::URITemplate::URI_TEMPLATE_REGEX, Format::URITemplate::VARCHAR, Format::URITemplate::VARIABLE_LIST, Format::URITemplate::VARNAME, Format::URITemplate::VARSPEC
Constants included from Format::JSONPointer
Format::JSONPointer::JSON_POINTER_REGEX, Format::JSONPointer::JSON_POINTER_REGEX_STRING, Format::JSONPointer::RELATIVE_JSON_POINTER_REGEX
Constants included from Format::Hostname
Format::Hostname::ARABIC_EXTENDED_DIGITS_REGEX, Format::Hostname::ARABIC_INDIC_DIGITS_REGEX, Format::Hostname::CONTEXT_REGEX, Format::Hostname::EXCEPTIONS_DISALLOWED, Format::Hostname::EXCEPTIONS_PVALID, Format::Hostname::GREEK_LOWER_NUMERAL_SIGN, Format::Hostname::HEBREW_PUNCTUATION, Format::Hostname::HOSTNAME_REGEX, Format::Hostname::JOINING_TYPE_D_CHARACTER_CLASS, Format::Hostname::JOINING_TYPE_L_CHARACTER_CLASS, Format::Hostname::JOINING_TYPE_R_CHARACTER_CLASS, Format::Hostname::JOINING_TYPE_T_CHARACTER_CLASS, Format::Hostname::KATAKANA_MIDDLE_DOT_CONTEXT_REGEX, Format::Hostname::KATAKANA_MIDDLE_DOT_REGEX, Format::Hostname::LABEL_CHARACTER_CLASS, Format::Hostname::LABEL_REGEX_STRING, Format::Hostname::LEADING_CHARACTER_CLASS, Format::Hostname::LETTER_DIGITS, Format::Hostname::MARKS, Format::Hostname::MIDDLE_DOT, Format::Hostname::VIRAMA_CHARACTER_CLASS, Format::Hostname::ZERO_WIDTH_NON_JOINER_JOINING_TYPE, Format::Hostname::ZERO_WIDTH_VIRAMA
Constants included from Format::Email
Format::Email::ADDRESS_LITERAL, Format::Email::ATOM, Format::Email::A_TEXT, Format::Email::DOT_STRING, Format::Email::EMAIL_REGEX, Format::Email::LOCAL_PART, Format::Email::MAILBOX, Format::Email::QUOTED_PAIR_SMTP, Format::Email::QUOTED_STRING, Format::Email::Q_CONTENT_SMTP, Format::Email::Q_TEXT_SMTP, Format::Email::UTF8_NON_ASCII
Constants included from Format::Duration
Format::Duration::DURATION, Format::Duration::DURATION_REGEX, Format::Duration::DUR_DATE, Format::Duration::DUR_DAY, Format::Duration::DUR_HOUR, Format::Duration::DUR_MINUTE, Format::Duration::DUR_MONTH, Format::Duration::DUR_SECOND, Format::Duration::DUR_TIME, Format::Duration::DUR_WEEK, Format::Duration::DUR_YEAR
Constants included from Output
Instance Attribute Summary
Attributes inherited from Keyword
#parent, #parsed, #root, #value
Attributes included from Output
Instance Method Summary collapse
- #error(formatted_instance_location:) ⇒ Object
- #parse ⇒ Object
- #validate(instance, instance_location, keyword_location, _context) ⇒ Object
Methods included from Format
decode_content_encoding, iri_escape, parse_content_media_type, parse_uri_scheme, percent_encode, valid_date_time?, valid_ip?, valid_regex?, valid_spec_format?, valid_uri?, valid_uri_reference?, valid_uuid?
Methods included from Format::URITemplate
Methods included from Format::JSONPointer
#valid_json_pointer?, #valid_relative_json_pointer?
Methods included from Format::Hostname
Methods included from Format::Email
Methods included from Format::Duration
Methods inherited from Keyword
#absolute_keyword_location, #initialize, #schema_pointer
Constructor Details
This class inherits a constructor from JSONSchemer::Keyword
Instance Method Details
#error(formatted_instance_location:) ⇒ Object
13 14 15 |
# File 'lib/json_schemer/draft202012/vocab/format_assertion.rb', line 13 def error(formatted_instance_location:, **) "value at #{formatted_instance_location} does not match format: #{value}" end |
#parse ⇒ Object
17 18 19 |
# File 'lib/json_schemer/draft202012/vocab/format_assertion.rb', line 17 def parse root.format && root.formats.fetch(value) { root..formats.fetch(value, DEFAULT_FORMAT) } end |
#validate(instance, instance_location, keyword_location, _context) ⇒ Object
21 22 23 24 |
# File 'lib/json_schemer/draft202012/vocab/format_assertion.rb', line 21 def validate(instance, instance_location, keyword_location, _context) valid = parsed == false || parsed.call(instance, value) result(instance, instance_location, keyword_location, valid, :annotation => value) end |