Class: Unity::DynamoDBStreams::EventProcessor
- Inherits:
-
Object
- Object
- Unity::DynamoDBStreams::EventProcessor
- Defined in:
- lib/unity/dynamodbstreams/event_processor.rb,
lib/unity/dynamodbstreams/event_processor/version.rb
Defined Under Namespace
Classes: TableHandler
Constant Summary collapse
- HOOK_TYPES =
{ 'INSERT' => :insert, 'REMOVE' => :remove, 'MODIFY' => :update }.freeze
- VERSION =
'1.0.1'
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(&block) ⇒ EventProcessor
constructor
A new instance of EventProcessor.
- #parse(str) ⇒ Object
- #process(event) ⇒ Object
- #table(table_name, &block) ⇒ Object
Constructor Details
#initialize(&block) ⇒ EventProcessor
Returns a new instance of EventProcessor.
19 20 21 22 |
# File 'lib/unity/dynamodbstreams/event_processor.rb', line 19 def initialize(&block) @table_handlers = {} instance_exec(&block) if block_given? end |
Class Method Details
.table_handlers ⇒ Object
15 16 17 |
# File 'lib/unity/dynamodbstreams/event_processor.rb', line 15 def self.table_handlers @table_handlers ||= {} end |
Instance Method Details
#parse(str) ⇒ Object
29 30 31 |
# File 'lib/unity/dynamodbstreams/event_processor.rb', line 29 def parse(str) @event_parser.call(str) end |
#process(event) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/unity/dynamodbstreams/event_processor.rb', line 33 def process(event) event_source_arn_split = event.event_source_arn.split(':', 6) table_name = event_source_arn_split[5].split('/').at(1) return unless @table_handlers.key?(table_name) hook_type = HOOK_TYPES[event.event_name] return if hook_type.nil? @table_handlers[table_name].each(hook_type) do |handler| handler.call(event) end true end |
#table(table_name, &block) ⇒ Object
24 25 26 27 |
# File 'lib/unity/dynamodbstreams/event_processor.rb', line 24 def table(table_name, &block) @table_handlers[table_name] ||= TableHandler.new @table_handlers[table_name].instance_exec(&block) end |