Sha256: 4c0b201e2e3ee3e75027ab7e6c050b781a899c7060e9eac8399be2025c3a5ac3

Contents?: true

Size: 1.83 KB

Versions: 14

Compression:

Stored size: 1.83 KB

Contents

class Gillbus
  class TripOptions
    extend Fields
    include UpdateAttrs

    # услуги на рейсе (Wi-Fi, розетки и т.п.)
    field :services, [TripService], root: 'TRIP_SERVICES', key: 'TRIP_SERVICE'

    # условия по багажу на рейсе
    field :luggage, [:string], root: 'LUGGAGE', key: 'ITEM'

    # условия рассадки на рейсе
    field :seating, [:string], root: 'SEATING', key: 'ITEM'

    # информация о технических остановках
    field :technical_stops, [:string], root: 'TECHNICAL_STOP', key: 'ITEM'

    # критичная информация о рейсе
    field :critical_info, [:string], root: 'CRITICAL_INFO', key: 'ITEM'

    # опции полученные от внешних ресурсов
    field :resource_options, [:string], root: 'RESOURCE_TRIP_OPTION', key: 'ITEM'

    # информация, отмеченная как "прочее"
    field :other, [:string], root: 'OTHER', key: 'ITEM'

    # признак рекламируемого рейса, передается как <PROMO><ITEM>ADVERTISING</ITEM></PROMO>
    field :advertising, :adertising_bool, root: 'PROMO', key: 'ITEM'

    # признак рекомендованого рейса, передается как <PROMO><ITEM>BUSFOR_RECOMMEND</ITEM></PROMO>
    field :busfor_recommend, :recommend_bool, root: 'PROMO', key: 'ITEM'

    parser do # better not to let flag value out of this gem
      def adertising_bool(vals)
        vals.include?('ADVERTISING')
      end

      def recommend_bool(vals)
        vals.include?('BUSFOR_RECOMMEND')
      end
    end

    def self.build_blank
      options = new
      field_definitions.each do |name:, type:, key:, root:|
        options.send(:"#{name}=", []) if type.is_a?(Array)
      end
      options
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
gillbus-0.18.14 lib/gillbus/structs/trip_options.rb
gillbus-0.18.13 lib/gillbus/structs/trip_options.rb
gillbus-0.18.12 lib/gillbus/structs/trip_options.rb
gillbus-0.18.11 lib/gillbus/structs/trip_options.rb
gillbus-0.18.10 lib/gillbus/structs/trip_options.rb
gillbus-0.18.9 lib/gillbus/structs/trip_options.rb
gillbus-0.18.8 lib/gillbus/structs/trip_options.rb
gillbus-0.18.7 lib/gillbus/structs/trip_options.rb
gillbus-0.18.6 lib/gillbus/structs/trip_options.rb
gillbus-0.18.5 lib/gillbus/structs/trip_options.rb
gillbus-0.18.4 lib/gillbus/structs/trip_options.rb
gillbus-0.18.3 lib/gillbus/structs/trip_options.rb
gillbus-0.18.2 lib/gillbus/structs/trip_options.rb
gillbus-0.18.1 lib/gillbus/structs/trip_options.rb