Sha256: 1e2ba48438716ec38459cf8f63bd6c7a499e009f526e7061aba9091b91a000b6

Contents?: true

Size: 528 Bytes

Versions: 2

Compression:

Stored size: 528 Bytes

Contents

module SeatSelector
  class Venue
    attr_reader :total_rows, :total_columns, :available_seats
    
    def initialize(all_seats, total_rows, total_columns)
      @total_rows = total_rows
      @total_columns = total_columns
      @available_seats = build_available_seats(all_seats)
    end

    private

    def build_available_seats(all_seats)
      all_seats.each_with_object({}) do |s, seats|
        if s.available?
          seats[s.row] ||= {}
          seats[s.row][s.column] = s
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
seat_selector-0.1.2 lib/seat_selector/venue.rb
seat_selector-0.1.1 lib/seat_selector/venue.rb