kayakfares 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+ 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
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