class JSchema::Validator::Format
Private Instance Methods
applicable_type()
click to toggle source
# File lib/jschema/validator/format.rb, line 33 def applicable_type String end
date_time(instance)
click to toggle source
# File lib/jschema/validator/format.rb, line 37 def date_time(instance) true if DateTime.rfc3339(instance) rescue ArgumentError false end
email(instance)
click to toggle source
# File lib/jschema/validator/format.rb, line 43 def email(instance) instance.include? '@' end
hostname(instance)
click to toggle source
Acc.to RFC 1034, 3.1
# File lib/jschema/validator/format.rb, line 48 def hostname(instance) if instance.length.between?(1, 255) instance.split('.').all? do |label| label =~ /^[\da-z\-]{1,63}$/i end else false end end
ipv4(instance)
click to toggle source
# File lib/jschema/validator/format.rb, line 58 def ipv4(instance) IPAddr.new(instance).ipv4? rescue ArgumentError false end
ipv6(instance)
click to toggle source
# File lib/jschema/validator/format.rb, line 64 def ipv6(instance) IPAddr.new(instance).ipv6? rescue ArgumentError false end
post_initialize(format)
click to toggle source
# File lib/jschema/validator/format.rb, line 23 def post_initialize(format) @validator_method = format.gsub('-', '_') end
regex(instance)
click to toggle source
# File lib/jschema/validator/format.rb, line 78 def regex(instance) Regexp.new(instance) true rescue TypeError, RegexpError false end
uri(instance)
click to toggle source
# File lib/jschema/validator/format.rb, line 70 def uri(instance) # NOTE: Since URI.escape is obsolete I had to use # WEBrick::HTTPUtils.escape URI.parse WEBrick::HTTPUtils.escape(instance) rescue URI::InvalidURIError false end
validate_args(format)
click to toggle source
# File lib/jschema/validator/format.rb, line 12 def validate_args(format) allowed_formats = ['date-time', 'email', 'hostname', 'ipv4', 'ipv6', 'uri', 'regex'] if allowed_formats.include?(format) true else invalid_schema 'format', format end end
validate_instance(instance)
click to toggle source
# File lib/jschema/validator/format.rb, line 27 def validate_instance(instance) unless send(@validator_method, instance) "#{instance} must be a #{@validator_method}" end end