class GridStruct::Selector

Attributes

columns[R]
grid[R]
indexes[R]
rows[R]

Public Class Methods

new(grid,*indexes) click to toggle source
# File lib/grid_struct/selector.rb, line 5
def initialize(grid,*indexes)
  @grid = grid
  @indexes = indexes.freeze
end

Public Instance Methods

[](i) click to toggle source
# File lib/grid_struct/selector.rb, line 16
def [](i)
  mapped_index = @indexes[i]
  mapped_index.nil? ? nil : @grid.store[mapped_index]
end
[]=(i,value) click to toggle source
# File lib/grid_struct/selector.rb, line 21
def []=(i,value)
  mapped_index = @indexes[i]
  @grid.store[mapped_index] = value unless mapped_index.nil?
end
dimensions(rows,columns) click to toggle source
# File lib/grid_struct/selector.rb, line 10
def dimensions(rows,columns)
  @rows = rows
  @columns = columns
  return self
end
to_a() click to toggle source
# File lib/grid_struct/selector.rb, line 26
def to_a
  @indexes.size.times.map do |i|
    self[i]
  end
end
to_grid(rows = nil,columns = nil) click to toggle source
# File lib/grid_struct/selector.rb, line 32
def to_grid(rows = nil,columns = nil)
  rows ||= @rows
  columns ||= @columns
  GridStruct.new(rows,columns,to_a)
end