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