class Shokkenki::Consumer::Session
Attributes
configuration[R]
consumers[R]
current_consumer[R]
patronages[R]
providers[R]
ticket_location[RW]
Public Class Methods
new()
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 16 def initialize @consumers = {} @providers = {} @patronages = {} @ticket_location = 'tickets' end
Public Instance Methods
add_consumer(consumer)
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 38 def add_consumer consumer @consumers[simplify(consumer.name)] = consumer end
add_provider(provider)
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 30 def add_provider provider @providers[simplify(provider.name)] = provider end
assert_all_interactions_used!()
click to toggle source
# 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!()
click to toggle source
# 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()
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 54 def clear_interaction_stubs @providers.values.each { |p| p.clear_interaction_stubs } end
close()
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 62 def close @providers.values.each { |p| p.session_closed } end
consumer(name)
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 46 def consumer name @consumers[simplify(name)] end
current_patronage_for(provider_name)
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 42 def provider name @providers[simplify(name)] end
set_current_consumer(name)
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 50 def set_current_consumer name @current_consumer = consumer name end
start()
click to toggle source
# File lib/shokkenki/consumer/session.rb, line 58 def start @providers.values.each { |p| p.session_started } end