class QbertBot::Slack
Attributes
default_icon[R]
default_name[R]
hook[R]
Public Class Methods
new(conf)
click to toggle source
# File lib/qbert_bot/slack.rb, line 7 def initialize(conf) @hook = conf['hook'] @default_name = conf['name'] @default_icon = conf['icon'] end
Public Instance Methods
channel_or_dm(name)
click to toggle source
# File lib/qbert_bot/slack.rb, line 13 def channel_or_dm(name) return name if name[0] == '#' return name if name[0] == '@' "##{name}" end
say(to, text, opts = {})
click to toggle source
# File lib/qbert_bot/slack.rb, line 20 def say(to, text, opts = {}) payload = { text: text, channel: channel_or_dm(to), username: default_name, icon_emoji: default_icon, } payload[:icon_emoji] = opts[:icon] if opts.key?(:icon) payload[:icon_url] = opts[:icon_url] if opts.key?(:icon_url) payload[:username] = opts[:name] if opts.key?(:name) payload[:attachments] = opts[:attachments] if opts.key?(:attachments) puts("Saying: #{payload[:channel]} -> #{text}") Faraday.post(@hook, payload: payload.to_json) end