Sha256: 781abef884291b56ceb8fe6a65a5834791e43186f67449b94bffb18662fcde9e

Contents?: true

Size: 806 Bytes

Versions: 3

Compression:

Stored size: 806 Bytes

Contents

# frozen string literal: true

require 'dry-struct'
require 'spy_alley_application/types/array_of_equipment'
require 'spy_alley_application/types/coercible_integer_one_to_six'

module SpyAlleyApplication
  module Models
    module GameState
      class BuyEquipment < Dry::Struct
        @@can_handle_buy_equipment = ::Types.Interface(:handle_buy_equipment)

        attribute :name, ::Types::Value('buy_equipment')
        attribute :seat, SpyAlleyApplication::Types::CoercibleIntegerOneToSix
        attribute :options, SpyAlleyApplication::Types::ArrayOfEquipment
        attribute :limit, ::Types::CoercibleNonnegativeInteger

        def accept(visitor, **args)
          @@can_handle_buy_equipment.(visitor)
          visitor.handle_buy_equipment(self, args)
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spy_alley_application-0.3.2 lib/spy_alley_application/models/game_state/buy_equipment.rb
spy_alley_application-0.3.1 lib/spy_alley_application/models/game_state/buy_equipment.rb
spy_alley_application-0.3.0 lib/spy_alley_application/models/game_state/buy_equipment.rb