require "objectteam"
require "flightbooking"
require "bonus"
require "contextual"
# create some flight segments:
bf = Segment.new("Berlin", "Frankfurt", 600, 150, 800)
fb = Segment.new("Frankfurt", "Berlin", 611, 150, 800)
fn = Segment.new("Frankfurt", "New York", 600, 300, 1000)
nf = Segment.new("New York", "Frankfurt", 611, 300, 1000)
# combine segments to a flight:
flight = Flight.new(bf, fn, nf, fb)
# the passenger
samson = Passenger.new("Samson")
# "normal" book
puts "\n\nBook \"normal\" - no savings ===================================="
samson.book(flight)
# activate bonus context ===================================================
fb = FlightBonus.new()
samson.setContext(fb)
# book with savings
puts "\n\nBook as frequent flyer ========================================"
samson.book(flight)
print(" ===> earned credits: #{fb[samson].collectedCredits}\n")
# samson becomes very important ============================================
fbvip = FlightBonusVIP.new()
#transfer credits
fbvip[samson].collectedCredits= fb[samson].collectedCredits
#set new context
samson.setContext(fbvip)
puts "\n\nBook as vip flyer=============================================="
samson.book(flight)
print(" ===> earned credits: #{fbvip[samson].collectedCredits}\n")
syntax highlighted by Code2HTML, v. 0.9.1