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