module EventSource::Read
Public Class Methods
included(cls)
click to toggle source
# File lib/event_source/read.rb, line 3 def self.included(cls) cls.class_exec do include Log::Dependency cls.extend Build cls.extend Call cls.extend Configure dependency :iterator, Iterator dependency :get, Get initializer :stream_name abstract :configure end end
Public Instance Methods
call(&action)
click to toggle source
# File lib/event_source/read.rb, line 46 def call(&action) logger.trace { "Reading (Stream Name: #{stream_name})" } if action.nil? error_message = "Reader must be actuated with a block" logger.error error_message raise Error, error_message end enumerate_event_data(&action) logger.info { "Reading completed (Stream Name: #{stream_name})" } return AsyncInvocation::Incorrect end
enumerate_event_data(&action)
click to toggle source
# File lib/event_source/read.rb, line 62 def enumerate_event_data(&action) logger.trace { "Enumerating (Stream Name: #{stream_name})" } event_data = nil loop do event_data = iterator.next break if event_data.nil? action.(event_data) end logger.debug { "Enumerated (Stream Name: #{stream_name})" } end