Class: Ecco::RowEventListener

Inherits:
EventListener show all
Defined in:
lib/ecco/row_event_listener.rb

Constant Summary

Constants inherited from EventListener

EventListener::DELETE_EVENTS, EventListener::QUERY_EVENTS, EventListener::ROTATE_EVENTS, EventListener::TABLE_EVENT, EventListener::UPDATE_EVENTS, EventListener::WRITE_EVENTS

Instance Attribute Summary

Attributes inherited from EventListener

#callback

Instance Method Summary collapse

Methods inherited from EventListener

#accepted_events, #event_type_to_string

Constructor Details

#initialize(client) ⇒ RowEventListener

Returns a new instance of RowEventListener.



6
7
8
# File 'lib/ecco/row_event_listener.rb', line 6

def initialize(client)
  super(client, events_of_interest)
end

Instance Method Details

#on_event(event) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ecco/row_event_listener.rb', line 10

def on_event(event)
  data = event.get_data
  type = event.get_header.get_event_type

  case type
  when TABLE_EVENT
    @table_map_event = event
  when *accepted_events
    row_event          = Ecco::RowEvent.new
    row_event.table_id = data.get_table_id
    row_event.rows     = data.rows
    row_event.type     = event_type_to_string(type)

    if @table_map_event
      table_event_data = @table_map_event.get_data

      row_event.database = table_event_data.get_database
      row_event.table    = table_event_data.get_table
    end

    @callback.call(row_event)
  end
end