suitcase 1.2.6 → 1.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Suitcase
2
2
  ========
3
3
 
4
- Suitcase is a Ruby library that utilizes the EAN (Expedia.com) API for locating available hotels, rental cars, and flights.
4
+ Ruby library that utilizes the EAN (Expedia.com) API for locating available hotels (and maybe rental cars and flights someday, too).
5
5
 
6
6
  Installation
7
7
  ------------
@@ -22,14 +22,14 @@ module Suitcase
22
22
  extend Suitcase::Helpers
23
23
 
24
24
  AMENITIES = { pool: 1,
25
- fitness_center: 2,
26
- restaurant: 3,
27
- children_activities: 4,
28
- breakfast: 5,
29
- meeting_facilities: 6,
30
- pets: 7,
31
- wheelchair_accessible: 8,
32
- kitchen: 9 }
25
+ fitness_center: 2,
26
+ restaurant: 3,
27
+ children_activities: 4,
28
+ breakfast: 5,
29
+ meeting_facilities: 6,
30
+ pets: 7,
31
+ wheelchair_accessible: 8,
32
+ kitchen: 9 }
33
33
 
34
34
  attr_accessor :id, :name, :address, :city, :province, :amenities, :country_code, :high_rate, :low_rate, :longitude, :latitude, :rating, :postal_code, :supplier_type, :images, :nightly_rate_total, :airport_code, :property_category, :confidence_rating, :amenity_mask, :location_description, :short_description, :hotel_in_destination, :proximity_distance, :property_description, :number_of_floors, :number_of_rooms, :deep_link, :tripadvisor_rating
35
35
 
@@ -52,7 +52,7 @@ module Suitcase
52
52
  # an Array of Hotels.
53
53
  def self.find(info)
54
54
  if info[:ids]
55
- info[:ids].map { |id| find_by_id(id, info[:session]) }
55
+ find_by_ids(info[:ids], info[:session])
56
56
  elsif info[:id]
57
57
  find_by_id(info[:id], info[:session])
58
58
  else
@@ -73,6 +73,7 @@ module Suitcase
73
73
  else
74
74
  url = url(:method => "info", :params => params, :session => session)
75
75
  raw = parse_response(url)
76
+ handle_errors(raw)
76
77
  Configuration.cache.save_query(:info, params, raw) if Configuration.cache?
77
78
  end
78
79
  hotel_data = parse_information(raw)
@@ -80,6 +81,24 @@ module Suitcase
80
81
  Hotel.new(hotel_data)
81
82
  end
82
83
 
84
+ def self.find_by_ids(ids, session)
85
+ params = { hotelIdList: ids.join(",") }
86
+ if Configuration.cache? and Configuration.cache.cached?(:list, params)
87
+ raw = Configuration.cache.get_query(:list, params)
88
+ else
89
+ url = url(:method => "list", :params => params, :session => session)
90
+ raw = parse_response(url)
91
+ handle_errors(raw)
92
+ Configuration.cache.save_query(:list, params, raw) if Configuration.cache?
93
+ end
94
+ hotels = []
95
+ split(raw).each do |hotel_data|
96
+ hotels.push Hotel.new(parse_information(hotel_data))
97
+ end
98
+ update_session(raw, session)
99
+ hotels
100
+ end
101
+
83
102
  # Public: Find a hotel by info other than it's id.
84
103
  #
85
104
  # info - a Hash of options described in the Hotel
@@ -92,7 +111,7 @@ module Suitcase
92
111
  params.delete(:results)
93
112
  params["destinationString"] = params[:location]
94
113
  params.delete(:location)
95
- amenities = params[:amenities] ? params[:amenities].map { |amenity| old + AMENITIES[amenity] }.join(",") : nil
114
+ amenities = params[:amenities] ? params[:amenities].map { |amenity| AMENITIES[amenity] }.join(",") : nil
96
115
  params["minRate"] = params[:min_rate] if params[:min_rate]
97
116
  params["maxRate"] = params[:max_rate] if params[:max_rate]
98
117
  params[:amenities] = amenities if amenities
@@ -150,7 +169,7 @@ module Suitcase
150
169
  message = info["HotelInformationResponse"]["EanWsError"]["presentationMessage"]
151
170
  end
152
171
  raise EANException.new(message) if message
153
- end
172
+ end
154
173
 
155
174
  def self.split(parsed)
156
175
  hotels = parsed["HotelListResponse"]["HotelList"]
@@ -1,3 +1,3 @@
1
1
  module Suitcase
2
- VERSION = "1.2.6"
2
+ VERSION = "1.2.7"
3
3
  end
data/suitcase.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |s|
8
8
  s.authors = ["Walter Nelson"]
9
9
  s.email = ["walter.john.nelson@gmail.com"]
10
10
  s.homepage = "http://github.com/thoughtfusion/suitcase"
11
- s.summary = %q{Locates available hotels, rental cars, and flights}
12
- s.description = %q{Suitcase utilizes the EAN (Expedia.com) API for locating info about hotels, rental cars, and flights.}
11
+ s.summary = %q{Locates available hotels with the Expedia API}
12
+ s.description = %q{Ruby library that utilizes the EAN (Expedia.com) API for locating available hotels (and maybe rental cars and flights someday, too).}
13
13
 
14
14
  s.rubyforge_project = "suitcase"
15
15
 
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.6
4
+ version: 1.2.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &22060760 !ruby/object:Gem::Requirement
16
+ requirement: &16751760 !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: *22060760
24
+ version_requirements: *16751760
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &22059980 !ruby/object:Gem::Requirement
27
+ requirement: &16751320 !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: *22059980
35
+ version_requirements: *16751320
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: factory_girl
38
- requirement: &22058860 !ruby/object:Gem::Requirement
38
+ requirement: &16750760 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *22058860
46
+ version_requirements: *16750760
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: json
49
- requirement: &22058320 !ruby/object:Gem::Requirement
49
+ requirement: &16750320 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *22058320
57
+ version_requirements: *16750320
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: patron
60
- requirement: &22057560 !ruby/object:Gem::Requirement
60
+ requirement: &16749760 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,9 +65,9 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *22057560
69
- description: Suitcase utilizes the EAN (Expedia.com) API for locating info about hotels,
70
- rental cars, and flights.
68
+ version_requirements: *16749760
69
+ description: Ruby library that utilizes the EAN (Expedia.com) API for locating available
70
+ hotels (and maybe rental cars and flights someday, too).
71
71
  email:
72
72
  - walter.john.nelson@gmail.com
73
73
  executables: []
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  segments:
122
122
  - 0
123
- hash: -2601824217631768176
123
+ hash: -2177735995865373908
124
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  none: false
126
126
  requirements:
@@ -129,13 +129,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  segments:
131
131
  - 0
132
- hash: -2601824217631768176
132
+ hash: -2177735995865373908
133
133
  requirements: []
134
134
  rubyforge_project: suitcase
135
135
  rubygems_version: 1.8.10
136
136
  signing_key:
137
137
  specification_version: 3
138
- summary: Locates available hotels, rental cars, and flights
138
+ summary: Locates available hotels with the Expedia API
139
139
  test_files:
140
140
  - spec/caching_spec.rb
141
141
  - spec/helpers_spec.rb