Module: FulfilApi
- Defined in:
- lib/fulfil_api.rb,
lib/fulfil_api/error.rb,
lib/fulfil_api/client.rb,
lib/fulfil_api/report.rb,
lib/fulfil_api/version.rb,
lib/fulfil_api/relation.rb,
lib/fulfil_api/resource.rb,
lib/fulfil_api/tpl_client.rb,
lib/fulfil_api/test_helper.rb,
lib/fulfil_api/access_token.rb,
lib/fulfil_api/configuration.rb,
lib/fulfil_api/relation/naming.rb,
lib/fulfil_api/resource/errors.rb,
lib/fulfil_api/customer_shipment.rb,
lib/fulfil_api/relation/loadable.rb,
lib/fulfil_api/relation/batchable.rb,
lib/fulfil_api/relation/countable.rb,
lib/fulfil_api/resource/comparable.rb,
lib/fulfil_api/resource/persistable.rb,
lib/fulfil_api/resource/serializable.rb,
lib/fulfil_api/relation/query_methods.rb,
lib/fulfil_api/resource/attribute_type.rb,
lib/fulfil_api/resource/attribute_assignable.rb,
sig/fulfil_api.rbs
Defined Under Namespace
Modules: TestHelper Classes: AccessToken, Client, Configuration, CustomerShipment, Error, Relation, Report, Resource, TplClient
Constant Summary collapse
- VERSION =
"0.7.0"
Class Method Summary collapse
-
.client ⇒ FulfilApi::Client
Builds an HTTP client to interact with an API endpoint of Fulfil.
-
.configuration ⇒ Fulfil::Configuration
Provides thread-safe access to the gem's configuration.
-
.configuration=(options_or_configuration) ⇒ Fulfil::Configuration
Overwrites the configuration with the newly provided configuration options.
-
.configure {|config| ... } ⇒ void
Allows the configuration of the gem in a thread-safe manner.
-
.tpl_client ⇒ FulfilApi::TplClient
Builds an HTTP client to interact with Fulfil's 3PL API endpoint.
-
.with_config(temporary_options) { ... } ⇒ void
Temporarily applies the provided configuration options on top of the currently active configuration, and then reverts after the block executes.
Class Method Details
.client ⇒ FulfilApi::Client
Builds an HTTP client to interact with an API endpoint of Fulfil.
To use a different configuration, wrap the call to the client method into an with_config block.
FulfilApi.with_config(...) do
FulfilApi.client.get(...)
end
220 221 222 |
# File 'lib/fulfil_api/client.rb', line 220 def self.client Client.new(FulfilApi.configuration) end |
.configuration ⇒ Fulfil::Configuration
Provides thread-safe access to the gem's configuration.
71 72 73 74 |
# File 'lib/fulfil_api/configuration.rb', line 71 def self.configuration Thread.current[:fulfil_api_configuration] ||= @configuration ||= Configuration.new end |
.configuration=(options_or_configuration) ⇒ Fulfil::Configuration
Overwrites the configuration with the newly provided configuration options.
88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/fulfil_api/configuration.rb', line 88 def self.configuration=() # rubocop:disable Metrics/MethodLength Thread.current[:fulfil_api_configuration] = case when Hash config = Configuration.new .each { |key, value| config.send(:"#{key}=", value) } config when Configuration else raise ArgumentError, "Expected Hash or Configuration, got #{.class} instead" end end |
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Allows the configuration of the gem in a thread-safe manner.
80 81 82 |
# File 'lib/fulfil_api/configuration.rb', line 80 def self.configure yield(configuration) end |
.tpl_client ⇒ FulfilApi::TplClient
Builds an HTTP client to interact with Fulfil's 3PL API endpoint.
228 229 230 |
# File 'lib/fulfil_api/tpl_client.rb', line 228 def self.tpl_client TplClient.new(FulfilApi.configuration) end |
.with_config(temporary_options) { ... } ⇒ void
This method returns an undefined value.
Temporarily applies the provided configuration options on top of the currently active configuration, and then reverts after the block executes.
The temporary options are merged over a copy of the active configuration, so
a block only needs to specify what it overrides — credentials and other
settings (access_token, merchant_id, ...) are inherited rather than
reset to their defaults.
113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/fulfil_api/configuration.rb', line 113 def self.with_config() original_configuration = configuration self.configuration = original_configuration.dup.tap do |config| .each { |key, value| config.public_send(:"#{key}=", value) } end yield ensure # Revert to the original configuration Thread.current[:fulfil_api_configuration] = original_configuration end |