Class: ActiveRecord::Enumerations::Factory

Inherits:
Object
  • Object
show all
Extended by:
OptionsHelper
Defined in:
lib/ar_enums/factory.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from OptionsHelper

add_option, extract_values_and_options

Constructor Details

#initialize(values, options, &block) ⇒ Factory

Returns a new instance of Factory.



11
12
13
14
15
16
17
# File 'lib/ar_enums/factory.rb', line 11

def initialize values, options, &block
  @values, @options, @block = values, options, block
  @active_record = @options.delete :active_record
  @field = @options.delete :field
  @class_name = @options.delete(:class_name) || @field.name.camelize
  @label_method = @options.delete(:label) || :desc
end

Class Method Details

.make_enums(*config, &block) ⇒ Object



6
7
8
9
# File 'lib/ar_enums/factory.rb', line 6

def self.make_enums *config, &block
  values, options = extract_values_and_options config
  new(values, options, &block).make_enums
end

Instance Method Details

#enum_classObject



27
28
29
# File 'lib/ar_enums/factory.rb', line 27

def enum_class
  @enum_class ||= eval_external_class || create_inner_enum_class
end

#make_enumsObject



19
20
21
22
23
24
25
# File 'lib/ar_enums/factory.rb', line 19

def make_enums
  enum_class.label_method = @label_method
  create_enums.tap do |enums|
    define_question_methods enums
    define_extra_columns_methods enums
  end
end