Class: SampleModels::AttributeSequence::Builder
- Inherits:
-
Object
- Object
- SampleModels::AttributeSequence::Builder
- Defined in:
- lib/sample_models/attribute_sequence.rb
Instance Method Summary collapse
- #base ⇒ Object
-
#initialize(pass, model, column, force_unique) ⇒ Builder
constructor
A new instance of Builder.
- #run ⇒ Object
- #sequence_class(validation) ⇒ Object
Constructor Details
#initialize(pass, model, column, force_unique) ⇒ Builder
Returns a new instance of Builder.
40 41 42 43 |
# File 'lib/sample_models/attribute_sequence.rb', line 40 def initialize(pass, model, column, force_unique) @pass, @model, @column, @force_unique = pass, model, column, force_unique end |
Instance Method Details
#base ⇒ Object
45 46 47 48 49 50 |
# File 'lib/sample_models/attribute_sequence.rb', line 45 def base base_class = SampleModels.const_get( "#{@pass.to_s.capitalize}PassBaseAttributeSequence" ) base_class.new(@model, @column) end |
#run ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/sample_models/attribute_sequence.rb', line 52 def run input = base uniqueness_validation = if @force_unique Model::Validation.new(:validates_uniqueness_of) end @model.validations(@column.name).each do |validation| if validation.type == :validates_uniqueness_of uniqueness_validation = validation elsif s_class = sequence_class(validation) input = s_class.new(@model, @column, validation, input) end end if uniqueness_validation input = ValidatesUniquenessOfAttributeSequence.new( @model, @column, uniqueness_validation, input ) end input end |
#sequence_class(validation) ⇒ Object
72 73 74 75 76 77 |
# File 'lib/sample_models/attribute_sequence.rb', line 72 def sequence_class(validation) sequence_name = validation.type.to_s.camelize + 'AttributeSequence' if SampleModels.const_defined?(sequence_name) SampleModels.const_get(sequence_name) end end |