class BestSeats::Matrix
Constants
- INITIAL_COLUMN_INDEX
- INITIAL_ROW
- INITIAL_ROW_INDEX
Attributes
columns[R]
rows[R]
seats[R]
Public Class Methods
new(rows, columns, seats)
click to toggle source
# File lib/best_seats/matrix.rb, line 9 def initialize(rows, columns, seats) @rows = rows @columns = columns @seats = seats end
Public Instance Methods
all()
click to toggle source
# File lib/best_seats/matrix.rb, line 23 def all return @_full if defined?(@_full) row_letter = INITIAL_ROW @_full = (INITIAL_ROW_INDEX...rows).map.with_index do |row, index| row_letter = index.zero? ? INITIAL_ROW : row_letter.next (INITIAL_COLUMN_INDEX..columns).map do |column| "#{row_letter}#{column}".to_sym end end end
available()
click to toggle source
# File lib/best_seats/matrix.rb, line 15 def available return @_available if defined?(@_available) @_available = all.map do |row| row.select { |column| seats.keys.include?(column) } end.delete_if(&:empty?) end