Sha256: e7076c94f3c62bf8ff6610deaaec95e37369d26667bac8409f54caa118fc60c6

Contents?: true

Size: 536 Bytes

Versions: 3

Compression:

Stored size: 536 Bytes

Contents

# frozen string literal: true

module SpyAlleyApplication
  class NewGame
    class AssignSeats
      def call(seat_assignments)
        seat_assignments = seat_assignments.to_a
        seats = [1, 2, 3, 4, 5, 6] - (seat_assignments.map{|s| s[:seat]}.reject(&:nil?))
        seat_assignments.each do |seat|
          if seat[:seat].nil?
            index = rand(seats.size)
            seat[:seat] = seats[index]
            seats = seats - [seats[index]]
          end
        end
        seat_assignments
      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/new_game/assign_seats.rb
spy_alley_application-0.3.1 lib/spy_alley_application/new_game/assign_seats.rb
spy_alley_application-0.3.0 lib/spy_alley_application/new_game/assign_seats.rb