Sha256: 612fc4845b29204b23e388f63250736ebc5e568133dd8025b78a9715eade2e5e
Contents?: true
Size: 748 Bytes
Versions: 3
Compression:
Stored size: 748 Bytes
Contents
# frozen string_literal: true require 'dry-struct' require 'spy_alley_application/types/game_board' module SpyAlleyApplication module Models class GameBoard < Dry::Struct class MoneyGainedOrLost def call(game_board:, money_adjustment:) player = game_board.players.find{|p| p.seat.eql?(game_board.game_state.seat)} unaffected_players = game_board.players.reject{|p| p.equal?(player)} player = player.to_h.tap{|p| p[:money] = p[:money] + money_adjustment} players = unaffected_players.push(player).sort{|p, q| p[:seat] <=> q[:seat]} SpyAlleyApplication::Types::GameBoard.call( game_board.to_h.tap{|g| g[:players] = players}) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems