class MaponClient::Client
Constants
- AVAILABLE_FORMATS
- DEFAULT_BASE_URL
- JSON
- OBJECT
- STRUCTURE
- XML
Attributes
api_key[R]
base_url[R]
format[R]
parser_class[R]
request_format[R]
resource_base[R]
Public Class Methods
new(api_key: nil, base_url: nil, format: nil)
click to toggle source
# File lib/mapon_client/client.rb, line 17 def initialize(api_key: nil, base_url: nil, format: nil) @api_key = api_key || ENV['MAPON_CLIENT_API_KEY'] @base_url = base_url || DEFAULT_BASE_URL @format = format || JSON set_request_format set_parser_class @resource_base ||= RestClient::Resource.new( @base_url, headers: { params: { key: @api_key } } ) end
Public Instance Methods
[](*args)
click to toggle source
# File lib/mapon_client/client.rb, line 30 def [](*args) @resource_base.public_send( :[], *append_format_to_url(*args) ) end
append_format_to_url(*args)
click to toggle source
# File lib/mapon_client/client.rb, line 49 def append_format_to_url(*args) suburl = "#{args.shift}.#{@request_format}" args.unshift(suburl) end
with_key(params)
click to toggle source
# File lib/mapon_client/client.rb, line 45 def with_key(params) params.merge(key: @api_key) end
Private Instance Methods
set_parser_class()
click to toggle source
# File lib/mapon_client/client.rb, line 64 def set_parser_class @parser_class = if @format == STRUCTURE MaponClient::Parsers::StructureParser elsif @format == OBJECT MaponClient::Parsers::ObjectParser else MaponClient::Parsers::EmptyParser end end
set_request_format()
click to toggle source
# File lib/mapon_client/client.rb, line 56 def set_request_format if @format == STRUCTURE || @format == OBJECT @request_format = JSON else @request_format = @format end end