hotel_beds 0.5.0 → 0.6.0

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: 5048cf0a8d957dca8fe68b51795053d73fb6b710
4
- data.tar.gz: 2179c960f5ac433275cea5f79b948555edbec331
3
+ metadata.gz: cf57f2506ec0688c5053d16cce8650d6482ad457
4
+ data.tar.gz: 2443235be43ea5872b2cc8592298bb7a680328e4
5
5
  SHA512:
6
- metadata.gz: 8ee7a4b8ea7890aaf4bd1c0421c2170828ae72e04babd58f55d4ef7fb43e059c782da9968acba6481070be532368c0b850c28caaaf163923cb8e44a85b76259f
7
- data.tar.gz: fb550b1d74573d78ef0a7a8fcf412deeafa6f58928e7fbb370415e446516df558d8ec88b8d291f408194345a46aff329e8ca98e09483ca04bfd98585526363b1
6
+ metadata.gz: 958490e3fb55593abbee5b656d880fa7b20ae91109922a9bb59c298b0c4951ac4c36cd17d7bd695d15dd125df04974704d54f1a36913fa8c775871812cb6bc2a
7
+ data.tar.gz: 1677a0f5131a6f20bb3c52338a58078dc76271c51e2ffca668a02dc9e3ec8facee3a8ba1f0908c16291e219062b3152854865d2e29cf925b3e55089810521cc8
@@ -1,16 +1,13 @@
1
- require "hotel_beds/model"
1
+ require "hotel_beds/model/hotel"
2
2
  require "hotel_beds/model/contract"
3
3
 
4
4
  module HotelBeds
5
5
  module Model
6
- class Service
7
- include HotelBeds::Model
8
-
6
+ class HotelService < Hotel
9
7
  # attributes
10
8
  attribute :id, String
11
9
  attribute :type, String
12
10
  attribute :status, String
13
- attribute :contract, HotelBeds::Model::Contract
14
11
  attribute :date_from, Date
15
12
  attribute :date_to, Date
16
13
  attribute :currency, String
@@ -1,5 +1,5 @@
1
1
  require "hotel_beds/model"
2
- require "hotel_beds/model/service"
2
+ require "hotel_beds/model/hotel_service"
3
3
  require "hotel_beds/model/customer"
4
4
 
5
5
  module HotelBeds
@@ -14,7 +14,7 @@ module HotelBeds
14
14
  attribute :status, String
15
15
  attribute :currency, String
16
16
  attribute :amount, BigDecimal
17
- attribute :services, Array[HotelBeds::Model::Service]
17
+ attribute :services, Array[HotelBeds::Model::HotelService]
18
18
  attribute :holder, HotelBeds::Model::Customer
19
19
  end
20
20
  end
@@ -21,12 +21,13 @@ module HotelBeds
21
21
  end
22
22
 
23
23
  def retrieve(doc)
24
+ return nil if doc.nil?
24
25
  if custom
25
26
  custom.yield(doc)
26
27
  elsif multiple
27
28
  doc.css(selector).map(&method(:read_element))
28
29
  elsif selector
29
- (element = doc.at_css(selector)) && read_element(element) or nil
30
+ (element = doc.at_css(selector)) && element && read_element(element) or nil
30
31
  else
31
32
  read_element(doc)
32
33
  end
@@ -1,11 +1,9 @@
1
- require "hotel_beds/parser"
1
+ require "hotel_beds/parser/hotel"
2
2
  require "hotel_beds/parser/contract"
3
3
 
4
4
  module HotelBeds
5
5
  module Parser
6
- class Service
7
- include HotelBeds::Parser
8
-
6
+ class HotelService < Hotel
9
7
  # attributes
10
8
  attribute :id, attr: "SPUI"
11
9
  attribute :type, attr: "xsi:type"
@@ -14,8 +12,6 @@ module HotelBeds
14
12
  attribute :date_to, selector: "DateTo", attr: "date"
15
13
  attribute :currency, selector: "Currency", attr: "code"
16
14
  attribute :amount, selector: "TotalAmount"
17
- attribute :contract, selector: "Contract",
18
- parser: HotelBeds::Parser::Contract
19
15
  end
20
16
  end
21
17
  end
@@ -1,5 +1,5 @@
1
1
  require "hotel_beds/parser"
2
- require "hotel_beds/parser/service"
2
+ require "hotel_beds/parser/hotel_service"
3
3
  require "hotel_beds/parser/customer"
4
4
 
5
5
  module HotelBeds
@@ -16,7 +16,7 @@ module HotelBeds
16
16
  attribute :amount, selector: "TotalPrice"
17
17
  attribute :services,
18
18
  selector: "ServiceList > Service", multiple: true,
19
- parser: HotelBeds::Parser::Service
19
+ parser: HotelBeds::Parser::HotelService
20
20
  attribute :holder, selector: "Holder",
21
21
  parser: HotelBeds::Parser::Customer
22
22
  end
@@ -1,3 +1,3 @@
1
1
  module HotelBeds
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -1,10 +1,10 @@
1
1
  require "nokogiri"
2
2
  require "ostruct"
3
- require "hotel_beds/parser/service"
3
+ require "hotel_beds/parser/hotel_service"
4
4
 
5
- RSpec.describe HotelBeds::Parser::Service do
5
+ RSpec.describe HotelBeds::Parser::HotelService do
6
6
  let(:source) do
7
- %Q(<HotelService SPUI="#{attrs[:id]}">
7
+ %Q(<Service xsi:type="#{attrs[:type]}" SPUI="#{attrs[:id]}">
8
8
  <Contract>
9
9
  <Name>#{attrs[:contract_name]}</Name>
10
10
  <IncomingOffice code="#{attrs[:contract_incoming_office_code]}" />
@@ -14,12 +14,13 @@ RSpec.describe HotelBeds::Parser::Service do
14
14
  <DateTo date="#{attrs[:check_out_date]}" />
15
15
  <Currency code="#{attrs[:currency]}">Great British Pounds</Currency>
16
16
  <TotalAmount>#{attrs[:amount]}</TotalAmount>
17
- </HotelService>)
17
+ </Service>)
18
18
  end
19
19
 
20
20
  let(:attrs) do
21
21
  {
22
22
  id: "123",
23
+ type: "ServiceHotel",
23
24
  contract_name: "Test",
24
25
  contract_incoming_office_code: "Big Corp",
25
26
  check_in_date: "20140505",
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.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Townsend
@@ -200,12 +200,12 @@ files:
200
200
  - lib/hotel_beds/model/customer.rb
201
201
  - lib/hotel_beds/model/destination.rb
202
202
  - lib/hotel_beds/model/hotel.rb
203
+ - lib/hotel_beds/model/hotel_service.rb
203
204
  - lib/hotel_beds/model/price.rb
204
205
  - lib/hotel_beds/model/purchase.rb
205
206
  - lib/hotel_beds/model/requested_room.rb
206
207
  - lib/hotel_beds/model/room.rb
207
208
  - lib/hotel_beds/model/search_result.rb
208
- - lib/hotel_beds/model/service.rb
209
209
  - lib/hotel_beds/parser.rb
210
210
  - lib/hotel_beds/parser/available_room.rb
211
211
  - lib/hotel_beds/parser/cancellation_policy.rb
@@ -215,10 +215,10 @@ files:
215
215
  - lib/hotel_beds/parser/destination.rb
216
216
  - lib/hotel_beds/parser/errors.rb
217
217
  - lib/hotel_beds/parser/hotel.rb
218
+ - lib/hotel_beds/parser/hotel_service.rb
218
219
  - lib/hotel_beds/parser/price.rb
219
220
  - lib/hotel_beds/parser/purchase.rb
220
221
  - lib/hotel_beds/parser/room_grouper.rb
221
- - lib/hotel_beds/parser/service.rb
222
222
  - lib/hotel_beds/purchase_confirm/envelope.rb
223
223
  - lib/hotel_beds/purchase_confirm/operation.rb
224
224
  - lib/hotel_beds/purchase_confirm/request.rb
@@ -236,8 +236,8 @@ files:
236
236
  - spec/lib/hotel_beds/connection_spec.rb
237
237
  - spec/lib/hotel_beds/hotel_search/request_spec.rb
238
238
  - spec/lib/hotel_beds/model_spec.rb
239
+ - spec/lib/hotel_beds/parser/hotel_service_spec.rb
239
240
  - spec/lib/hotel_beds/parser/room_grouper_spec.rb
240
- - spec/lib/hotel_beds/parser/service_spec.rb
241
241
  - spec/lib/hotel_beds/version_spec.rb
242
242
  - spec/spec_helper.rb
243
243
  homepage: https://www.hotelsindex.com/open-source
@@ -273,7 +273,7 @@ test_files:
273
273
  - spec/lib/hotel_beds/connection_spec.rb
274
274
  - spec/lib/hotel_beds/hotel_search/request_spec.rb
275
275
  - spec/lib/hotel_beds/model_spec.rb
276
+ - spec/lib/hotel_beds/parser/hotel_service_spec.rb
276
277
  - spec/lib/hotel_beds/parser/room_grouper_spec.rb
277
- - spec/lib/hotel_beds/parser/service_spec.rb
278
278
  - spec/lib/hotel_beds/version_spec.rb
279
279
  - spec/spec_helper.rb