hotel_beds 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 10469eb089bdf74c2f5bfb79c02780e3247f38fe
4
- data.tar.gz: 7f40bd15278d41318d7d394ce027a93941ddaf1a
3
+ metadata.gz: 4a39b239887e7d4c9222e5f4b3ea03d76f5cfe7f
4
+ data.tar.gz: 235bd05502754386b33736af7be9e961ee628c7a
5
5
  SHA512:
6
- metadata.gz: fb9730199eaf2632e091b10296a9ac19a00aa11be15a24cab56cb448f41b9fd2683ac0790e7dafd375060498dc70f9e63c0e6612e0eac3f4e86357e4a05948ea
7
- data.tar.gz: 6e18d34e27e47ec58c4fc61a8cef9fec1700bfacb7d36b37ecbeca68aac4a9854abd11ca4b8635bc996e285c1ceaa21a258219e8da8d2fa3fb358bf221fd91a6
6
+ metadata.gz: 37cfde29c5c6200bd50fa01450b014a8254c5241994d0dbab0f9f358e282ce590ebcce339727df88edf601cb7fe62712f987b2ea31286705d11bafeb188bdd43
7
+ data.tar.gz: 96427217d94ef59fe2a7217028fe839c841816cd09f1b5f9ec27b5384f2f30ca749e18a2d8fc6a1c5998e5ae24b94f3d30550ba12a648665d92d311b8e826f31
@@ -18,20 +18,35 @@ module HotelBeds
18
18
  elsif !response.success?
19
19
  errors.add(:base, "Request failed")
20
20
  end
21
+
22
+ body.css("ErrorList Error").each do |error|
23
+ errors.add(:base, [
24
+ (m = error.at_css("Message") && m.content),
25
+ (dm = error.at_css("DetailedMessage") && dm.content)
26
+ ].compact.join("\n"))
27
+ end
21
28
  end
22
29
  freeze
23
30
  end
24
31
 
25
32
  def inspect
26
- "<#{self.class.name} headers=#{headers.inspect} body=#{body.to_s}>"
33
+ "<#{self.class.name} errors=#{errors.inspect} headers=#{headers.inspect} body=#{body.to_s}>"
27
34
  end
28
35
 
29
36
  def current_page
30
- Integer(body.css("PaginationData").first.attr("currentPage"))
37
+ if data = pagination_data
38
+ Integer(data.attr("currentPage"))
39
+ else
40
+ 0
41
+ end
31
42
  end
32
43
 
33
44
  def total_pages
34
- Integer(body.css("PaginationData").first.attr("totalPages"))
45
+ if data = pagination_data
46
+ Integer(data.attr("totalPages"))
47
+ else
48
+ 0
49
+ end
35
50
  end
36
51
 
37
52
  def hotels
@@ -48,6 +63,10 @@ module HotelBeds
48
63
  end
49
64
 
50
65
  private
66
+ def pagination_data
67
+ body.at_css("PaginationData")
68
+ end
69
+
51
70
  def parse_available_rooms(rooms)
52
71
  Array(rooms).map do |room|
53
72
  {
@@ -1,3 +1,3 @@
1
1
  module HotelBeds
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -36,6 +36,7 @@ RSpec.describe "performing a hotel search" do
36
36
 
37
37
  it "should return an array of the hotels available" do
38
38
  expect(subject.to_a).to be_kind_of(Array)
39
+ expect(subject.to_a).to_not be_empty
39
40
  expect(subject.first).to be_kind_of(HotelBeds::Model::Hotel)
40
41
  end
41
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotel_beds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Townsend
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-11 00:00:00.000000000 Z
11
+ date: 2014-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon