class Akane::Receivers::AbstractReceiver

Public Class Methods

new(consumer: raise(ArgumentError, 'missing consumer'), account: raise(ArgumentError, 'missing account'), logger: Logger.new($stdout), name: nil, config: {}) click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 4
def initialize(consumer: raise(ArgumentError, 'missing consumer'),
               account:  raise(ArgumentError, 'missing account'),
               logger: Logger.new($stdout),
               name: nil,
               config: {})
  @consumer = consumer
  @account = account
  @logger = logger
  @config = config

  @hooks = {}
end

Public Instance Methods

name() click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 17
def name
  @name ||= @config['name'] || "#{cname}:#{@account[:name]}"
end
on(kind, &block) click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 33
def on(kind, &block)
  (@hooks[kind] ||= []) << block
  self
end
on_delete(&block) click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 39
def on_delete(&block) on(:delete, &block) end
on_event(&block) click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 41
def on_event(&block) on(:event, &block) end
on_message(&block) click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 40
def on_message(&block) on(:message, &block) end
on_tweet(&block) click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 38
def on_tweet(&block) on(:tweet, &block) end
running?() click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 29
def running?
  raise NotImplementedError
end
start() click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 21
def start
  raise NotImplementedError
end
stop() click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 25
def stop
  raise NotImplementedError
end

Private Instance Methods

cname() click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 45
def cname
  @cname = self.class.name.split(/::/).last
end
invoke(kind, *args) click to toggle source
# File lib/akane/receivers/abstract_receiver.rb, line 49
def invoke(kind, *args)
  return unless @hooks[kind]
  @hooks[kind].each { |hook| hook.call(*args) }
  self
end