Class: Danica::VariablesHolder::AliasBuilder
- Inherits:
-
Object
- Object
- Danica::VariablesHolder::AliasBuilder
- Defined in:
- lib/danica/variables_holder/alias_builder.rb
Instance Attribute Summary collapse
-
#clazz ⇒ Object
readonly
Returns the value of attribute clazz.
-
#destiny ⇒ Object
readonly
Returns the value of attribute destiny.
-
#origin ⇒ Object
readonly
Returns the value of attribute origin.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(origin, destiny, clazz) ⇒ AliasBuilder
constructor
A new instance of AliasBuilder.
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
#clazz ⇒ Object (readonly)
Returns the value of attribute clazz.
5 6 7 |
# File 'lib/danica/variables_holder/alias_builder.rb', line 5 def clazz @clazz end |
#destiny ⇒ Object (readonly)
Returns the value of attribute destiny.
5 6 7 |
# File 'lib/danica/variables_holder/alias_builder.rb', line 5 def destiny @destiny end |
#origin ⇒ Object (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
#build ⇒ Object
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 |