Class: Nucleo::Client
- Inherits:
-
Object
- Object
- Nucleo::Client
- Defined in:
- lib/nucleo/client.rb,
lib/nucleo/client/version.rb
Constant Summary collapse
- VERSION =
"0.1.0"
Class Attribute Summary collapse
-
.configuration ⇒ Nucleo::Configuration
Create a default configuration to use.
-
.routes ⇒ Object
Define the API routes.
Class Method Summary collapse
-
.api_host ⇒ String
Helper method to return the API host.
-
.configure {|self.configuration| ... } ⇒ Nucleo::Configuration
Specify configuration options.
-
.connection ⇒ Nucleo::Connection
Helper method to access the Connection object.
-
.delete(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an DELETE request.
-
.get(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform a GET request.
-
.head(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform a HEAD request.
-
.options(url, headers = {}) ⇒ Nucleo::Response
Helper method to perform an OPTIONS request.
-
.patch(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an PATCh request.
-
.post(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an POST request.
-
.put(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an PUT request.
Class Attribute Details
.configuration ⇒ Nucleo::Configuration
Create a default configuration to use
38 39 40 |
# File 'lib/nucleo/client.rb', line 38 def configuration @configuration end |
.routes ⇒ Object
Define the API routes. This will return a collection of available routes.
143 144 145 |
# File 'lib/nucleo/client.rb', line 143 def routes @routes end |
Class Method Details
.api_host ⇒ String
Helper method to return the API host
168 169 170 |
# File 'lib/nucleo/client.rb', line 168 def self.api_host self.configuration.api_host end |
.configure {|self.configuration| ... } ⇒ Nucleo::Configuration
Specify configuration options. This will be applied to our memoized Configuration.
46 47 48 |
# File 'lib/nucleo/client.rb', line 46 def self.configure yield(self.configuration) end |
.connection ⇒ Nucleo::Connection
Helper method to access the Connection object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/nucleo/client.rb', line 53 def self.connection @connection ||= Nucleo::Connection.new(url: self.configuration.api_host) do |builder| builder.use(:gzip) builder.response(:json, content_type: /\bjson$/) builder.response(:logger, self.configuration.request_logger) builder.response(:detailed_logger, self.configuration.detailed_logger) builder.request(:retry, max: 10, interval: 1, interval_randomness: 0.5, backoff_factor: 2) builder.[:timeout] = 600 builder.adapter(Nucleo::Connection.default_adapter) end # Inject the Authorization via the API key @connection.headers['x-api-key'] = self.configuration.access_token # Merge in the default headers @connection.headers.merge!(self.configuration.[:headers]) @connection end |
.delete(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an DELETE request
135 136 137 138 139 |
# File 'lib/nucleo/client.rb', line 135 def self.delete(url, data={}, headers={}) request = self.connection.delete(url, data, headers) Nucleo::Response.new(request) end |
.get(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform a GET request
81 82 83 84 85 |
# File 'lib/nucleo/client.rb', line 81 def self.get(url, data={}, headers={}) request = self.connection.get(url, data, headers) Nucleo::Response.new(request) end |
.head(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform a HEAD request
90 91 92 93 94 |
# File 'lib/nucleo/client.rb', line 90 def self.head(url, data={}, headers={}) request = self.connection.head(url, data, headers) Nucleo::Response.new(request) end |
.options(url, headers = {}) ⇒ Nucleo::Response
Helper method to perform an OPTIONS request
99 100 101 102 103 |
# File 'lib/nucleo/client.rb', line 99 def self.(url, headers={}) request = self.connection.(url, nil, headers) Nucleo::Response.new(request) end |
.patch(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an PATCh request
126 127 128 129 130 |
# File 'lib/nucleo/client.rb', line 126 def self.patch(url, data={}, headers={}) request = self.connection.patch(url, data, headers) Nucleo::Response.new(request) end |
.post(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an POST request
108 109 110 111 112 |
# File 'lib/nucleo/client.rb', line 108 def self.post(url, data={}, headers={}) request = self.connection.post(url, data, headers) Nucleo::Response.new(request) end |
.put(url, data = {}, headers = {}) ⇒ Nucleo::Response
Helper method to perform an PUT request
117 118 119 120 121 |
# File 'lib/nucleo/client.rb', line 117 def self.put(url, data={}, headers={}) request = self.connection.put(url, data, headers) Nucleo::Response.new(request) end |