suitcase 1.2.9 → 1.2.10
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.
- data/.rbenv-gemsets +2 -0
- data/lib/suitcase.rb +1 -0
- data/lib/suitcase/hotel/location.rb +47 -0
- data/lib/suitcase/version.rb +1 -1
- data/spec/hotel_location_spec.rb +21 -0
- data/spec/spec_helper.rb +1 -0
- data/suitcase.gemspec +1 -0
- metadata +30 -15
data/.rbenv-gemsets
ADDED
data/lib/suitcase.rb
CHANGED
@@ -10,6 +10,7 @@ require 'suitcase/configuration'
|
|
10
10
|
# require 'suitcase/session_cache'
|
11
11
|
require 'suitcase/cache'
|
12
12
|
require 'suitcase/helpers'
|
13
|
+
require 'suitcase/hotel/location'
|
13
14
|
require 'suitcase/hotel/amenity'
|
14
15
|
require 'suitcase/hotel/reservation'
|
15
16
|
require 'suitcase/hotel/nightly_rate'
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Suitcase
|
2
|
+
class Hotel
|
3
|
+
class Location
|
4
|
+
extend Suitcase::Helpers
|
5
|
+
|
6
|
+
attr_accessor :destination_id, :type, :active, :city, :country, :country_code
|
7
|
+
|
8
|
+
def initialize(info)
|
9
|
+
info.each do |k, v|
|
10
|
+
instance_variable_set("@" + k.to_s, v)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
def find(info)
|
16
|
+
params = {}
|
17
|
+
[:city, :address].each do |dup|
|
18
|
+
params[dup] = info[dup] if info[dup]
|
19
|
+
end
|
20
|
+
params[:destinationString] = info[:destination_string]
|
21
|
+
if Configuration.cache? and Configuration.cache.cached?(:geoSearch, params)
|
22
|
+
raw = Configuration.cache.get_query(:geoSearch, params)
|
23
|
+
else
|
24
|
+
url = url(:method => 'geoSearch', :params => params, :session => info[:session])
|
25
|
+
raw = parse_response(url)
|
26
|
+
handle_errors(raw)
|
27
|
+
end
|
28
|
+
parse(raw)
|
29
|
+
end
|
30
|
+
|
31
|
+
def parse(raw)
|
32
|
+
raw["LocationInfoResponse"]["LocationInfos"]["LocationInfo"].map do |raw|
|
33
|
+
Location.new(:destination_id => raw["destinationId"], :type => raw["type"], :city => raw["city"], :active => raw["active"], :code => raw["code"], :country => raw["country"], :country_code => raw["countryCode"])
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def handle_errors(info)
|
38
|
+
key = info.keys.first
|
39
|
+
if info[key] && info[key]["EanWsError"]
|
40
|
+
message = info[key]["EanWsError"]["presentationMessage"]
|
41
|
+
end
|
42
|
+
raise EANException.new(message) if message
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/suitcase/version.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Suitcase::Hotel::Location do
|
4
|
+
describe '.find' do
|
5
|
+
it 'should return an array of Locations' do
|
6
|
+
locations = Suitcase::Hotel::Location.find(:destination_string => "Lond")
|
7
|
+
locations.should be_an(Array)
|
8
|
+
locations.first.should be_a(Suitcase::Hotel::Location)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
before :all do
|
13
|
+
@location = Suitcase::Hotel::Location.new({})
|
14
|
+
end
|
15
|
+
|
16
|
+
subject { @location }
|
17
|
+
|
18
|
+
[:destination_id, :country, :country_code, :city, :type, :active].each do |attribute|
|
19
|
+
it { should respond_to attribute }
|
20
|
+
end
|
21
|
+
end
|
data/spec/spec_helper.rb
CHANGED
data/suitcase.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_development_dependency "rspec"
|
22
22
|
s.add_development_dependency "rake"
|
23
23
|
s.add_development_dependency "factory_girl"
|
24
|
+
s.add_development_dependency "pry"
|
24
25
|
s.add_runtime_dependency "json"
|
25
26
|
s.add_runtime_dependency "patron"
|
26
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: suitcase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &10114660 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *10114660
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &10113720 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *10113720
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: factory_girl
|
38
|
-
requirement: &
|
38
|
+
requirement: &10112620 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,21 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *10112620
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: pry
|
49
|
+
requirement: &10111760 !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: *10111760
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: json
|
49
|
-
requirement: &
|
60
|
+
requirement: &10111120 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ! '>='
|
@@ -54,10 +65,10 @@ dependencies:
|
|
54
65
|
version: '0'
|
55
66
|
type: :runtime
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *10111120
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: patron
|
60
|
-
requirement: &
|
71
|
+
requirement: &10125240 !ruby/object:Gem::Requirement
|
61
72
|
none: false
|
62
73
|
requirements:
|
63
74
|
- - ! '>='
|
@@ -65,7 +76,7 @@ dependencies:
|
|
65
76
|
version: '0'
|
66
77
|
type: :runtime
|
67
78
|
prerelease: false
|
68
|
-
version_requirements: *
|
79
|
+
version_requirements: *10125240
|
69
80
|
description: Ruby library that utilizes the EAN (Expedia.com) API for locating available
|
70
81
|
hotels (and maybe rental cars and flights someday, too).
|
71
82
|
email:
|
@@ -75,6 +86,7 @@ extensions: []
|
|
75
86
|
extra_rdoc_files: []
|
76
87
|
files:
|
77
88
|
- .gitignore
|
89
|
+
- .rbenv-gemsets
|
78
90
|
- .rspec
|
79
91
|
- Gemfile
|
80
92
|
- README.md
|
@@ -90,6 +102,7 @@ files:
|
|
90
102
|
- lib/suitcase/hotel/amenity.rb
|
91
103
|
- lib/suitcase/hotel/hotel.rb
|
92
104
|
- lib/suitcase/hotel/image.rb
|
105
|
+
- lib/suitcase/hotel/location.rb
|
93
106
|
- lib/suitcase/hotel/nightly_rate.rb
|
94
107
|
- lib/suitcase/hotel/payment_option.rb
|
95
108
|
- lib/suitcase/hotel/reservation.rb
|
@@ -98,6 +111,7 @@ files:
|
|
98
111
|
- lib/suitcase/version.rb
|
99
112
|
- spec/caching_spec.rb
|
100
113
|
- spec/helpers_spec.rb
|
114
|
+
- spec/hotel_location_spec.rb
|
101
115
|
- spec/hotels_spec.rb
|
102
116
|
- spec/images_spec.rb
|
103
117
|
- spec/payment_options_spec.rb
|
@@ -120,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
134
|
version: '0'
|
121
135
|
segments:
|
122
136
|
- 0
|
123
|
-
hash:
|
137
|
+
hash: -913685949235307892
|
124
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
139
|
none: false
|
126
140
|
requirements:
|
@@ -129,16 +143,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
143
|
version: '0'
|
130
144
|
segments:
|
131
145
|
- 0
|
132
|
-
hash:
|
146
|
+
hash: -913685949235307892
|
133
147
|
requirements: []
|
134
148
|
rubyforge_project: suitcase
|
135
|
-
rubygems_version: 1.8.
|
149
|
+
rubygems_version: 1.8.11
|
136
150
|
signing_key:
|
137
151
|
specification_version: 3
|
138
152
|
summary: Locates available hotels with the Expedia API
|
139
153
|
test_files:
|
140
154
|
- spec/caching_spec.rb
|
141
155
|
- spec/helpers_spec.rb
|
156
|
+
- spec/hotel_location_spec.rb
|
142
157
|
- spec/hotels_spec.rb
|
143
158
|
- spec/images_spec.rb
|
144
159
|
- spec/payment_options_spec.rb
|