Class: CnpOnline::SchemaValidation

Inherits:
Object
  • Object
show all
Defined in:
lib/XMLFields.rb

Class Method Summary collapse

Class Method Details

.validate_boolean(value, required, class_name, field_name) ⇒ Object



124
125
126
# File 'lib/XMLFields.rb', line 124

def self.validate_boolean(value, required, class_name, field_name)
  validate_enum(value, required, ['true','false','1','0'], class_name, field_name)
end

.validate_country(value, class_name, field_name) ⇒ Object



85
86
87
88
89
90
91
92
93
# File 'lib/XMLFields.rb', line 85

def self.validate_country(value, class_name, field_name)
  if(value.nil?)
    return
  end
  list = ["USA","AF","AX","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CW","CY","CZ","DK","DJ","DM","DO","TL","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","MA","MZ","MM","NA","NR","NP","NL","AN","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","BL","KN","LC","MF","VC","WS","SM","ST","SA","SN","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","ES","LK","SH","PM","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VA","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","RS","ME"]
  if(!list.include? value)
    raise "If " + class_name + " " + field_name + " is specified, it must be valid.  You specified " + value
  end
end

.validate_currency(value, required, class_name, field_name) ⇒ Object



120
121
122
# File 'lib/XMLFields.rb', line 120

def self.validate_currency(value, required, class_name, field_name)
  validate_enum(value, required, ['AUD','CAD','CHF','DKK','EUR','GBP','HKD','JPY','NOK','NZD','SEK','SGD','USD'], class_name, field_name)
end

.validate_date(value, required, class_name, field_name) ⇒ Object



128
129
130
# File 'lib/XMLFields.rb', line 128

def self.validate_date(value, required, class_name, field_name)
  validate_regex(value, required, /\A\d{4}-\d{2}-\d{2}\Z/, class_name, field_name)
end

.validate_enum(value, required, list, class_name, field_name) ⇒ Object



105
106
107
108
109
110
111
112
113
114
# File 'lib/XMLFields.rb', line 105

def self.validate_enum(value, required, list, class_name, field_name)
  validate_required(value, required, class_name, field_name)
  if(value.nil?)
    return
  end
  if(!list.include?(value))
    str = '["'+ list.join('", "') + '"]'
    raise "If #{class_name} #{field_name} is specified, it must be in #{str}"
  end
end

.validate_length(value, required, min, max, class_name, field_name) ⇒ Object



65
66
67
68
69
70
71
72
73
# File 'lib/XMLFields.rb', line 65

def self.validate_length(value, required, min, max, class_name, field_name)
  validate_required(value, required, class_name, field_name)
  if(value.nil?)
    return
  end
  if(value.length < min || value.length > max)
    raise "If " + class_name + " " + field_name + " is specified, it must be between " + min.to_s + " and " + max.to_s + " characters long"
  end
end

.validate_long(value, required, class_name, field_name) ⇒ Object



116
117
118
# File 'lib/XMLFields.rb', line 116

def self.validate_long(value, required, class_name, field_name)
  validate_size(value, required, -9223372036854775808, 9223372036854775807, class_name, field_name)
end

.validate_regex(value, required, regex, class_name, field_name) ⇒ Object



95
96
97
98
99
100
101
102
103
# File 'lib/XMLFields.rb', line 95

def self.validate_regex(value, required,  regex, class_name, field_name)
  validate_required(value, required, class_name, field_name)
  if(value.nil?)
    return
  end
  if(!(regex =~ value))
    raise "If #{class_name} #{field_name} is specified, it must match the regular expression #{regex.inspect}"
  end
end

.validate_required(value, required, class_name, field_name) ⇒ Object



57
58
59
60
61
62
63
# File 'lib/XMLFields.rb', line 57

def self.validate_required(value, required, class_name, field_name)
  if(required)
    if(value.nil?)
      raise "If #{class_name} is specified, it must have a #{field_name}"
    end
  end
end

.validate_size(value, required, min, max, class_name, field_name) ⇒ Object



75
76
77
78
79
80
81
82
83
# File 'lib/XMLFields.rb', line 75

def self.validate_size(value, required, min, max, class_name, field_name)
  validate_required(value, required, class_name, field_name)
  if(value.nil?)
    return
  end
  if(value.to_i < min || value.to_i > max || !(/\A\-?\d+\Z/ =~ value))
    raise "If " + class_name + " " + field_name + " is specified, it must be between " + min.to_s + " and " + max.to_s
  end
end