Class: MessageDispatcher

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMessageDispatcher

Returns a new instance of MessageDispatcher.



3
4
5
6
# File 'lib/test_driven_lighting/message_dispatcher.rb', line 3

def initialize
  # message_classes contains "class_name" => ClassName
  @message_classes = {}
end

Instance Attribute Details

#message_classesObject (readonly)

Returns the value of attribute message_classes.



2
3
4
# File 'lib/test_driven_lighting/message_dispatcher.rb', line 2

def message_classes
  @message_classes
end

Instance Method Details

#class_for(class_name) ⇒ Object



19
20
21
# File 'lib/test_driven_lighting/message_dispatcher.rb', line 19

def class_for(class_name)
  message_classes.fetch class_name
end

#dispatch(outgoing_message) ⇒ Object



14
15
16
17
# File 'lib/test_driven_lighting/message_dispatcher.rb', line 14

def dispatch(outgoing_message)
  klass = class_for outgoing_message.fetch("message_type")
  klass.new(outgoing_message).process
end

#register_message_class(name, klass) ⇒ Object



8
9
10
11
12
# File 'lib/test_driven_lighting/message_dispatcher.rb', line 8

def register_message_class(name, klass)
  # screw trying to upcase and snake case and pretend to be rails WE'RE NOT
  # RAILS SO STOP TRYING
  message_classes[name] = klass
end