Class: Schematic::Generator::Restrictions::Enumeration

Inherits:
Base show all
Defined in:
lib/schematic/generator/restrictions/enumeration.rb

Instance Attribute Summary

Attributes inherited from ColumnValidator

#column, #klass

Instance Method Summary collapse

Methods inherited from Base

inherited

Methods inherited from ColumnValidator

#for_validator, #initialize, #validators_for_column

Constructor Details

This class inherits a constructor from Schematic::Generator::ColumnValidator

Instance Method Details

#generate(builder) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/schematic/generator/restrictions/enumeration.rb', line 5

def generate(builder)
  for_validator ActiveModel::Validations::InclusionValidator do |validator|
    next if column.type == :boolean
    next if validator.options[:in].respond_to?(:call)
    validator.options[:in].each do |value|
      builder.xs(:enumeration, "value" => value)
    end
  end
  enumeration_method = "xsd_#{column.name}_enumeration_restrictions".to_sym
  if klass.respond_to? enumeration_method
    klass.send(enumeration_method).each do |enumeration|
      builder.xs(:enumeration, "value" => enumeration)
    end
  end
end