class Slappy::Messenger

Constants

CHANNEL_APIS

Public Class Methods

new(options = {}) click to toggle source
# File lib/slappy/messenger.rb, line 7
def initialize(options = {})
  opt = options.dup
  @destination = {}
  @destination = opt[:channel]
  opt.delete :channel
  @options = opt
end

Public Instance Methods

message() click to toggle source
# File lib/slappy/messenger.rb, line 15
def message
  options = merge_params(@options)

  if @destination.is_a? SlackAPI::Base
    id = @destination.id
  else
    instance = nil
    CHANNEL_APIS.each do |klass|
      instance = klass.find(name: @destination) || klass.find(id: @destination)
      break unless instance.nil?
    end
    fail MissingChannelException.new, "channel / #{@destination} is not found" if instance.nil?
    id = instance.id
  end

  options[:channel] = id
  response = Slack.chat_postMessage options
  fail SlackAPI::SlackError.new, response['error'] unless response['ok']
end

Private Instance Methods

config() click to toggle source
# File lib/slappy/messenger.rb, line 37
def config
  Slappy.configuration
end
merge_params(options) click to toggle source
# File lib/slappy/messenger.rb, line 41
def merge_params(options)
  default = config.send_params
  default.merge options
end