Class: ActiveRecord::Base::ExtendAttribute

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

Instance Method Summary collapse

Constructor Details

#initialize(attr, options = {}, block = nil) ⇒ ExtendAttribute

Returns a new instance of ExtendAttribute.



15
16
17
18
19
# File 'lib/extended_attributes.rb', line 15

def initialize(attr, options = {}, block = nil)
  @attr = attr
  @options = options
  @block = block
end

Instance Method Details

#after_initialize(record) ⇒ Object Also known as: after_find



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/extended_attributes.rb', line 21

def after_initialize(record)
  modules = [*@options[:extend]].compact
  modules << Module.new(&@block) if @block
  modules.each do |mod|
    attribute = record.send(@attr)
    unless attribute.is_a? Fixnum
      attribute.extend mod
    else
      Fixnum.send(:include, mod)
    end
  end
end