Sha256: 4a5cafa7be97de5dfa94cc4b7605b5405245ec1f1c44571ea50d56f22de43e2f

Contents?: true

Size: 810 Bytes

Versions: 4

Compression:

Stored size: 810 Bytes

Contents

module Schematic
  module Generator
    class Uniqueness < ColumnValidator

      def generate(builder)
        for_validator ActiveRecord::Validations::UniquenessValidator do |validator|
          unique_name = validator.attributes.first.to_s.dasherize
          additional_fields = (Array.wrap(validator.options[:scope]) || []).map(&:to_s).map(&:dasherize)

          names = Schematic::Generator::Names.new(@klass)
          builder.xs :unique, "name" => "#{unique_name}-must-be-unique" do |unique|
            unique.xs :selector, "xpath" => "./#{names.element}"
            unique.xs :field, "xpath" => unique_name
            additional_fields.each do |additional_field|
              unique.xs :field, "xpath" => additional_field
            end
          end
        end
      end
    end
  end
end



Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
schematic-0.6.2 lib/schematic/generator/uniqueness.rb
schematic-0.6.1 lib/schematic/generator/uniqueness.rb
schematic-0.6.0 lib/schematic/generator/uniqueness.rb
schematic-0.5.9 lib/schematic/generator/uniqueness.rb