Class: EnumFields::EnumField

Inherits:
Object
  • Object
show all
Defined in:
lib/enum_fields/enum_field.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_class:, accessor:, definition:, options: {}) ⇒ EnumField

Returns a new instance of EnumField.



9
10
11
12
13
14
# File 'lib/enum_fields/enum_field.rb', line 9

def initialize(model_class:, accessor:, definition:, options: {})
  @model_class = model_class
  @accessor = accessor.to_sym
  @column_name = options.fetch(:column, @accessor).to_sym
  @definition = Definition.new(definition)
end

Class Method Details

.define(**args) ⇒ Object



5
6
7
# File 'lib/enum_fields/enum_field.rb', line 5

def self.define(**args)
  new(**args).define!
end

Instance Method Details

#define!Object



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/enum_fields/enum_field.rb', line 16

def define!
  store_definition!
  define_class_methods!
  define_instance_getter!
  define_instance_setter!
  
  define_property_methods!
  define_inquiry_methods!
  define_scopes!
  define_validation!
end