hotel_beds 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55dc805389b4efeb9ef72bd55a2399ec361b8092
4
- data.tar.gz: 8d2a36c3f58e9b573dfe41d30d81436157c71c4e
3
+ metadata.gz: 10469eb089bdf74c2f5bfb79c02780e3247f38fe
4
+ data.tar.gz: 7f40bd15278d41318d7d394ce027a93941ddaf1a
5
5
  SHA512:
6
- metadata.gz: c1c5da4a532371c2b08dda8ef38d6393b1954c8d81672e355ae8b9082e4a347d8ab4f43a2af05446295dbd16de7560f15df43c2f0751602b8ea82a85a8cac53a
7
- data.tar.gz: bfc1dc68a2794149cb659e82211ca595f564f2bdeccc5bb49a729dea40e79fda2cc0c06bcfc32dac977c9133ca96b29c7af7d840917c2232675a2ec65967ffee
6
+ metadata.gz: fb9730199eaf2632e091b10296a9ac19a00aa11be15a24cab56cb448f41b9fd2683ac0790e7dafd375060498dc70f9e63c0e6612e0eac3f4e86357e4a05948ea
7
+ data.tar.gz: 6e18d34e27e47ec58c4fc61a8cef9fec1700bfacb7d36b37ecbeca68aac4a9854abd11ca4b8635bc996e285c1ceaa21a258219e8da8d2fa3fb358bf221fd91a6
@@ -37,23 +37,22 @@ module HotelBeds
37
37
  def hotels
38
38
  body.css("ServiceHotel").lazy.map do |hotel|
39
39
  HotelBeds::Model::Hotel.new({
40
- id: hotel.css("HotelInfo Code").first.content,
41
- name: hotel.css("HotelInfo Name").first.content,
40
+ id: hotel.at_css("HotelInfo Code").content,
41
+ name: hotel.at_css("HotelInfo Name").content,
42
42
  images: hotel.css("HotelInfo ImageList Image Url").map(&:content),
43
- latitude: hotel.css("HotelInfo Position").first.attr("latitude"),
44
- longitude: hotel.css("HotelInfo Position").first.attr("longitude"),
43
+ latitude: hotel.at_css("HotelInfo Position").attr("latitude"),
44
+ longitude: hotel.at_css("HotelInfo Position").attr("longitude"),
45
45
  results: parse_available_rooms(hotel.css("AvailableRoom"))
46
46
  })
47
47
  end
48
48
  end
49
49
 
50
50
  private
51
-
52
51
  def parse_available_rooms(rooms)
53
52
  Array(rooms).map do |room|
54
53
  {
55
- adult_count: room.css("HotelOccupancy AdultCount").first.content,
56
- child_count: room.css("HotelOccupancy ChildCount").first.content,
54
+ adult_count: room.at_css("HotelOccupancy AdultCount").content,
55
+ child_count: room.at_css("HotelOccupancy ChildCount").content,
57
56
  rooms: parse_hotel_rooms(room.css("HotelRoom"))
58
57
  }
59
58
  end
@@ -64,21 +63,21 @@ module HotelBeds
64
63
  {
65
64
  number_available: room.attr("availCount"),
66
65
  id: room.attr("SHRUI"),
67
- description: room.css("RoomType").first.content,
68
- board: room.css("Board").first.content,
69
- price: room.css("Price Amount").first.content,
70
- currency: body.css("Currency").first.attribute("code").value,
71
- rates: parse_price_list(room.css("PriceList Price"))
66
+ description: room.at_css("RoomType").content,
67
+ board: room.at_css("Board").content,
68
+ price: ((room > "Price") > "Amount").first.content,
69
+ currency: body.at_css("Currency").attr("code"),
70
+ rates: parse_price_list(room.css("Price PriceList Price"))
72
71
  }
73
72
  end
74
73
  end
75
74
 
76
75
  def parse_price_list(prices)
77
76
  Array(prices).inject({}) do |result, price|
78
- from = Date.parse(price.css("DateTimeFrom").first.attr("date"))
79
- to = Date.parse(price.css("DateTimeTo").first.attr("date"))
77
+ from = Date.parse(price.at_css("DateTimeFrom").attr("date"))
78
+ to = Date.parse(price.at_css("DateTimeTo").attr("date"))
80
79
  dates = (from..to).to_a
81
- amount = BigDecimal.new(price.css("Amount").first.content) / dates.size
80
+ amount = BigDecimal.new(price.at_css("Amount").content, 3)
82
81
  dates.each do |date|
83
82
  result.merge!(date => amount)
84
83
  end
@@ -1,3 +1,3 @@
1
1
  module HotelBeds
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -10,7 +10,7 @@ RSpec.describe "performing a hotel search" do
10
10
  proxy: ENV.fetch("HOTEL_BEDS_PROXY", nil)
11
11
  })
12
12
  @check_in_date = Date.today + 28 + rand(10)
13
- @check_out_date = @check_in_date + rand(3) + 1
13
+ @check_out_date = @check_in_date + rand(3) + rand(2) + 1
14
14
  @response = @client.perform_hotel_search({
15
15
  check_in_date: @check_in_date,
16
16
  check_out_date: @check_out_date,
@@ -44,7 +44,7 @@ RSpec.describe "performing a hotel search" do
44
44
  expect(room.price).to eq(room.rates.values.inject(:+))
45
45
  end
46
46
 
47
- it "should have the same number of rates as nights reuqested" do
47
+ it "should have the same number of rates as nights requested" do
48
48
  room = subject.first.results.first.rooms.first
49
49
  expect(room.rates.size).to eq(check_out_date - check_in_date)
50
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotel_beds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Townsend