Sha256: 04093eeea575ee0012c542ee1f0838bd78d0e0f209e8c8eaff2d8301b09a5159
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true module Skyscanner # Route info class Route attr_reader :meta attr_reader :flights def initialize(data) @meta = RouteMeta.new(data[:meta]) @flights = data[:flights] end def self.find(meta) route_info = RouteInfo.find(meta) data = { meta: meta, flights: route_info.parse_flights } new(data) end def to_json { meta: @meta.to_json, flights: @flights.to_json } end end # Flight info class Flight attr_reader :carriers, :min_price, :direct, :date attr_reader :origin, :destination def initialize(data) @min_price = data[:min_price] @direct = data[:direct] @carriers = data[:carriers] @origin = data[:origin] @destination = data[:destination] @date = data[:date] end def to_json { min_price: @min_price, direct: @direct, carriers: @carriers, origin: @origin.to_json, destination: @destination.to_json, date: @date } end end # Place info class Place attr_reader :name, :city_name, :country_name attr_reader :type def initialize(data) @name = data['Name'] @city_name = data['CityName'] @country_name = data['CountryName'] @type = data['Type'] end def self.find(data) new(data) end def to_json { name: @name, city_name: @city_name, country_name: @country_name, type: @type } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
movlog-0.3.9 | lib/movlog/route.rb |