class SlackScratcher::Router

Slack log router. This import log data from loader, and route them to adapter

@since 0.0.1

Public Class Methods

new(loader, adapter) click to toggle source

Initalize SlackScratcher::Router object

@param [SlackScratcher::Loader::Base] loader @param [SlackScratcher::Adapter::Base] adapter

@example Initialize router object

SlackScratcher::Router.new(loader, adapter)

@return [SlackScratcher::Router] Router object

# File lib/slack_scratcher/router.rb, line 16
def initialize(loader, adapter)
  @loader = loader
  @adapter = adapter
end

Public Instance Methods

route() click to toggle source

Route logs to adapter

@return [Boolean] There isn't any problem, it returns true

# File lib/slack_scratcher/router.rb, line 24
def route
  ready
  _route
  true
end
route_loop() click to toggle source

Run loop to route logs in real time

@return [Boolean] If loop interrupted, it return false

# File lib/slack_scratcher/router.rb, line 33
def route_loop
  ready
  loop { _route }
rescue Interrupt => error
  SlackScratcher.logger.info error
  false
end

Private Instance Methods

_route() click to toggle source

@private

# File lib/slack_scratcher/router.rb, line 49
def _route
  @loader.each(@adapter) do |data, metadata|
    if data.empty?
      SlackScratcher.logger.info "* #{metadata} is empty. Nothing happen."
    else
      @adapter.send data
      SlackScratcher.logger.info "* #{metadata} is routed."
    end
  end
end
ready() click to toggle source

@private

# File lib/slack_scratcher/router.rb, line 44
def ready
  @adapter.ready_index
end