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.
@@ -0,0 +1,2 @@
1
+ suitcase
2
+ development
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Suitcase
2
- VERSION = "1.2.9"
2
+ VERSION = "1.2.10"
3
3
  end
@@ -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
@@ -1,2 +1,3 @@
1
1
  require File.dirname(__FILE__) + '/../lib/suitcase'
2
2
  require 'keys'
3
+ require 'pry'
@@ -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.9
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-18 00:00:00.000000000 Z
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: &19026560 !ruby/object:Gem::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: *19026560
24
+ version_requirements: *10114660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &19024380 !ruby/object:Gem::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: *19024380
35
+ version_requirements: *10113720
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: factory_girl
38
- requirement: &19022220 !ruby/object:Gem::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: *19022220
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: &19021020 !ruby/object:Gem::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: *19021020
68
+ version_requirements: *10111120
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: patron
60
- requirement: &19303900 !ruby/object:Gem::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: *19303900
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: 2829843820647714995
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: 2829843820647714995
146
+ hash: -913685949235307892
133
147
  requirements: []
134
148
  rubyforge_project: suitcase
135
- rubygems_version: 1.8.10
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