Class: Danica::VariablesHolder::AliasBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/danica/variables_holder/alias_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(origin, destiny, clazz) ⇒ AliasBuilder

Returns a new instance of AliasBuilder.



7
8
9
10
11
# File 'lib/danica/variables_holder/alias_builder.rb', line 7

def initialize(origin, destiny, clazz)
  @origin = origin
  @destiny = destiny
  @clazz = clazz
end

Instance Attribute Details

#clazzObject (readonly)

Returns the value of attribute clazz.



5
6
7
# File 'lib/danica/variables_holder/alias_builder.rb', line 5

def clazz
  @clazz
end

#destinyObject (readonly)

Returns the value of attribute destiny.



5
6
7
# File 'lib/danica/variables_holder/alias_builder.rb', line 5

def destiny
  @destiny
end

#originObject (readonly)

Returns the value of attribute origin.



5
6
7
# File 'lib/danica/variables_holder/alias_builder.rb', line 5

def origin
  @origin
end

Instance Method Details

#buildObject



13
14
15
16
17
18
# File 'lib/danica/variables_holder/alias_builder.rb', line 13

def build
  clazz.variables_hash.change_keys! { |k| k == origin ? destiny : k }
  VariablesBuilder.new([destiny], clazz).build
  clazz.send(:alias_method, "#{origin}=", "#{destiny}=")
  clazz.send(:alias_method, origin, destiny)
end