Sha256: 20b7d61429a8b6cea97ba3a9580817199c769a6381bf6ce276e51a9c6369a46f

Contents?: true

Size: 923 Bytes

Versions: 8

Compression:

Stored size: 923 Bytes

Contents

module Schematic
  module Generator
    module Restrictions
      class Enumeration < Base
        def generate(builder)
          for_validator ActiveModel::Validations::InclusionValidator do |validator|
            next if column.type == :boolean
            if validator.options[:in].respond_to?(:call)
              valid_values = validator.options[:in].call(nil) rescue []
            else
              valid_values = validator.options[:in]
            end
            valid_values.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
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
schematic-0.6.2 lib/schematic/generator/restrictions/enumeration.rb
schematic-0.6.1 lib/schematic/generator/restrictions/enumeration.rb
schematic-0.6.0 lib/schematic/generator/restrictions/enumeration.rb
schematic-0.5.9 lib/schematic/generator/restrictions/enumeration.rb
schematic-0.5.8 lib/schematic/generator/restrictions/enumeration.rb
schematic-0.5.7 lib/schematic/generator/restrictions/enumeration.rb
schematic-0.5.6 lib/schematic/generator/restrictions/enumeration.rb
schematic-0.5.5 lib/schematic/generator/restrictions/enumeration.rb