Class: Shokkenki::Consumer::Session
Instance Attribute Summary collapse
#stubber_classes
Instance Method Summary
collapse
#configure, #define_provider, #register_stubber, #tickets
#order
#simplify
Constructor Details
Returns a new instance of Session.
16
17
18
19
20
21
|
# File 'lib/shokkenki/consumer/session.rb', line 16
def initialize
@consumers = {}
@providers = {}
@patronages = {}
@ticket_location = 'tickets'
end
|
Instance Attribute Details
#configuration ⇒ Object
Returns the value of attribute configuration.
13
14
15
|
# File 'lib/shokkenki/consumer/session.rb', line 13
def configuration
@configuration
end
|
#consumers ⇒ Object
Returns the value of attribute consumers.
13
14
15
|
# File 'lib/shokkenki/consumer/session.rb', line 13
def consumers
@consumers
end
|
#current_consumer ⇒ Object
Returns the value of attribute current_consumer.
13
14
15
|
# File 'lib/shokkenki/consumer/session.rb', line 13
def current_consumer
@current_consumer
end
|
#patronages ⇒ Object
Returns the value of attribute patronages.
13
14
15
|
# File 'lib/shokkenki/consumer/session.rb', line 13
def patronages
@patronages
end
|
#providers ⇒ Object
Returns the value of attribute providers.
13
14
15
|
# File 'lib/shokkenki/consumer/session.rb', line 13
def providers
@providers
end
|
#ticket_location ⇒ Object
Returns the value of attribute ticket_location.
14
15
16
|
# File 'lib/shokkenki/consumer/session.rb', line 14
def ticket_location
@ticket_location
end
|
Instance Method Details
#add_consumer(consumer) ⇒ Object
38
39
40
|
# File 'lib/shokkenki/consumer/session.rb', line 38
def add_consumer consumer
@consumers[simplify(consumer.name)] = consumer
end
|
#add_provider(provider) ⇒ Object
30
31
32
|
# File 'lib/shokkenki/consumer/session.rb', line 30
def add_provider provider
@providers[simplify(provider.name)] = provider
end
|
#assert_all_interactions_used! ⇒ Object
78
79
80
|
# File 'lib/shokkenki/consumer/session.rb', line 78
def assert_all_interactions_used!
@providers.values.each { |p| p.assert_all_interactions_used! }
end
|
#assert_all_requests_matched! ⇒ Object
74
75
76
|
# File 'lib/shokkenki/consumer/session.rb', line 74
def assert_all_requests_matched!
@providers.values.each { |p| p.assert_all_requests_matched! }
end
|
#clear_interaction_stubs ⇒ Object
54
55
56
|
# File 'lib/shokkenki/consumer/session.rb', line 54
def clear_interaction_stubs
@providers.values.each { |p| p.clear_interaction_stubs }
end
|
#close ⇒ Object
62
63
64
|
# File 'lib/shokkenki/consumer/session.rb', line 62
def close
@providers.values.each { |p| p.session_closed }
end
|
#consumer(name) ⇒ Object
46
47
48
|
# File 'lib/shokkenki/consumer/session.rb', line 46
def consumer name
@consumers[simplify(name)]
end
|
#current_patronage_for(provider_name) ⇒ Object
23
24
25
26
27
28
|
# File 'lib/shokkenki/consumer/session.rb', line 23
def current_patronage_for provider_name
consumer = @current_consumer
provider = provider(provider_name) || raise("The provider '#{provider_name}' is not recognised. Have you defined it?")
key = { consumer => provider }
@patronages[key] ||= Shokkenki::Consumer::Model::Patronage.new :consumer => consumer, :provider => provider
end
|
#print_tickets ⇒ Object
66
67
68
69
70
71
72
|
# File 'lib/shokkenki/consumer/session.rb', line 66
def print_tickets
@patronages.values.collect(&:ticket).each do |ticket|
FileUtils.mkpath ticket_location
ticket_path = File.expand_path(File.join(ticket_location, ticket.filename))
File.open(ticket_path, 'w') { |file| file.write(ticket.to_json) }
end
end
|
#provider(name) ⇒ Object
42
43
44
|
# File 'lib/shokkenki/consumer/session.rb', line 42
def provider name
@providers[simplify(name)]
end
|
#set_current_consumer(name) ⇒ Object
50
51
52
|
# File 'lib/shokkenki/consumer/session.rb', line 50
def set_current_consumer name
@current_consumer = consumer name
end
|
#start ⇒ Object
58
59
60
|
# File 'lib/shokkenki/consumer/session.rb', line 58
def start
@providers.values.each { |p| p.session_started }
end
|