class Rrxcell::Book

Attributes

book[R]
path[R]

Public Class Methods

new(path) click to toggle source
Calls superclass method
# File lib/rrxcell/book.rb, line 4
def initialize(path)
  super()
  @path = path
end

Public Instance Methods

[](position_or_sheet_name) click to toggle source
# File lib/rrxcell/book.rb, line 9
def [](position_or_sheet_name)
  case position_or_sheet_name
  when Numeric
    sheet(position_or_sheet_name)
  when String
    sheet(sheet_position_by_name!(position_or_sheet_name))
  else
    raise "invalid sheet position"
  end
end
address(cell_address) click to toggle source
# File lib/rrxcell/book.rb, line 20
def address(cell_address)
  sheet_position, row_position, column_position =
    Rrxcell::Addressing.cell_address_to_sheet_row_column_position(cell_address, self)
  
  sheet(sheet_position).row(row_position).column(column_position)
end
sheet(position) click to toggle source
# File lib/rrxcell/book.rb, line 27
def sheet(position)
  raise ShouldBeImplementedError
end
sheet_names() click to toggle source
# File lib/rrxcell/book.rb, line 35
def sheet_names
  object.sheets
end
sheets() click to toggle source
# File lib/rrxcell/book.rb, line 31
def sheets
  sheet_names.map { |s| sheet(sheet_names.index(s)) }
end

Private Instance Methods

cell_address_to_sheet_row_column_position(cell_address) click to toggle source
# File lib/rrxcell/book.rb, line 45
def cell_address_to_sheet_row_column_position(cell_address)
  validate_cell_address!(cell_address)
end
sheet_position_by_name!(name) click to toggle source
# File lib/rrxcell/book.rb, line 49
def sheet_position_by_name!(name)
  pos = sheet_names.index(name)
  raise if pos.nil?
  pos
end