Class: HttpStub::Server::Session::IdentifierStrategy

Inherits:
Object
  • Object
show all
Defined in:
lib/http_stub/server/session/identifier_strategy.rb

Instance Method Summary collapse

Constructor Details

#initialize(identifier_setting) ⇒ IdentifierStrategy

Returns a new instance of IdentifierStrategy.



14
15
16
# File 'lib/http_stub/server/session/identifier_strategy.rb', line 14

def initialize(identifier_setting)
  @identifier_configuration = DEFAULT_CONFIGURATION + (identifier_setting ? [ identifier_setting ] : [])
end

Instance Method Details

#identifier_for(sinatra_request) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/http_stub/server/session/identifier_strategy.rb', line 18

def identifier_for(sinatra_request)
  @identifier_configuration.map do |configuration_entry|
    configuration_entry.map do |attribute_type, attribute_name|
      identifier_attributes = attribute_type == :header ? sinatra_request.headers : sinatra_request.parameters
      identifier_attributes[attribute_name]
    end
  end.flatten.compact.first
end