Class: Pact::Provider::State::ProviderStates

Inherits:
Object
  • Object
show all
Defined in:
lib/pact/provider/state/provider_state.rb

Class Method Summary collapse

Class Method Details

.base_provider_stateObject



34
35
36
37
38
# File 'lib/pact/provider/state/provider_state.rb', line 34

def self.base_provider_state
  fullname = namespaced_name BASE_PROVIDER_STATE_NAME, {:for => current_namespaces.first }
  provider_states[fullname] ||= ProviderState.new(BASE_PROVIDER_STATE_NAME, current_namespaces.join('.'))
  provider_states[fullname]
end

.current_namespacesObject



48
49
50
# File 'lib/pact/provider/state/provider_state.rb', line 48

def self.current_namespaces
  @@current_namespaces ||= []
end

.get(name, options = {}) ⇒ Object



52
53
54
55
# File 'lib/pact/provider/state/provider_state.rb', line 52

def self.get name, options = {}
  fullname = namespaced_name name, options
  (provider_states[fullname] || provider_states[fullname.to_sym] || provider_states[name])
end

.get_base(opts = {}) ⇒ Object



57
58
59
60
# File 'lib/pact/provider/state/provider_state.rb', line 57

def self.get_base opts = {}
  fullname = namespaced_name BASE_PROVIDER_STATE_NAME, opts
  provider_states[fullname] || NoOpProviderState
end

.namespaced_name(name, options = {}) ⇒ Object



62
63
64
# File 'lib/pact/provider/state/provider_state.rb', line 62

def self.namespaced_name name, options = {}
  options[:for] ? "#{options[:for]}.#{name}" : name
end

.provider_state(name, &block) ⇒ Object



30
31
32
# File 'lib/pact/provider/state/provider_state.rb', line 30

def self.provider_state name, &block
  ProviderState.build(name, current_namespaces.join('.'), &block)
end

.provider_statesObject



44
45
46
# File 'lib/pact/provider/state/provider_state.rb', line 44

def self.provider_states
  @@provider_states ||= {}
end

.register(name, provider_state) ⇒ Object



40
41
42
# File 'lib/pact/provider/state/provider_state.rb', line 40

def self.register name, provider_state
  provider_states[name] = provider_state
end