Class: BungieClient::Wrapper
- Inherits:
-
Object
- Object
- BungieClient::Wrapper
- Defined in:
- lib/bungie_client/wrapper.rb
Overview
Wrapper class for simple api requests
Instance Method Summary collapse
-
#call_service(service, params = {}, options = {}) ⇒ Hashie::Mash
Call needed service from services list.
-
#client ⇒ BungieClient::Client
Get wrapper client.
-
#fill_url(url, params) ⇒ String
Change all url parameters to hash value.
-
#initialize(options = {}) ⇒ Wrapper
constructor
Initialize wrapper with client.
- #method_missing(*args) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Wrapper
Initialize wrapper with client
This initializer create wrapper object with client. If you ‘options` contain `:client` key, it will be taken as client object [BungieClient::Client]. Otherwise it will be passed in client initializer.
12 13 14 15 16 17 18 |
# File 'lib/bungie_client/wrapper.rb', line 12 def initialize( = {}) if [:client].nil? = elsif [:client].is_a? BungieClient::Client @client = [:client] end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(*args) ⇒ Object
60 61 62 |
# File 'lib/bungie_client/wrapper.rb', line 60 def method_missing(*args) call_service args[0].to_s, args[1] || {}, args[2] || {} end |
Instance Method Details
#call_service(service, params = {}, options = {}) ⇒ Hashie::Mash
Call needed service from services list
50 51 52 53 54 55 56 57 58 |
# File 'lib/bungie_client/wrapper.rb', line 50 def call_service(service, params = {}, = {}) service = BungieClient::Service.new service rescue raise NoMethodError # change url url = self.fill_url service.endpoint, params # send request client.send service.type, url, end |
#client ⇒ BungieClient::Client
Get wrapper client
23 24 25 26 27 |
# File 'lib/bungie_client/wrapper.rb', line 23 def client return @client unless @client.nil? @client = BungieClient::Client.new end |
#fill_url(url, params) ⇒ String
Change all url parameters to hash value
35 36 37 38 39 40 41 |
# File 'lib/bungie_client/wrapper.rb', line 35 def fill_url(url, params) params.each do |key, value| url = url.gsub "{#{key}}", value.to_s end url end |