class Ellen::Adapters::Slack
Public Instance Methods
run()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 11 def run bind connect end
say(message)
click to toggle source
# File lib/ellen/adapters/slack.rb, line 16 def say(message) client.say( body: message[:code] ? "```\n#{message[:body]}\n```" : message[:body], from: message[:from], to: message[:original][:type] == "chat" ? message[:to] + "/resource" : message[:to], type: message[:original][:type], ) end
Private Instance Methods
bind()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 68 def bind client.on_private_message(&method(:on_message)) client.on_room_message(&method(:on_message)) end
client()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 27 def client @client ||= Xrc::Client.new( jid: jid, nickname: username, password: password, room_jid: room_jid, ) end
connect()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 73 def connect client.connect end
host()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 44 def host "#{team}.xmpp.slack.com" end
jid()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 36 def jid "#{username}@#{host}" end
on_message(message)
click to toggle source
# File lib/ellen/adapters/slack.rb, line 77 def on_message(message) robot.receive( body: message.body, from: message.from, from_name: username_of(message), to: message.to, type: message.type, ) end
password()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 60 def password ENV["SLACK_PASSWORD"] end
room()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 52 def room ENV["SLACK_ROOM"] end
room_host()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 48 def room_host "conference.#{host}" end
room_jid()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 40 def room_jid "#{room}@#{room_host}" end
team()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 64 def team ENV["SLACK_TEAM"] end
username()
click to toggle source
# File lib/ellen/adapters/slack.rb, line 56 def username ENV["SLACK_USERNAME"] end
username_of(message)
click to toggle source
# File lib/ellen/adapters/slack.rb, line 87 def username_of(message) case message.type when "groupchat" Xrc::Jid.new(message.from).resource else Xrc::Jid.new(message.from).node end end