Class: Economy::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/economy/builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ Builder

Returns a new instance of Builder.



6
7
8
9
# File 'lib/economy/builder.rb', line 6

def initialize(model)
  @model = model
  @concern = Module.new
end

Instance Attribute Details

#concernObject (readonly)

Returns the value of attribute concern.



4
5
6
# File 'lib/economy/builder.rb', line 4

def concern
  @concern
end

#modelObject (readonly)

Returns the value of attribute model.



4
5
6
# File 'lib/economy/builder.rb', line 4

def model
  @model
end

Instance Method Details

#define(attributes) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/economy/builder.rb', line 11

def define(attributes)
  attributes.each do |attribute|
    if model.column_names.include?("#{attribute}_currency")
      currency_attribute = :"#{attribute}_currency"
    else
      currency_attribute = :currency
    end
    set_validators attribute, currency_attribute
    define_helpers attribute
    default_currency = Economy.configuration.default_currency
    define_getter attribute, currency_attribute, default_currency
    define_setter attribute, currency_attribute, default_currency
  end
  model.include concern
end