class Ellen::Adapters::Hipchat

Public Instance Methods

run() click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 13
def run
  bind
  connect
rescue Interrupt
  exit
end
say(message) click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 20
def say(message)
  client.say(
    body: message[:code] ? "/quote #{message[:body]}" : 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/hipchat.rb, line 64
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/hipchat.rb, line 31
def client
  @client ||= Xrc::Client.new(
    jid: jid,
    nickname: nickname,
    password: password,
    room_jid: room_jid,
  )
end
connect() click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 69
def connect
  client.connect
end
jid() click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 42
def jid
  jid = Xrc::Jid.new(ENV["HIPCHAT_JID"])
  jid.resource = "bot"
  jid.to_s
end
nickname() click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 60
def nickname
  ENV["HIPCHAT_NICKNAME"]
end
on_message(message) click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 73
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/hipchat.rb, line 56
def password
  ENV["HIPCHAT_PASSWORD"]
end
room_jid() click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 48
def room_jid
  "#{room_name}@conf.hipchat.com"
end
room_name() click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 52
def room_name
  ENV["HIPCHAT_ROOM_NAME"]
end
username_of(message) click to toggle source
# File lib/ellen/adapters/hipchat.rb, line 83
def username_of(message)
  case message.type
  when "groupchat"
    Xrc::Jid.new(message.from).resource
  else
    client.users[message.from].name
  end
end