Class: Ferris::API

Inherits:
Object
  • Object
show all
Defined in:
lib/ferris/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ API

Returns a new instance of API.



11
12
13
14
15
16
# File 'lib/ferris/api.rb', line 11

def initialize options={}
  @token   = options.fetch :token
  @logger  = options.fetch :logger, Slog.new
  @api_url = options.fetch :api_url, 'https://slack.com/api'
  log.trace event: 'API client initialized'
end

Instance Method Details

#send(method, options = {}) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/ferris/api.rb', line 18

def send method, options={}
  uri = URI File.join(@api_url, method)
  options = { token: @token }.merge(options)
  log.trace event: 'sending api request', method: method, options: options
  res = Net::HTTP.post_form uri, options
  log.debug event: 'sent api request', method: method, options: options, response: res
  JSON.parse res.body
end