Class: Assignbot::Assignable
- Inherits:
-
Object
- Object
- Assignbot::Assignable
- Defined in:
- lib/assignbot/foundations/assignable.rb
Overview
assignable represent the class, it has many assigner
Instance Attribute Summary collapse
-
#assigners ⇒ Object
readonly
all instances of assigners, type: Hash.
-
#target_class ⇒ Object
readonly
the target class of it.
Instance Method Summary collapse
- #add_assigner(assigner) ⇒ Object
- #add_variable(assigner_name, target_variable, source_variable, receptor) ⇒ Object
- #get_assigner(assigner_name) ⇒ Object
-
#initialize(target_class) ⇒ Assignable
constructor
A new instance of Assignable.
Constructor Details
#initialize(target_class) ⇒ Assignable
9 10 11 12 |
# File 'lib/assignbot/foundations/assignable.rb', line 9 def initialize(target_class) @target_class = target_class @assigners = {} end |
Instance Attribute Details
#assigners ⇒ Object (readonly)
all instances of assigners, type: Hash
5 6 7 |
# File 'lib/assignbot/foundations/assignable.rb', line 5 def assigners @assigners end |
#target_class ⇒ Object (readonly)
the target class of it
7 8 9 |
# File 'lib/assignbot/foundations/assignable.rb', line 7 def target_class @target_class end |
Instance Method Details
#add_assigner(assigner) ⇒ Object
14 15 16 17 18 |
# File 'lib/assignbot/foundations/assignable.rb', line 14 def add_assigner(assigner) assigner_name = Assigner.canonify_name(assigner.name) assigners[assigner_name] = assigner nil end |
#add_variable(assigner_name, target_variable, source_variable, receptor) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/assignbot/foundations/assignable.rb', line 25 def add_variable(assigner_name, target_variable, source_variable, receptor) # create one instance of Assigner unless defined assigner = get_assigner(assigner_name) if assigner.nil? assigner = Assigner.new(self, assigner_name) add_assigner(assigner) end variable = Variable.new(assigner) variable.target_variable = target_variable variable.source_variable = source_variable variable.receptor = receptor assigner.add_variable(variable) nil end |
#get_assigner(assigner_name) ⇒ Object
20 21 22 23 |
# File 'lib/assignbot/foundations/assignable.rb', line 20 def get_assigner(assigner_name) assigner = assigners[Assigner.canonify_name(assigner_name)] assigner end |