Skip to content

Instantly share code, notes, and snippets.

@luckyruby
Created April 30, 2012 20:12
Show Gist options
  • Select an option

  • Save luckyruby/2562324 to your computer and use it in GitHub Desktop.

Select an option

Save luckyruby/2562324 to your computer and use it in GitHub Desktop.
source 'http://rubygems.org'
gem 'rails', '3.2.3'
gem 'redis'
gem 'puma'
gem 'execjs'
platforms :mri do
# gem 'unicorn'
gem 'pg'
gem 'therubyracer'
end
platforms :rbx do
gem 'pg'
gem 'therubyracer'
end
platforms :jruby do
gem 'activerecord-jdbcpostgresql-adapter'
gem 'jdbc-postgres'
gem 'jruby-openssl'
gem 'json'
gem 'therubyrhino'
end
group :test do
# Pretty printed test output
gem 'turn', :require => false
end
group :development do
gem 'nifty-generators'
gem 'ruby-prof'
gem 'capistrano'
gem 'capistrano-ext'
gem 'rvm-capistrano'
end
gem "mocha", :group => :test
http://localhost:3000/requests/AS?&function=AS&iata=10655083&pickup_location=PHX&pickup_date=18MAY2012&pickup_time=1000&return_date=20MAY2012&return_time=1000&cartype=E****
{"function":"AS","pickup_location":"PHX","pickup_location_airport_code":"T01","pickup_location_name":"Phoenix, AZ/S-IN 008","pickup_location_type":"T","pickup_date":"18MAY2012","pickup_time":"1000","return_location":"PHX","return_location_airport_code":"T01","return_date":"20MAY2012","return_time":"1000","rental_length":"00200","rental_days":"002","rental_hours":"00","error_number":0,"rates":[{"base_rate":"19.36","rate_plan":"D","xday_rate":"19.36","xhr_rate":"10.00","cartype":"ECAR","currency":"USD","car_description":"Toyota Yaris 4 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"38.72","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"38.72","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"1.94"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"4.47"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"5.91"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"2.50"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"28.36","total_price":"67.08","other_charges_total":"28.36"},{"base_rate":"20.21","rate_plan":"D","xday_rate":"20.21","xhr_rate":"10.00","cartype":"CCAR","currency":"USD","car_description":"Ford Fiesta 4 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"40.42","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"40.42","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"2.02"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"4.66"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"6.10"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"2.50"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"28.82","total_price":"69.24","other_charges_total":"28.82"},{"base_rate":"21.01","rate_plan":"D","xday_rate":"21.01","xhr_rate":"10.00","cartype":"ICAR","currency":"USD","car_description":"Nissan Sentra 5 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"42.02","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"42.02","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"2.10"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"4.84"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"6.28"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"2.50"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"29.26","total_price":"71.28","other_charges_total":"29.26"},{"base_rate":"21.80","rate_plan":"D","xday_rate":"21.80","xhr_rate":"10.00","cartype":"SCAR","currency":"USD","car_description":"Ford Fusion 5 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"43.60","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"43.60","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"2.18"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"5.01"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"6.46"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"2.50"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"29.69","total_price":"73.29","other_charges_total":"29.69"},{"base_rate":"20.60","rate_plan":"D","xday_rate":"20.60","xhr_rate":"10.00","cartype":"FCAR","currency":"USD","car_description":"Hyundai Sonata 5 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"41.20","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"41.20","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"2.06"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"4.74"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"6.19"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"2.50"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"29.03","total_price":"70.23","other_charges_total":"29.03"},{"base_rate":"69.99","rate_plan":"D","xday_rate":"69.99","xhr_rate":"23.33","cartype":"PCAR","currency":"USD","car_description":"Hyundai Azera 5 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"139.98","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"139.98","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"7.00"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"15.71"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"17.35"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"5.50"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"59.10","total_price":"199.08","other_charges_total":"59.1"},{"base_rate":"99.99","rate_plan":"D","xday_rate":"99.99","xhr_rate":"33.33","cartype":"LCAR","currency":"USD","car_description":"Chrysler 300 5 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"199.98","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"199.98","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"10.00"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"22.37"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"24.13"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"7.67"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"77.71","total_price":"277.69","other_charges_total":"77.71"},{"base_rate":"79.99","rate_plan":"D","xday_rate":"79.99","xhr_rate":"26.66","cartype":"IFAR","currency":"USD","car_description":"Kia Sorento 5 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"159.98","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"159.98","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"8.00"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"17.93"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"19.61"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"6.22"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"65.30","total_price":"225.28","other_charges_total":"65.3"},{"base_rate":"89.99","rate_plan":"D","xday_rate":"89.99","xhr_rate":"30.00","cartype":"SFAR","currency":"USD","car_description":"Ford Explorer 5 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"179.98","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"179.98","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"9.00"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"20.15"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"21.87"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"6.94"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"71.50","total_price":"251.48","other_charges_total":"71.5"},{"base_rate":"78.99","rate_plan":"D","xday_rate":"78.99","xhr_rate":"26.33","cartype":"MVAR","currency":"USD","car_description":"Kia Sedona 7 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"157.98","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"157.98","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"7.90"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"17.71"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"19.38"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"6.15"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"64.68","total_price":"222.66","other_charges_total":"64.68"},{"base_rate":"175.36","rate_plan":"D","xday_rate":"175.36","xhr_rate":"58.45","cartype":"STAR","currency":"USD","car_description":"Chrysler 200 4 Passengers or Similar","ratecode":"2D","rate_category":"S","base_quantity":2,"base_amount":"350.72","xday_quantity":0,"xday_amount":"0.00","xhr_quantity":0,"xhr_amount":"0.00","time_and_mileage":"350.72","fees":[{"name":"Facility Fee 0.77 PER DAY","rate":"0.77","quantity":1,"amount":"1.54"},{"name":"Customer Facility Charge 6.00 PER DAY","rate":"6.00","quantity":1,"amount":"12.00"},{"name":"Vehicle License Fee 5.00%","rate":"5.00","quantity":1,"amount":"17.54"},{"name":"Concession Recovery Fee 11.10%","rate":"11.10","quantity":1,"amount":"39.10"},{"name":"Sales Tax 11.30%","rate":"11.30","quantity":1,"amount":"41.16"},{"name":"Country Surcharge 3.25%","rate":"3.25","quantity":1,"amount":"13.11"}],"discounts":[],"mileage_rules":{"base_mileage":"UNL","base_mileage_total":"UNL","xday_mileage":"UNL","xday_mileage_total":"UNL","xhr_mileage":"UNL","xhr_mileage_total":"UNL","mileage_charge":"0.00","mileage_unit":"MI"},"fees_total":"124.45","total_price":"475.17","other_charges_total":"124.45"}]}
def results
#validation sequence
enough_info? &&
pickup_location_exists? &&
valid_pickup_date? &&
valid_pickup_time? &&
valid_return_date? &&
valid_return_time? &&
pickup_in_future? &&
pickup_before_return? &&
return_location_exists? &&
pickup_location_open? &&
return_location_open? &&
cars_available? &&
rates_available?
@results[:function] = case @request[:function]
when 'AS' then 'AS'
when 'RQ' then 'RQ'
when 'AN' then 'ANS'
end
@results[:pickup_location] = @request[:pickup_location] #<pickup_location>
@results[:pickup_location_airport_code] = @pickup_location_airport_code if @pickup_location_airport_code.present? #<pickup_location_apid>
@results[:pickup_location_name] = @pickup_location.name if @pickup_location #<location_name>
@results[:pickup_location_type] = @pickup_location.location_type.code if @pickup_location && @request[:source] != 'INTERNET' #<in_terminal>
@results[:pickup_date] = @request[:pickup_date] #<pickup_date>
@results[:pickup_time] = @request[:pickup_time] #<pickup_time>
@results[:return_location] = @request[:return_location] #<return_location>
@results[:return_location_airport_code] = @return_location_airport_code if @return_location_airport_code #<return_location_apid>
@results[:return_date] = @request[:return_date] #<return_date>
@results[:return_time] = @request[:return_time] #<return_time>
if @rental_length.present?
@results[:rental_length] = @rental_length[:days].to_s.rjust(3,"0") + @rental_length[:hours].to_s.rjust(2,"0") #<rental_length>
@results[:rental_days] = @rental_length[:days].to_s.rjust(3,"0") #<rental_days>
@results[:rental_hours] = @rental_length[:hours].to_s.rjust(2,"0") #<rental_hours>
end
@results[:error_number] = @error_number #<error_number>
@results[:error_text] = @error_text if @error_text.present? #<error_text>
if @rates.present?
if %w(RQ AN).include? @request[:function]
rate = @rates.first
@results[:payment_options] = @pickup_location.payment_options.map(&:code).join("*") #<forms_of_payment>
@results[:pickup_location_address] = @pickup_location.full_address #<pickup_addr>
@results[:operating_hours] = @operating_hours #<hours_operation>
@results[:text_rule] = rate[:text_rule] #<text_rule>
@results[:min_advanced] = rate[:min_advanced] #<advance_qty>
@results[:min_advanced_unit] = 'MIN' #<advance_unit>
@results[:min_length] = rate[:min_length] #<min_rate_qty>
@results[:min_length_unit] = 'H' #<min_rate_units>
@results[:base_length] = rate[:base_length] #<max_rate_qty>
@results[:base_length_unit] = 'H' #<max_rate_units>
@results[:max_length] = rate[:max_length] #<max_rental_qty>
@results[:max_length_unit] = 'H' #<max_rental_units>
@results[:pickup_location_code] = @pickup_location.code
@results[:return_location_code] = @return_location.code
@results[:pickup_location_timezone] = @pickup_location.timezone
@results[:return_location_timezone] = @return_location.timezone
@results[:pickup_notes] = @pickup_location.pickup_notes
end
@results[:rates] = @rates.each { |rate| rate.delete_if { |key| [ :text_rule, :min_advanced ].include? key } }
end
@results
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment