class Assignbot::Assignable

assignable represent the class, it has many assigner

Attributes

assigners[R]

all instances of assigners, type: Hash

target_class[R]

the target class of it

Public Class Methods

new(target_class) click to toggle source
# File lib/assignbot/foundations/assignable.rb, line 9
def initialize(target_class)
  @target_class = target_class
  @assigners = {}
end

Public Instance Methods

add_assigner(assigner) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/assignbot/foundations/assignable.rb, line 20
def get_assigner(assigner_name)
  assigner = assigners[Assigner.canonify_name(assigner_name)]
  assigner
end