Module: FulfilApi

Defined in:
lib/fulfil_api.rb,
lib/fulfil_api/error.rb,
lib/fulfil_api/client.rb,
lib/fulfil_api/version.rb,
lib/fulfil_api/relation.rb,
lib/fulfil_api/resource.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

Defined Under Namespace

Modules: TestHelper Classes: AccessToken, Client, Configuration, CustomerShipment, Error, Relation, Resource

Constant Summary collapse

VERSION =
"0.3.4"

Class Method Summary collapse

Class Method Details

.clientFulfilApi::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

Examples:

with a custom configuration

Returns:



127
128
129
# File 'lib/fulfil_api/client.rb', line 127

def self.client
  Client.new(FulfilApi.configuration)
end

.configurationFulfil::Configuration

Provides thread-safe access to the gem’s configuration.

Returns:

  • (Fulfil::Configuration)

    The current configuration object.



47
48
49
50
# File 'lib/fulfil_api/configuration.rb', line 47

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.

Parameters:

  • options (Hash, Fulfil::Configuration)

    A list of configuration options for the gem.

Returns:

  • (Fulfil::Configuration)

    The updated configuration object.



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/fulfil_api/configuration.rb', line 64

def self.configuration=(options_or_configuration) # rubocop:disable Metrics/MethodLength
  Thread.current[:fulfil_api_configuration] =
    case options_or_configuration
    when Hash
      config = Configuration.new
      options_or_configuration.each { |key, value| config.send(:"#{key}=", value) }
      config
    when Configuration
      options_or_configuration
    else
      raise ArgumentError, "Expected Hash or Configuration, got #{options_or_configuration.class} instead"
    end
end

.configure {|config| ... } ⇒ void

This method returns an undefined value.

Allows the configuration of the gem in a thread-safe manner.

Yield Parameters:

  • config (Fulfil::Configuration)

    The current configuration object.



56
57
58
# File 'lib/fulfil_api/configuration.rb', line 56

def self.configure
  yield(configuration)
end

.with_config(temporary_options) { ... } ⇒ void

This method returns an undefined value.

Temporarily applies the provided configuration options within a block,

and then reverts to the original configuration after the block executes.

Parameters:

  • temporary_options (Hash)

    A hash of temporary configuration options.

Yields:

  • Executes the block with the temporary configuration.



84
85
86
87
88
89
90
91
92
# File 'lib/fulfil_api/configuration.rb', line 84

def self.with_config(temporary_options)
  original_configuration = configuration.dup
  self.configuration = temporary_options

  yield
ensure
  # Revert to the original configuration
  Thread.current[:fulfil_api_configuration] = original_configuration
end