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