class VacationRentalsIcalAdapters::Adapters::XmlArkianeAdapter
Constants
- ARKIANE_XML_HOST
Public Instance Methods
applicable?(body:, source:)
click to toggle source
# File lib/vacation_rentals_ical_adapters/adapters/xml_arkiane_adapter.rb, line 9 def applicable?(body:, source:) URI(source.to_s).host == ARKIANE_XML_HOST end
to_ical(body)
click to toggle source
# File lib/vacation_rentals_ical_adapters/adapters/xml_arkiane_adapter.rb, line 13 def to_ical(body) events = parse_events(body) VacationRentalsIcalAdapters::IcalConverter.to_ical(events) end
Private Instance Methods
extract_availabilities(body)
click to toggle source
# File lib/vacation_rentals_ical_adapters/adapters/xml_arkiane_adapter.rb, line 29 def extract_availabilities(body) Hash.from_xml(body) .to_a .flatten .last.to_h["LINE"] .to_a.flat_map { |el| el["Planning"] } end
parse_events(body)
click to toggle source
# File lib/vacation_rentals_ical_adapters/adapters/xml_arkiane_adapter.rb, line 20 def parse_events(body) extract_availabilities(body).map do |availability| VacationRentalsIcalAdapters::Event.new( start_date: availability.fetch("o_debut"), end_date: availability.fetch("o_fin") ) end end