hotel_beds 0.5.0 → 0.6.0

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: 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