Class: LcpRuby::ModelFactory::EnumApplicator

Inherits:
Object
  • Object
show all
Defined in:
lib/lcp_ruby/model_factory/enum_applicator.rb

Overview

Applies inclusion validations for virtual enum fields. Non-virtual enums are handled by AR’s native ‘enum` macro in Builder — using that macro for a virtual field would collide with host-defined columns when applied via `bind_to_apply`.

Instance Method Summary collapse

Constructor Details

#initialize(model_class, model_definition) ⇒ EnumApplicator

Returns a new instance of EnumApplicator.



8
9
10
11
# File 'lib/lcp_ruby/model_factory/enum_applicator.rb', line 8

def initialize(model_class, model_definition)
  @model_class = model_class
  @model_definition = model_definition
end

Instance Method Details

#apply!Object



13
14
15
16
17
18
19
20
21
# File 'lib/lcp_ruby/model_factory/enum_applicator.rb', line 13

def apply!
  @model_definition.enum_fields.each do |field|
    next unless field.virtual?

    @model_class.validates field.name.to_sym,
      inclusion: { in: field.enum_value_names },
      allow_nil: true
  end
end