Module: EntityProjection::Info

Extended by:
Info
Included in:
Info
Defined in:
lib/entity_projection/entity_projection.rb

Instance Method Summary collapse

Instance Method Details

#handler(event_or_event_data) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/entity_projection/entity_projection.rb', line 33

def handler(event_or_event_data)
  name = handler_name(event_or_event_data)

  if method_defined?(name)
    return name
  else
    return nil
  end
end

#handler_name(event_or_event_data) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/entity_projection/entity_projection.rb', line 49

def handler_name(event_or_event_data)
  name = nil

  if event_or_event_data.is_a?(MessageStore::MessageData)
    name = Messaging::Message::Info.canonize_name(event_or_event_data.type)
  else
    name = event_or_event_data.message_name
  end

  "apply_#{name}"
end

#handles?(event_or_event_data) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
46
47
# File 'lib/entity_projection/entity_projection.rb', line 43

def handles?(event_or_event_data)
  handler_name = self.handler_name(event_or_event_data)

  method_defined?(handler_name)
end