Class: ConfigurationService::Provider::Stub

Inherits:
Object
  • Object
show all
Defined in:
lib/configuration_service/provider/stub.rb

Overview

A stub configuration service provider

Used to validate the test framework architecture.

It is registered into the ConfigurationService::ProviderRegistry with identifier “stub”.

Constant Summary collapse

BUILTIN_TOKENS =
{
  :consumer  => '64867ebd-6364-0bd3-3fda-81-requestor',
  :publisher => 'f53606cb-7f3c-4432-afe8-44-publisher',
  :nothing   => '2972abd7-b055-4841-8ad1-4a34-nothing',
}

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Stub

Returns a new instance of Stub.

Parameters:

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :name (String)

    arbitrary name, used solely for testing factory methods



33
34
35
36
# File 'lib/configuration_service/provider/stub.rb', line 33

def initialize(options = {})
  @name = options[:name] or raise ArgumentError, "missing required argument: name"
  @configurations = StubStore.instance
end

Instance Method Details

#publish_configuration(configuration, token) ⇒ ConfigurationService::Configuration

Publish configuration

Parameters:

Returns:

Raises:

See Also:



67
68
69
70
71
# File 'lib/configuration_service/provider/stub.rb', line 67

def publish_configuration(configuration, token)
  authorize_request(:publisher, token)
  @configurations.store(configuration.identifier, configuration.data, configuration.)
  configuration
end

#request_configuration(identifier, token) ⇒ ConfigurationService::Configuration?

Request configuration

Fetches configuration from the singleton StubStore.

Returns:

Raises:

See Also:



49
50
51
52
53
54
55
# File 'lib/configuration_service/provider/stub.rb', line 49

def request_configuration(identifier, token)
  authorize_request(:consumer, token)
  data,  = @configurations.fetch(identifier)
  Configuration.new(identifier, data, )
rescue KeyError
  nil
end