class NiceReplyClient

Public Class Methods

new(credentials={}) click to toggle source
# File lib/nice_reply_client.rb, line 5
def initialize(credentials={})
  @api_key = credentials[:api_key]
end

Public Instance Methods

method_missing(method, *args) click to toggle source

Thanks to the Gibbon gem github.com/amro/gibbon for the idea to use method_missing and a call method

# File lib/nice_reply_client.rb, line 11
def method_missing(method, *args)
  call(method,args)
end

Private Instance Methods

call(method,args) click to toggle source
# File lib/nice_reply_client.rb, line 17
def call(method,args)
  response = http.request(compose_request(method,args[0]))
  response_hash = { code: response.code, body: response.body }
end
compose_request(method,options) click to toggle source
# File lib/nice_reply_client.rb, line 28
def compose_request(method,options)
  request = Net::HTTP::Post.new("#{core_url}#{convert_case(method.to_s)}")
  request.set_form_data(options_with_credentials(options))
  request
end
convert_case(method_name) click to toggle source
# File lib/nice_reply_client.rb, line 22
def convert_case(method_name)
  # Thanks to James Edward Gray II for the regex idea!
  # https://twitter.com/JEG2/status/358958848649863168
  method_name.gsub(/_([a-z])/) { |s| $1.upcase }
end
core_url() click to toggle source
# File lib/nice_reply_client.rb, line 40
def core_url
  "http://www.nicereply.com/api/"
end
http() click to toggle source
# File lib/nice_reply_client.rb, line 44
def http
  uri = URI.parse(core_url)
  Net::HTTP.new(uri.host,uri.port)
end
options_with_credentials(options) click to toggle source
# File lib/nice_reply_client.rb, line 34
def options_with_credentials(options)
  options = Hash.new if options.nil?
  options[:apikey] = @api_key
  options
end