class Idcf::JsonHyperSchema::Validation

json-hyper-schema validation

Attributes

add_validation[R]

Public Class Methods

register_format(name, validator_proc) click to toggle source
# File lib/idcf/json_hyper_schema/validation.rb, line 14
def register_format(name, validator_proc)
  @add_validation ||= {}
  @add_validation[name] = validator_proc
  self
end
reset_format() click to toggle source
# File lib/idcf/json_hyper_schema/validation.rb, line 9
def reset_format
  @add_validation = {}
  self
end
validations() click to toggle source
# File lib/idcf/json_hyper_schema/validation.rb, line 20
def validations
  @add_validation ||= {}
  custom_validations.merge(@add_validation)
end

Protected Class Methods

custom_validations() click to toggle source
# File lib/idcf/json_hyper_schema/validation.rb, line 27
def custom_validations
  {
    'ipv4_cidr' => lambda do |data|
      ip_check(data, JsonSchema::Validator::IPV4_PATTERN)
    end,
    'ipv6_cidr' => lambda do |data|
      ip_check(data, JsonSchema::Validator::IPV6_PATTERN)
    end,
    'integer' => lambda do |data|
      data =~ /^[0-9]+$/
    end
  }
end
ip_check(data, pattern) click to toggle source
# File lib/idcf/json_hyper_schema/validation.rb, line 41
def ip_check(data, pattern)
  list = data.split('/')
  return false unless list.size == 2
  return false unless list[0] =~ pattern
  list[1] =~ /^[0-9]*$/
end