Sha256: c6b459abe8acb4eaa759ef2d38e409ece7bc577dcdf534a3c5e4051e29ec6bbf
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module Slappy class Client attr_reader :start_time def initialize Slack.configure { |slack| slack.token = config.token } @callbacks = {} end def client @client ||= Slack.realtime end def start @start_time = Time.now @callbacks.each do |event_name, listeners| register_event event_name, listeners end set_signal_trap client.start end def hello(&block) @callbacks[:hello] ||= [] @callbacks[:hello].push block end def hear(pattern, &block) @callbacks[:message] ||= [] @callbacks[:message].push Listener::TextListener.new(pattern, block) end def monitor(subtype, &block) @callbacks[:message] ||= [] @callbacks[:message].push Listener::SubtypeListener.new(subtype, block) end def say(text, options = {}) options[:text] = text Messanger.new(options).message end def schedule(schedule, options = {}, &block) @schedule ||= Schedule.new @schedule.register schedule, options, &block end private def set_signal_trap [:TERM, :INT].each do |signal| Signal.trap(signal) do EventMachine.stop end end end def register_event(event_name, listeners) client.on event_name do |data| listeners.each do |listener| case event_name when :hello listener.call when :message event = Event.new(data) listener.call(event) end end end end def config Slappy.configuration end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slappy-0.5.0 | lib/slappy/client.rb |