Class: QuickTravel::Accommodation

Inherits:
Adapter
  • Object
show all
Defined in:
lib/quick_travel/accommodation.rb

Constant Summary collapse

MAX_DAYS =
8

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Adapter

all, belongs_to, create, find, has_many, #to_s, update

Methods included from InitFromHash

#define_readers, #initialize, #to_hash

Instance Attribute Details

#bed_configurationsObject

Returns the value of attribute bed_configurations.



8
9
10
# File 'lib/quick_travel/accommodation.rb', line 8

def bed_configurations
  @bed_configurations
end

#errorObject (readonly)

Returns the value of attribute error.



7
8
9
# File 'lib/quick_travel/accommodation.rb', line 7

def error
  @error
end

#minimum_nightly_priceObject

The minimum price may be in ‘nightly’ or ‘whole-duration-totalled’ form, depending on options given to API

I use these accessors to set it up as is more sane for users of the class.



23
24
25
# File 'lib/quick_travel/accommodation.rb', line 23

def minimum_nightly_price
  @minimum_nightly_price
end

#minimum_price_for_durationObject

The minimum price may be in ‘nightly’ or ‘whole-duration-totalled’ form, depending on options given to API

I use these accessors to set it up as is more sane for users of the class.



23
24
25
# File 'lib/quick_travel/accommodation.rb', line 23

def minimum_price_for_duration
  @minimum_price_for_duration
end

#room_facilitiesObject

Returns the value of attribute room_facilities.



8
9
10
# File 'lib/quick_travel/accommodation.rb', line 8

def room_facilities
  @room_facilities
end

Instance Method Details

#available_on?(date) ⇒ Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/quick_travel/accommodation.rb', line 40

def available_on?(date)
  availability[date.to_s]
end

#available_over_dates?(dates) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
# File 'lib/quick_travel/accommodation.rb', line 35

def available_over_dates?(dates)
  return false if dates.empty?
  dates.all? { |date| available_on?(date.to_s) }
end

#full_informationObject

Returns resource – use for full information



45
46
47
48
# File 'lib/quick_travel/accommodation.rb', line 45

def full_information
  return @full_resource if @full_resource.present?
  @full_resource = Resource.first(@id) unless @id.blank?
end

#graphicsObject



54
55
56
# File 'lib/quick_travel/accommodation.rb', line 54

def graphics
  @graphics ||= @graphic_attributes.map { |g| QuickTravel::Graphic.new(g) }
end

#graphics=(graphics) ⇒ Object



50
51
52
# File 'lib/quick_travel/accommodation.rb', line 50

def graphics=(graphics)
  @graphic_attributes = graphics
end

#minimum_price_on(date) ⇒ Object



25
26
27
28
# File 'lib/quick_travel/accommodation.rb', line 25

def minimum_price_on(date)
  return nil if minimum_price.blank? || minimum_price[date.to_s].blank?
  Money.new(minimum_price[date.to_s])
end

#nightly_price_on(date) ⇒ Object



30
31
32
33
# File 'lib/quick_travel/accommodation.rb', line 30

def nightly_price_on(date)
  return nil if nightly_price.blank? || nightly_price[date.to_s].blank?
  Money.new(nightly_price[date.to_s])
end