Class: JsonTableSchema::Constraints
- Inherits:
-
Object
- Object
- JsonTableSchema::Constraints
- Defined in:
- lib/jsontableschema/constraints/enum.rb,
lib/jsontableschema/constraints/maximum.rb,
lib/jsontableschema/constraints/minimum.rb,
lib/jsontableschema/constraints/pattern.rb,
lib/jsontableschema/constraints/required.rb,
lib/jsontableschema/constraints/max_length.rb,
lib/jsontableschema/constraints/min_length.rb,
lib/jsontableschema/constraints/constraints.rb
Defined Under Namespace
Modules: Enum, MaxLength, Maximum, MinLength, Minimum, Pattern, Required
Instance Method Summary collapse
-
#initialize(field, value) ⇒ Constraints
constructor
A new instance of Constraints.
- #validate! ⇒ Object
Methods included from Pattern
Methods included from Enum
Methods included from Maximum
Methods included from Minimum
Methods included from MaxLength
Methods included from MinLength
Methods included from Required
Methods included from Helpers
#convert_to_boolean, #false_values, #get_class_for_type, #true_values, #type_class_lookup
Constructor Details
#initialize(field, value) ⇒ Constraints
Returns a new instance of Constraints.
21 22 23 24 25 |
# File 'lib/jsontableschema/constraints/constraints.rb', line 21 def initialize(field, value) @field = field @value = value @constraints = @field['constraints'] || {} end |
Instance Method Details
#validate! ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jsontableschema/constraints/constraints.rb', line 27 def validate! result = true @constraints.each do |c| constraint = c.first if is_supported_type?(constraint) result = self.send("check_#{underscore constraint}") else raise(JsonTableSchema::ConstraintNotSupported.new("The field type `#{@field['type']}` does not support the `#{constraint}` constraint")) end end result end |