Class: Schematic::Generator::Uniqueness
- Inherits:
-
ColumnValidator
- Object
- ColumnValidator
- Schematic::Generator::Uniqueness
- Defined in:
- lib/schematic/generator/uniqueness.rb
Instance Attribute Summary
Attributes inherited from ColumnValidator
Instance Method Summary collapse
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
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/schematic/generator/uniqueness.rb', line 7 def generate(builder) for_validator ActiveRecord::Validations::UniquenessValidator do |validator| unique_name = validator.attributes.first.to_s.dasherize additional_fields = (Array.wrap(validator.[: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 |