kayakfares 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1 @@
1
+ .rvmrc
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+
3
+ notifications:
4
+ email:
5
+ - jonmagic@gmail.com
6
+
7
+ rvm:
8
+ - 1.8.7
9
+ - 1.9.2
10
+ - 1.9.3
11
+
12
+ script: bundle exec rake spec
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,70 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ kayakfares (0.0.1)
5
+ mechanize (~> 2.3.0)
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ addressable (2.2.7)
11
+ coderay (1.0.5)
12
+ crack (0.3.1)
13
+ diff-lcs (1.1.3)
14
+ domain_name (0.5.3)
15
+ unf (~> 0.0.3)
16
+ ffi (1.0.11)
17
+ guard (1.0.1)
18
+ ffi (>= 0.5.0)
19
+ thor (~> 0.14.6)
20
+ guard-rspec (0.7.0)
21
+ guard (>= 0.10.0)
22
+ mechanize (2.3)
23
+ domain_name (~> 0.5, >= 0.5.1)
24
+ mime-types (~> 1.17, >= 1.17.2)
25
+ net-http-digest_auth (~> 1.1, >= 1.1.1)
26
+ net-http-persistent (~> 2.5, >= 2.5.2)
27
+ nokogiri (~> 1.4)
28
+ ntlm-http (~> 0.1, >= 0.1.1)
29
+ webrobots (~> 0.0, >= 0.0.9)
30
+ method_source (0.7.1)
31
+ mime-types (1.18)
32
+ net-http-digest_auth (1.2)
33
+ net-http-persistent (2.6)
34
+ nokogiri (1.5.2)
35
+ ntlm-http (0.1.1)
36
+ pry (0.9.8.4)
37
+ coderay (~> 1.0.5)
38
+ method_source (~> 0.7.1)
39
+ slop (>= 2.4.4, < 3)
40
+ rake (0.9.2)
41
+ rspec (2.9.0)
42
+ rspec-core (~> 2.9.0)
43
+ rspec-expectations (~> 2.9.0)
44
+ rspec-mocks (~> 2.9.0)
45
+ rspec-core (2.9.0)
46
+ rspec-expectations (2.9.1)
47
+ diff-lcs (~> 1.1.3)
48
+ rspec-mocks (2.9.0)
49
+ slop (2.4.4)
50
+ thor (0.14.6)
51
+ unf (0.0.5)
52
+ unf_ext
53
+ unf_ext (0.0.4)
54
+ vcr (2.0.1)
55
+ webmock (1.8.6)
56
+ addressable (>= 2.2.7)
57
+ crack (>= 0.1.7)
58
+ webrobots (0.0.13)
59
+
60
+ PLATFORMS
61
+ ruby
62
+
63
+ DEPENDENCIES
64
+ guard-rspec
65
+ kayakfares!
66
+ pry
67
+ rake
68
+ rspec
69
+ vcr
70
+ webmock
@@ -0,0 +1,8 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ end
data/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2012 Jonathan Hoyt
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
@@ -0,0 +1,44 @@
1
+ # KayakFares
2
+
3
+ Library to return fares from the [Kayak Search Gateway](http://www.kayak.com/labs/gateway/doc/air.vtl) using [Mechanize](http://mechanize.rubyforge.org/).
4
+
5
+ ## Usage
6
+
7
+ Search for fares:
8
+
9
+ require 'kayakfares'
10
+
11
+ params = {:from => "SBN", :to => "VRN", :depart => "5/15/2012", :return => "5/20/2012"}
12
+ search = KayakFares.new(params)
13
+
14
+ search.results[0].price
15
+ => $1240
16
+
17
+ search.results[0].airline
18
+ => United
19
+
20
+ search.results[0].leg0_departure_time
21
+ => 7:44p
22
+
23
+ search.results[0].leg0_arrival_time
24
+ => 10:35p
25
+
26
+ search.results[0].leg0_duration
27
+ => 20h 51m
28
+
29
+ search.results[0].leg1_departure_time
30
+ => 6:55a
31
+
32
+ search.results[0].leg1_arrival_time
33
+ => 11:26p
34
+
35
+ search.results[0].leg1_duration
36
+ => 22h 31m
37
+
38
+ ## Note on Patches/Pull Requests
39
+
40
+ * Fork the project.
41
+ * Make your feature addition or bug fix.
42
+ * Add tests for it. This is important so we don't break it in a future version unintentionally.
43
+ * Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine, but bump version in a commit by itself so we can ignore when we pull)
44
+ * Send us a pull request. Bonus points for topic branches.
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "kayakfares/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "kayakfares"
7
+ s.version = KayakFares::VERSION
8
+ s.authors = ["Jonathan Hoyt"]
9
+ s.email = ["jonmagic@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Library to return fares from the Kayak Search Gateway using Mechanize.}
12
+ s.description = %q{Library to return fares from the Kayak Search Gateway using Mechanize.}
13
+
14
+ s.rubyforge_project = "kayakfares"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_dependency 'mechanize', '~> 2.3.0'
22
+
23
+ s.add_development_dependency 'rake'
24
+ s.add_development_dependency 'rspec'
25
+ s.add_development_dependency 'webmock'
26
+ s.add_development_dependency 'vcr'
27
+ s.add_development_dependency 'guard-rspec'
28
+ s.add_development_dependency 'pry'
29
+ end
@@ -0,0 +1,83 @@
1
+ require 'uri'
2
+ require 'mechanize'
3
+
4
+ # KayakFares takes a hash of parameters, from/to/depart/return and then uses
5
+ # the Kayak search API (http://www.kayak.com/s/search/air) and Mechanize
6
+ # to scrape the results and give you an easy to use array of hashes with
7
+ # the flight prices and details.
8
+ class KayakFares
9
+
10
+ # Creates a new instance of KayakFares.
11
+ #
12
+ # params - Hash with from/to/depart/return, accepts airport code for
13
+ # from/to and YYYY/MM/DD or MM/DD/YYYY for depart/return
14
+ #
15
+ # Returns instance of KayakFares
16
+ def initialize(params)
17
+ @params = params
18
+ @mechanize = Mechanize.new {|a| a.user_agent_alias = 'Mac Safari' }
19
+ @base_url = "http://www.kayak.com"
20
+ end
21
+
22
+ # Takes parameters and compiles them into a URL encoded string.
23
+ #
24
+ # Returns a string
25
+ def compiled_params
26
+ params_array = []
27
+ params_array << "l1=#{escape(@params[:from])}" if @params[:from]
28
+ params_array << "l2=#{escape(@params[:to])}" if @params[:to]
29
+ params_array << "d1=#{escape(@params[:depart])}" if @params[:depart]
30
+ params_array << "d2=#{escape(@params[:return])}" if @params[:return]
31
+ params_array.join('&')
32
+ end
33
+
34
+ # Takes the compiled params and Kayak search url and mashes them together.
35
+ #
36
+ # Returns a string
37
+ def url
38
+ "#{@base_url}/s/search/air?#{compiled_params}"
39
+ end
40
+
41
+ # Loads search results page using Mechanize.
42
+ #
43
+ # Returns an instance of Mechanize::Page
44
+ def load_page
45
+ @page ||= @mechanize.get(url)
46
+ end
47
+
48
+ # Extracts the search result nodes from the search results page.
49
+ #
50
+ # Returns an instance of Nokogiri::XML::NodeSet which behaves like an Array
51
+ def extract_rows
52
+ @rows ||= load_page.search("//div[contains(concat(' ',normalize-space(@class),' '),' flightresult ')]")
53
+ end
54
+
55
+ # URL encodes string.
56
+ #
57
+ # value - any string
58
+ #
59
+ # Returns a string
60
+ def escape(value)
61
+ URI.escape(value, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
62
+ end
63
+
64
+ # Compiles and returns an array of hashes with flight details.
65
+ #
66
+ # Returns an Array
67
+ def results
68
+ extract_rows.map do |result|
69
+ hash = {}
70
+ hash[:price] = result.xpath(".//a[contains(concat(' ',normalize-space(@class),' '),' results_price ')]").text.strip
71
+ hash[:airline] = result.xpath(".//div[contains(concat(' ',normalize-space(@class),' '),' rsAirlineName ')]").text.strip
72
+ legs = result.xpath(".//div[@class='singleleg']")
73
+ hash[:leg0_departure_time] = legs[0].xpath(".//div[@class='flighttime']")[0].text.strip
74
+ hash[:leg0_arrival_time] = legs[0].xpath(".//div[@class='flighttime']")[1].text.strip
75
+ hash[:leg0_duration] = legs[0].xpath(".//div[@class='duration']")[0].text.strip
76
+ hash[:leg1_departure_time] = legs[1].xpath(".//div[@class='flighttime']")[0].text.strip
77
+ hash[:leg1_arrival_time] = legs[1].xpath(".//div[@class='flighttime']")[1].text.strip
78
+ hash[:leg1_duration] = legs[1].xpath(".//div[@class='duration']")[0].text.strip
79
+ hash[:booking_url] = @base_url + result.xpath(".//a[@class='dealsinresult']")[0].attributes['rel'].value
80
+ hash
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,3 @@
1
+ class KayakFares
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require "bundler/gem_tasks"
3
+ require 'bundler/setup'
4
+
5
+ require 'rspec/core/rake_task'
6
+ desc 'Run all examples'
7
+ RSpec::Core::RakeTask.new(:spec) do |t|
8
+ t.rspec_opts = %w[--color]
9
+ t.verbose = false
10
+ end
11
+
12
+ task :default => :spec
@@ -0,0 +1,92 @@
1
+ require 'spec_helper'
2
+
3
+ describe KayakFares do
4
+ let(:params) { {:from => "SBN", :to => "VRN", :depart => "5/15/2012", :return => "5/20/2012"} }
5
+ subject { KayakFares.new(params) }
6
+
7
+ before(:each) do
8
+ VCR.use_cassette "search" do
9
+ subject.load_page
10
+ end
11
+ end
12
+
13
+ it "should pass a test" do
14
+ subject.should be_instance_of(KayakFares)
15
+ end
16
+
17
+ describe "#compiled_params" do
18
+ it "compiles and escapes params" do
19
+ subject.compiled_params.should == "l1=SBN&l2=VRN&d1=5%2F15%2F2012&d2=5%2F20%2F2012"
20
+ end
21
+ end
22
+
23
+ describe "#url" do
24
+ it "returns api url with parameters" do
25
+ subject.url.should == "http://www.kayak.com/s/search/air?l1=SBN&l2=VRN&d1=5%2F15%2F2012&d2=5%2F20%2F2012"
26
+ end
27
+ end
28
+
29
+ describe "#load_page" do
30
+ it "loads the search page" do
31
+ subject.load_page.should be_instance_of(Mechanize::Page)
32
+ end
33
+ end
34
+
35
+ describe "#extract_rows" do
36
+ it "returns instance of Nokogiri::XML::NodeSet" do
37
+ subject.extract_rows.should be_instance_of(Nokogiri::XML::NodeSet)
38
+ end
39
+
40
+ context "first item in array" do
41
+ it "is an instance of Nokogiri::XML::Element" do
42
+ subject.extract_rows[0].should be_instance_of(Nokogiri::XML::Element)
43
+ end
44
+ end
45
+ end
46
+
47
+ describe "#results" do
48
+ it "should be an instance of array" do
49
+ subject.results.should be_instance_of(Array)
50
+ end
51
+
52
+ context "first item in array" do
53
+ let(:result) { subject.results[0] }
54
+
55
+ it "has price" do
56
+ result[:price].should == "$1240"
57
+ end
58
+
59
+ it "has airline" do
60
+ result[:airline].should == "Multiple Airlines"
61
+ end
62
+
63
+ it "has leg0 departure time" do
64
+ result[:leg0_departure_time].should == "7:44p"
65
+ end
66
+
67
+ it "has leg0 arrival time" do
68
+ result[:leg0_arrival_time].should == "10:35p"
69
+ end
70
+
71
+ it "has leg0 duration" do
72
+ result[:leg0_duration].should == "20h 51m"
73
+ end
74
+
75
+ it "has leg1 departure time" do
76
+ result[:leg1_departure_time].should == "6:55a"
77
+ end
78
+
79
+ it "has leg1 arrival time" do
80
+ result[:leg1_arrival_time].should == "11:26p"
81
+ end
82
+
83
+ it "has leg1 duration" do
84
+ result[:leg1_duration].should == "22h 31m"
85
+ end
86
+
87
+ it "has a booking url" do
88
+ result[:booking_url].should == "http://www.kayak.com/book/flight?code=-1834988415.NECDjXkE5.0.F.AIRFAREDOTCOM,AIRFAREDOTCOM.123964.1c0c248fe00bda24d7ad8b0304f6e0ec&sub=E-15139c05ccb&resultid=1c0c248fe00bda24d7ad8b0304f6e0ec&sr=1&pg=0&cp=0-46-264"
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,753 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.kayak.com/s/search/air?d1=5/15/2012&d2=5/20/2012&l1=SBN&l2=VRN
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML,
14
+ like Gecko) Version/5.1.1 Safari/534.51.22
15
+ Accept-Encoding:
16
+ - gzip,deflate,identity
17
+ Accept-Charset:
18
+ - ISO-8859-1,utf-8;q=0.7,*;q=0.7
19
+ Accept-Language:
20
+ - en-us,en;q=0.5
21
+ Host:
22
+ - www.kayak.com
23
+ Connection:
24
+ - keep-alive
25
+ Keep-Alive:
26
+ - 300
27
+ response:
28
+ status:
29
+ code: 302
30
+ message: Moved Temporarily
31
+ headers:
32
+ Server:
33
+ - Apache-Coyote/1.1
34
+ Location:
35
+ - http://www.kayak.com/in?a=&url=%2Fflights%3Ftab%3Dflights%26oneway%3Dn%26cabin%3De%26travelers%3D1%26origincode%3DSBN%252F24251%26origin%3DSouth%2BBend%252C%2BIN%2B-%2BSouth%2BBend%252FMichiana%2B%2528SBN%2529%26depart_time%3Da%26depart_date%3D05%252F15%252F2012%26nearbyO%3Dn%26destcode%3DVRN%252F33071%26destination%3DVerona%252C%2BItaly%2B-%2BVerona%2B%2528VRN%2529%26return_time%3Da%26return_date%3D05%252F20%252F2012%26nearbyD%3Dn%26action%3Ddoflights
36
+ Content-Type:
37
+ - text/html;charset=utf-8
38
+ Vary:
39
+ - Accept-Encoding
40
+ Content-Encoding:
41
+ - gzip
42
+ Content-Length:
43
+ - '20'
44
+ Date:
45
+ - Tue, 10 Apr 2012 10:43:46 GMT
46
+ Connection:
47
+ - keep-alive
48
+ Set-Cookie:
49
+ - Apache=Q65QDw-AAABNpvaJYY-01-TeVMFA; path=/; expires=Mon, 05-Jan-15 10:43:46
50
+ GMT; domain=.kayak.com
51
+ - NSC_q4-tqbslmf=ffffffff094f2a1c45525d5f4f58455e445a4a422a59;expires=Tue, 10-Apr-2012
52
+ 11:03:46 GMT;path=/;httponly
53
+ - cluster=4; Path=/
54
+ - dc=dc2; Path=/
55
+ - kayak=; Path=/; Domain=.kayak.com; Expires=Thu, 01-Jan-1970 00:00:10 GMT;
56
+ HttpOnly
57
+ - kayak=KE_hyFAOz0TaVUrz84_Q; Path=/; Expires=Fri, 10-Apr-2015 10:43:46 GMT;
58
+ HttpOnly
59
+ Cache-Control:
60
+ - private, must-revalidate, max-age=86400, s-maxage=0
61
+ Expires:
62
+ - Wed, 11 Apr 2012 10:43:46 GMT
63
+ body:
64
+ encoding: ASCII-8BIT
65
+ string: !binary |-
66
+ H4sIAAAAAAAAAwMAAAAAAAAAAAA=
67
+ http_version:
68
+ recorded_at: Tue, 10 Apr 2012 10:43:47 GMT
69
+ - request:
70
+ method: get
71
+ uri: http://www.kayak.com/in?a=&url=/flights?tab=flights%26oneway=n%26cabin=e%26travelers=1%26origincode=SBN%252F24251%26origin=South+Bend%252C+IN+-+South+Bend%252FMichiana+%2528SBN%2529%26depart_time=a%26depart_date=05%252F15%252F2012%26nearbyO=n%26destcode=VRN%252F33071%26destination=Verona%252C+Italy+-+Verona+%2528VRN%2529%26return_time=a%26return_date=05%252F20%252F2012%26nearbyD=n%26action=doflights
72
+ body:
73
+ encoding: US-ASCII
74
+ string: ''
75
+ headers:
76
+ Accept:
77
+ - ! '*/*'
78
+ User-Agent:
79
+ - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML,
80
+ like Gecko) Version/5.1.1 Safari/534.51.22
81
+ Accept-Encoding:
82
+ - gzip,deflate,identity
83
+ Accept-Charset:
84
+ - ISO-8859-1,utf-8;q=0.7,*;q=0.7
85
+ Accept-Language:
86
+ - en-us,en;q=0.5
87
+ Cookie:
88
+ - Apache=Q65QDw-AAABNpvaJYY-01-TeVMFA; kayak=KE_hyFAOz0TaVUrz84_Q; dc=dc2; cluster=4;
89
+ NSC_q4-tqbslmf=ffffffff094f2a1c45525d5f4f58455e445a4a422a59
90
+ Host:
91
+ - www.kayak.com
92
+ Connection:
93
+ - keep-alive
94
+ Keep-Alive:
95
+ - 300
96
+ response:
97
+ status:
98
+ code: 302
99
+ message: Moved Temporarily
100
+ headers:
101
+ Server:
102
+ - Apache-Coyote/1.1
103
+ Location:
104
+ - http://www.kayak.com/flights?tab=flights&oneway=n&cabin=e&travelers=1&origincode=SBN%2F24251&origin=South+Bend%2C+IN+-+South+Bend%2FMichiana+%28SBN%29&depart_time=a&depart_date=05%2F15%2F2012&nearbyO=n&destcode=VRN%2F33071&destination=Verona%2C+Italy+-+Verona+%28VRN%29&return_time=a&return_date=05%2F20%2F2012&nearbyD=n&action=doflights
105
+ Vary:
106
+ - Accept-Encoding
107
+ Content-Encoding:
108
+ - gzip
109
+ Content-Length:
110
+ - '20'
111
+ Content-Type:
112
+ - text/plain; charset=UTF-8
113
+ Date:
114
+ - Tue, 10 Apr 2012 10:43:46 GMT
115
+ Connection:
116
+ - keep-alive
117
+ Set-Cookie:
118
+ - NSC_q4-tqbslmf=ffffffff094f2a1c45525d5f4f58455e445a4a422a59;expires=Tue, 10-Apr-2012
119
+ 11:03:46 GMT;path=/;httponly
120
+ - cluster=4; Path=/
121
+ - dc=dc2; Path=/
122
+ - p1.med.sid=6-41iDi4Aa7D5L9c_$lVIPp; Path=/
123
+ - p1.med.token=_KnyZ5_S1XcvlEJxQ3P5EA; Expires=Sat, 09-Jun-2012 10:43:46 GMT;
124
+ Path=/
125
+ body:
126
+ encoding: ASCII-8BIT
127
+ string: !binary |-
128
+ H4sIAAAAAAAAAwMAAAAAAAAAAAA=
129
+ http_version:
130
+ recorded_at: Tue, 10 Apr 2012 10:43:47 GMT
131
+ - request:
132
+ method: get
133
+ uri: http://www.kayak.com/flights?action=doflights&cabin=e&depart_date=05/15/2012&depart_time=a&destcode=VRN/33071&destination=Verona,%20Italy%20-%20Verona%20(VRN)&nearbyD=n&nearbyO=n&oneway=n&origin=South%20Bend,%20IN%20-%20South%20Bend/Michiana%20(SBN)&origincode=SBN/24251&return_date=05/20/2012&return_time=a&tab=flights&travelers=1
134
+ body:
135
+ encoding: US-ASCII
136
+ string: ''
137
+ headers:
138
+ Accept:
139
+ - ! '*/*'
140
+ User-Agent:
141
+ - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML,
142
+ like Gecko) Version/5.1.1 Safari/534.51.22
143
+ Accept-Encoding:
144
+ - gzip,deflate,identity
145
+ Accept-Charset:
146
+ - ISO-8859-1,utf-8;q=0.7,*;q=0.7
147
+ Accept-Language:
148
+ - en-us,en;q=0.5
149
+ Cookie:
150
+ - Apache=Q65QDw-AAABNpvaJYY-01-TeVMFA; kayak=KE_hyFAOz0TaVUrz84_Q; dc=dc2; cluster=4;
151
+ p1.med.token=_KnyZ5_S1XcvlEJxQ3P5EA; p1.med.sid=6-41iDi4Aa7D5L9c_$lVIPp; NSC_q4-tqbslmf=ffffffff094f2a1c45525d5f4f58455e445a4a422a59
152
+ Host:
153
+ - www.kayak.com
154
+ Connection:
155
+ - keep-alive
156
+ Keep-Alive:
157
+ - 300
158
+ response:
159
+ status:
160
+ code: 302
161
+ message: Moved Temporarily
162
+ headers:
163
+ Server:
164
+ - Apache-Coyote/1.1
165
+ Location:
166
+ - http://www.kayak.com/r/NECDjXkE5
167
+ Content-Type:
168
+ - text/html;charset=utf-8
169
+ Vary:
170
+ - Accept-Encoding
171
+ Content-Encoding:
172
+ - gzip
173
+ Content-Length:
174
+ - '20'
175
+ Date:
176
+ - Tue, 10 Apr 2012 10:43:46 GMT
177
+ Connection:
178
+ - keep-alive
179
+ Set-Cookie:
180
+ - FSBN-VRN%2F2012-05-15%2F2012-05-20=NECDjXkE5; Expires=Tue, 10-Apr-2012 11:43:46
181
+ GMT; Path=/
182
+ - NSC_q4-tqbslmf=ffffffff094f2a1c45525d5f4f58455e445a4a422a59;expires=Tue, 10-Apr-2012
183
+ 11:03:46 GMT;path=/;httponly
184
+ - cluster=4; Path=/
185
+ - dc=dc2; Path=/
186
+ - p1.med.r9Origin=SBN; Expires=Mon, 09-Jul-2012 10:43:46 GMT; Path=/
187
+ - p1.med.sc=1; Expires=Mon, 09-Jul-2012 10:43:46 GMT; Path=/
188
+ Cache-Control:
189
+ - pre-check=0, post-check=0
190
+ - private, no-cache, no-store, must-revalidate, max-age=0
191
+ Expires:
192
+ - '0'
193
+ body:
194
+ encoding: ASCII-8BIT
195
+ string: !binary |-
196
+ H4sIAAAAAAAAAwMAAAAAAAAAAAA=
197
+ http_version:
198
+ recorded_at: Tue, 10 Apr 2012 10:43:47 GMT
199
+ - request:
200
+ method: get
201
+ uri: http://www.kayak.com/r/NECDjXkE5
202
+ body:
203
+ encoding: US-ASCII
204
+ string: ''
205
+ headers:
206
+ Accept:
207
+ - ! '*/*'
208
+ User-Agent:
209
+ - Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/534.51.22 (KHTML,
210
+ like Gecko) Version/5.1.1 Safari/534.51.22
211
+ Accept-Encoding:
212
+ - gzip,deflate,identity
213
+ Accept-Charset:
214
+ - ISO-8859-1,utf-8;q=0.7,*;q=0.7
215
+ Accept-Language:
216
+ - en-us,en;q=0.5
217
+ Cookie:
218
+ - Apache=Q65QDw-AAABNpvaJYY-01-TeVMFA; kayak=KE_hyFAOz0TaVUrz84_Q; p1.med.token=_KnyZ5_S1XcvlEJxQ3P5EA;
219
+ p1.med.sid=6-41iDi4Aa7D5L9c_$lVIPp; dc=dc2; cluster=4; p1.med.r9Origin=SBN;
220
+ p1.med.sc=1; FSBN-VRN%2F2012-05-15%2F2012-05-20=NECDjXkE5; NSC_q4-tqbslmf=ffffffff094f2a1c45525d5f4f58455e445a4a422a59
221
+ Host:
222
+ - www.kayak.com
223
+ Connection:
224
+ - keep-alive
225
+ Keep-Alive:
226
+ - 300
227
+ response:
228
+ status:
229
+ code: 200
230
+ message: OK
231
+ headers:
232
+ Server:
233
+ - Apache-Coyote/1.1
234
+ Content-Type:
235
+ - text/html;charset=utf-8
236
+ Vary:
237
+ - Accept-Encoding
238
+ Content-Encoding:
239
+ - gzip
240
+ Date:
241
+ - Tue, 10 Apr 2012 10:43:47 GMT
242
+ Content-Length:
243
+ - '22088'
244
+ Connection:
245
+ - keep-alive
246
+ Set-Cookie:
247
+ - NSC_q4-tqbslmf=ffffffff094f2a1c45525d5f4f58455e445a4a422a59;expires=Tue, 10-Apr-2012
248
+ 11:03:47 GMT;path=/;httponly
249
+ - cluster=4; Path=/
250
+ - dc=dc2; Path=/
251
+ - p1.med.searched=true; Expires=Mon, 09-Jul-2012 10:43:47 GMT; Path=/
252
+ Cache-Control:
253
+ - pre-check=0, post-check=0
254
+ - private, no-cache, no-store, must-revalidate, max-age=0
255
+ Expires:
256
+ - '0'
257
+ body:
258
+ encoding: ASCII-8BIT
259
+ string: !binary |-
260
+ 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
355
+ 32nZtvDuwzLjFwp/GqG3I7N6AOP6ZO8Ts8ozqWzGXTZRIfd4wr+LmZspeu1Q
356
+ ba7stOTzVwybbPau9hfFC8ArBS35zMNAI9n6fbbXxk7Uv7ppMgNx6RTjlc39
357
+ 2mZXS8TBVMonij34PRo/W4HUXnojrWJHbAh1b5CSscc3x4w501703Y/6F8hv
358
+ zh3Knz7EYciDCz1OCBk8elzhiJDNecoWywub7SV7A8j/bsoj8sLFgTjwzikI
359
+ FeiYaRDNGbaKXEzJSS5aSRws+Dmu4HC2ihoiBb5SMcJmmoDnz2YctUeQHsOe
360
+ 0NsLpjKag300HMQCT67UGSDC/FkCnD3MLciA/+MrGygxmnN6biyE/lINcP4b
361
+ 8VQNdqiW1LEkmcLfBb4EWcBlrERCKUuplD8VvHMywnFaayH3eRD8kQlImMfM
362
+ Fz4f3cNKRnJBTtQUNAjIDQrYVJKnFF3POCMDt47u9abpCd169Aa+CWay6cxl
363
+ KPKarxO2vONLBuX3v6Te8WbsO3catHs8jbz7Ma+IS0clH4X5UXNshCMZgTY2
364
+ tTbWbGwSHZtpSJd1jorkWkt0yTEVvBjZ9kDeyOkdtU0dyre++4LXhLsiScQ0
365
+ 4mpOAixI0nifmjrELSWFJggy2TIDAhkBRQdmESnV2DQUWBHutaTCZ3WpCECc
366
+ +vmCYsYR9ElgLe6UWiRrQeNjLUOEu1IWtWmN/8eYnTLPx0Y7GmJzEM0U4vCa
367
+ XlZEq8tvsPrTb+81LNPgtIVI3czxUpBmoMXcSG8DM3c6J6ciuojF6WN0of8K
368
+ n/5+pDGVgGTB1VJtuvnO3M1kNLa/ChxiyTpR4w45EhaL9MLQf+Z5EUSC8MuE
369
+ qEIF6JarvMA7+zQ3M0hkjHmeOcxZ8KjfG9hxTL+hKDYxvoYwRxPZuwzlFNmV
370
+ wIrhCyySEAe6d/Tob/mD/WLDvvz4BKprnb5rmSVYQvNG17alyy3YTuhLIdhS
371
+ 0SZYuhb5+4uJ3tcJ+QK19kmVM+ovkGymUS2LV3Flddu9mhsYKdp302Jv6zmo
372
+ ZT233Tt7rOvyYH+dxaOtQqb1sD9R3ELAIaBl93C+qcVj1bq5DZ9Ck8cNaliN
373
+ E5pQHBICpnarfGO4VrLPvcsav0JVdxvjV/3sdyiTOYQQ/cvrBmRPIbB3Poww
374
+ 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
697
+ Nr9oCFGf375EK7O2TqBTGgk8S1P4RfVsQqeiL4y6sOopRsSok2VPp6pGPbFS
698
+ IQet9Zqw8GvCYo+r4NKDKibkCEsfHlx4SIiwGIJeS0JIWP0KQmT546H2yQX6
699
+ B8QZqTrzlNl15QPAU+we1pPnpvWEoaHK6oKueLIb+wOy5yiXSyx+IIdV2MO9
700
+ d6+o1BCYw60aoEmIOvHKFrqKnO0lWEhmGIhqaIWlMnCHRNbABsQ6dnDm8BXK
701
+ YeAJfFhfePeU/Mj5LWpLmEbLAOsljAv4DEX4JPcDYRsleDEFVjRJjfwRlk4Y
702
+ fMim9FrhWMpstbQI3c9af+miZnLu0ddgyfHrIydNZjBb4teZb+NX3wy1XyW2
703
+ kbBF3Qi0ezTRgaBYlC1rZKSqFr2fMjm5aSG53cPFEi/ABLSNSUDG8VbFtK65
704
+ hQ1spGNyHRWkQwn21UviV028KhNsioWJd0P2yshKHAgK+y9NAiht5G86Srmb
705
+ gCHYk6BrsBy0R8ELCQIy8zV8EG7W6UPimg7o82AwgTqAzhl6W6cl/Dc07Jxq
706
+ RvszVMTDlFAwlXDkZsxQlGdP1J5zRi2D/UyVhsnSEtlMPQqqRkt7jmTSjcNK
707
+ EdT21RGr1w2QyKkus7p/YOqAJY2V6iVw0H4ZUCx6I8c+Z3LZJu85HBbaUSZP
708
+ ArUc2CyIHwfeW2/pBwW9Wn1ZqVdeii26mIGnQzrZViNd1yuH1GizyUMMBd9B
709
+ gtg8Axm9Xq0/GxmjXn1V2YGMyhnPPJg03GtpuRyxA72INh4maCroI2snN8ui
710
+ +PoDCH34unb47LHVqlVj19i+h9C1qiEo/Rxk6tXK4b+H0ELMKtY3bb/pODb6
711
+ k3DHyKXJ3B80e6iDd5oXp2Bxw+czY3vN6h5N1l7zVCZOWjJx2lSJS5l4904l
712
+ 3qvElUy8P5OJ7luVUK26/5CJ875MXKg6F/8rE5eq6PJaJVTRlUr0FT591Xv/
713
+ QiV+kYnBzyqh6gwUhteq+TX09WtSYey//zQctJvnMVHUYJrnKqGQOO2ohMpp
714
+ dRUJ2ioR5Si0LhU2PUWUvhrntaLOBzWY8+sN/C4v2sOPl71uK0LwMMJLDap5
715
+ ohKf1DxG06d66Kg679Rcv1OYvosmS7XqKrqdq5xzBecXRZ6e4of+S5n4R3cD
716
+ dzwaPmKff4Wsh2MmL5FKTlZ8izpjT9zeajxqglhL/0jtHC9fVeXGYeiv6g+P
717
+ esvopwtku9qhbKYbRv0hYyeRH+kCTlfY3vLkkvwaSQM1qCl36SVOheQmHX2i
718
+ 3Qp320Jy692s/hCpkhv7IWiu2l9FQzyfL809n+O75jUwdF+HnofRn4Wv8hrr
719
+ XrVWWaxAn8CD5WYIitVoibJqT8XJYlFIx/+QKaAOMfJqGMHakwZoLrdcoCEg
720
+ Pf8Fow4UPawXlVMUEmjW47euCQelJJ0aNCgwISBLwy3sp/UvGJXljZforFQG
721
+ O57vYUNp/wrhx/Gs2p4wNR90oakjLuql5yZiqAzQWa0k/YE1cmkSA2HxRlrK
722
+ 5Eeg+A62/c/4F7CwHQu065LD3Wk4Yz8xfG39KZJVY6AUorf5jovnXwvazAxO
723
+ Rcixhp6WfeUKEf2ScfMB1PToHU1go4ifQeChOkfPIQ3+kkB05HjjW+moKUkP
724
+ kfDzQHN8lXlBE4VAh6W2L9wWT20ftywIryTYvqcUx1hCKpbIu4c0PfFWPCjs
725
+ pWDa7mIZfqb4BqL7yFv9WmQwTr6am8CRKxl+nVlxb1+dwOUS4TWbn+2SqE1s
726
+ kiUrPfUlBN/4iOCMXaU4RYrz0EncdugK4sm6A/bmJBjO6HgXV+ZQ/djL3n6G
727
+ bzT1eTbAEl0Yezs4xzOzPddjLig5o/VeppJPn2znxwMbU3BXwZ66Hvqu2Ndv
728
+ +1Hws2m9RdJ1GfArb4E/xyNelDYQAifhH8wJHk2Y5AJKikTqyqdcz+iyL2ha
729
+ wvZiGO+EOhpddxiDCRaflBRV/EvSFZeVMsMQhEDiIBUdPIX9pHUeGV2wToW1
730
+ 9UGeQRWUjz/ZS1QdRIU8LrB8bT97Xhaycn85mtthQd9wEmYvC3Fscu5Z9mQt
731
+ Y1sEjex/ARHm87Jllddr7WlONPxoldhV/rxWkSf6cZwfc7TG1XevEBRoFI12
732
+ 4iw5e2/aGJB246qbLRid0LjRhsPRLWXcRBdcKvLWSyV1yaVC8V43yUD3O8+2
733
+ CpX9G+3NjzcqCJ9BDzLYKwruSjaCyjcu+QBg0YqAr8KNiNe5Kd/QqePo1g9X
734
+ 6DW4KX8Jbsqj2wNUEexxCZ60YspTj6AYG90O8ZdR8FV+4QqgybgnrHwjue0G
735
+ F0F2bdqKRF3+SLUWOffQ3STqDoCo5+aa6TVWqRzR/6zdGjCc2m+CWfr81A7X
736
+ AlL/5AIb7Kofuf9E7Q89WTuqb3nv+gNzWgBtUK8oOOSehbm4UVF4kEZmaLtW
737
+ iiFgRzMXC47WWkHDc0QttY6zeIqCSSUXiSjIm+TtCXl5QjCRuMkkX6cG6RsV
738
+ YHmj4esbMLz82ndSHAQp7OF5iD19C0txXsx4C3vFnRJswrPQnArmo98MQR78
739
+ aR4ObauhV6q1Wv5Ob4gArjtDRhfcVRv5QG88dk8mHxiNHXFy+aDaSPzyXOeC
740
+ XffzwWFDhpJ8aLPOIB/UGshXlZpeywd1mTYq+eBlo+Na+Mt0RfmyVdIog3zw
741
+ qlGkIJR88JpizAK9goFku2TqH0Mqez5VtNLrlVfVPDyYFpGuYhiH+OgGDfQK
742
+ 5sfBEChJXqTa4WGlQhkGZRy+qkPG0zGV6l/JDq4c03blOa0Un+/6lxfZigS0
743
+ ML+Yq0KmBF36GCyBEa3zez6Cb881MKo1U9KjSoleXWghY1Uzq5nB2h1LN+Z2
744
+ +cPWeLcts+0JCYTUBCvK+8J9V8yGlLRlg3/5+ey+2r//8vF2/GE2gxLa+YZi
745
+ BoGx70RoaEN/dHGhV3+orhUMzYVdSJ1tFll1YweOR5QL8Dzz6sT0Cxo5jRLm
746
+ EMVcENp4qmI2vmrqMOPo81fNUoJS6W/akfANa4kTkSG9ffkojrsaULlqKUvT
747
+ P+xYhAW2ASXuAZdIUcPoDrDjhiSqIJenoFoiEggX4QFFHw3UBnBQOYS/qcoY
748
+ qOphmE7nQnsoZg9LdJoxrB2IbwxvY/BZwxKEyx5WXD+J6yMDNiqbA374tagl
749
+ z8Ifq1vUEOx6iK9D0Y70ZxJW6RSIvQvP4iRnjGRYBhZmYCyGL5414cCQwTvx
750
+ zUHjdR0KpBJfoBjBh1wcrh5dK8BdB78xeFyE8v8fXsjAbAPuAgA=
751
+ http_version:
752
+ recorded_at: Tue, 10 Apr 2012 10:43:48 GMT
753
+ recorded_with: VCR 2.0.1
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+ Bundler.require 'test'
3
+ require 'webmock/rspec'
4
+ require 'vcr'
5
+ require File.expand_path("../../lib/kayakfares.rb", __FILE__)
6
+
7
+ VCR.configure do |c|
8
+ c.cassette_library_dir = File.expand_path('../responses', __FILE__)
9
+ c.hook_into :webmock
10
+ c.default_cassette_options = {:record => :once}
11
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kayakfares
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jonathan Hoyt
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-04-10 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mechanize
16
+ requirement: &70325396605920 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.3.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70325396605920
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
27
+ requirement: &70325396604620 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70325396604620
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &70325396603940 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70325396603940
47
+ - !ruby/object:Gem::Dependency
48
+ name: webmock
49
+ requirement: &70325396603220 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70325396603220
58
+ - !ruby/object:Gem::Dependency
59
+ name: vcr
60
+ requirement: &70325396602320 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70325396602320
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: &70325396601340 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70325396601340
80
+ - !ruby/object:Gem::Dependency
81
+ name: pry
82
+ requirement: &70325396600740 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70325396600740
91
+ description: Library to return fares from the Kayak Search Gateway using Mechanize.
92
+ email:
93
+ - jonmagic@gmail.com
94
+ executables: []
95
+ extensions: []
96
+ extra_rdoc_files: []
97
+ files:
98
+ - .gitignore
99
+ - .travis.yml
100
+ - Gemfile
101
+ - Gemfile.lock
102
+ - Guardfile
103
+ - LICENSE
104
+ - README.md
105
+ - kayakfares.gemspec
106
+ - lib/kayakfares.rb
107
+ - lib/kayakfares/version.rb
108
+ - rakefile.rb
109
+ - spec/lib/kayakfares_spec.rb
110
+ - spec/responses/search.yml
111
+ - spec/spec_helper.rb
112
+ homepage: ''
113
+ licenses: []
114
+ post_install_message:
115
+ rdoc_options: []
116
+ require_paths:
117
+ - lib
118
+ required_ruby_version: !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ! '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ segments:
125
+ - 0
126
+ hash: 3797847697959957114
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ! '>='
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ segments:
134
+ - 0
135
+ hash: 3797847697959957114
136
+ requirements: []
137
+ rubyforge_project: kayakfares
138
+ rubygems_version: 1.8.15
139
+ signing_key:
140
+ specification_version: 3
141
+ summary: Library to return fares from the Kayak Search Gateway using Mechanize.
142
+ test_files:
143
+ - spec/lib/kayakfares_spec.rb
144
+ - spec/responses/search.yml
145
+ - spec/spec_helper.rb