module Raml::Validation
@private
Public Instance Methods
classes_to_s(classes)
click to toggle source
# File lib/raml/mixin/validation.rb, line 45 def classes_to_s(classes) classes.join(', ').gsub(/, (\w)\z/, ' or \1') end
validate_array(name, array, element_classes=nil)
click to toggle source
# File lib/raml/mixin/validation.rb, line 14 def validate_array(name, array, element_classes=nil) raise InvalidProperty, "#{camel_case name} property must be an array" unless array.is_a? Array if element_classes element_classes = [ element_classes ] unless element_classes.is_a? Array raise InvalidProperty, "#{camel_case name} property must be an array of #{classes_to_s element_classes}" unless array.all? { |element| element_classes.include? element.class } end end
validate_hash(name, hash, key_class=nil, value_class=nil)
click to toggle source
# File lib/raml/mixin/validation.rb, line 25 def validate_hash(name, hash, key_class=nil, value_class=nil) raise InvalidProperty, "#{camel_case name} property must be a map" unless hash.is_a? Hash if key_class if key_class.is_a? Array raise InvalidProperty, "#{camel_case name} property must be a map with #{key_class} keys" unless hash.keys.all? {|key| key_class.any? { |kc| key.is_a? kc } } else raise InvalidProperty, "#{camel_case name} property must be a map with #{key_class} keys" unless hash.keys.all? {|key| key.is_a? key_class } end end if value_class raise InvalidProperty, "#{camel_case name} property must be a map with map values: #{hash}" unless hash.values.all? {|value| value.is_a?(Hash) || value.nil? } end end
validate_property(name, value, classes)
click to toggle source
# File lib/raml/mixin/validation.rb, line 4 def validate_property(name, value, classes) classes = [ classes ] unless classes.is_a? Array raise InvalidProperty, "#{camel_case name} property must be an #{classes_to_s classes}" unless classes.include? value.class end
validate_string(name, string)
click to toggle source
# File lib/raml/mixin/validation.rb, line 9 def validate_string(name, string) validate_property name, string, String raise InvalidProperty, "#{camel_case name} property must be a non-empty string." if string.empty? end