suitcase 1.2.9 → 1.2.10

Sign up to get free protection for your applications and to get access to all the features.
@@ -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