Class: Macaroni::Plugin::Output::ImKayac

Inherits:
Object
  • Object
show all
Defined in:
lib/macaroni/plugin/output/im_kayac.rb

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ ImKayac

Returns a new instance of ImKayac.



7
8
9
10
11
12
# File 'lib/macaroni/plugin/output/im_kayac.rb', line 7

def initialize(params={})
  @base_url   = "http://im.kayac.com/api/post/"
  @username   = params[:username] or raise ArgumentError
  @password   = params[:password]   || nil
  @secret_key = params[:secret_key] || nil
end

Instance Method Details

#exec(data) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/macaroni/plugin/output/im_kayac.rb', line 14

def exec(data)
  return data if data.empty?

  uri = URI.parse "#{@base_url}#{@username}"
  Net::HTTP.new(uri.host, uri.port).start do |http|
    data.each do |row|
      sig = @secret_key ? \
        Digest::SHA1.new.update("#{row[:message]}#{@secret_key}").to_s : nil

      request = Net::HTTP::Post.new(uri.path)
      request.set_form_data(
        :handler  => row[:handler],
        :password => @password,
        :sig      => sig,
        :message  => row[:message]
      )
      http.request(request)
    end
  end
end