Module: Sourced::React::ClassMethods

Defined in:
lib/sourced/react.rb

Instance Method Summary collapse

Instance Method Details

#consumer_infoObject

Override this with extend Sourced::Consumer



37
38
39
# File 'lib/sourced/react.rb', line 37

def consumer_info
  Sourced::Consumer::ConsumerInfo.new(group_id: name)
end

#handle_events(_events) ⇒ Object

These two are the Reactor interface expected by Worker

Raises:

  • (NoMethodError)


43
44
45
# File 'lib/sourced/react.rb', line 43

def handle_events(_events)
  raise NoMethodError, "implement .handle_events(Array<Event>) in #{self}"
end

#handled_events_for_reactObject



47
48
49
# File 'lib/sourced/react.rb', line 47

def handled_events_for_react
  @handled_events_for_react ||= []
end

#inherited(subclass) ⇒ Object



29
30
31
32
33
34
# File 'lib/sourced/react.rb', line 29

def inherited(subclass)
  super
  handled_events_for_react.each do |evt_type|
    subclass.handled_events_for_react << evt_type
  end
end

#react(event_type, &block) ⇒ Object



51
52
53
54
# File 'lib/sourced/react.rb', line 51

def react(event_type, &block)
  handled_events_for_react << event_type unless event_type.is_a?(Symbol)
  define_method(Sourced.message_method_name(React::PREFIX, event_type.to_s), &block) if block_given?
end