class Gust::Spreadsheet::Worksheet

Attributes

header_row_index[R]
headers[R]
object_regions[R]
object_row_index[R]
objects[R]
title_row_index[R]
titles[R]
worksheet[R]

Public Class Methods

new(worksheet) click to toggle source
# File lib/rb-gust/spreadsheet/worksheet.rb, line 8
def initialize worksheet
  @worksheet = worksheet
  @title_row_index = @worksheet.dimensions.first
  @header_row_index = @title_row_index + 1
  @object_row_index = @title_row_index + 2
  @object_regions = Gust::Spreadsheet::Structure.new(header_row).object_regions
  @titles = []
  @headers = []
  define_object_titles(title_row)
  define_headers(header_row)
  define_objects(object_rows)
end

Public Instance Methods

define_headers(header_row) click to toggle source
# File lib/rb-gust/spreadsheet/worksheet.rb, line 43
def define_headers header_row
  object_regions.each do |r|
    object_headers = header_row[r[0]..r[1]]
    @headers << object_headers
  end
end
define_object_titles(title_row) click to toggle source
# File lib/rb-gust/spreadsheet/worksheet.rb, line 37
def define_object_titles title_row
  object_regions.each do |r|
    @titles << title_row[r.first]
  end
end
define_objects(object_rows) click to toggle source
# File lib/rb-gust/spreadsheet/worksheet.rb, line 50
def define_objects object_rows
  @objects = []
  object_rows.each do |object_row|
    object_regions.each_with_index do |r,i|
      @objects << []
      object = object_row[r[0]..r[1]]
      @objects[i] << object
    end
  end
end
header_row() click to toggle source
# File lib/rb-gust/spreadsheet/worksheet.rb, line 25
def header_row
  @worksheet.row(header_row_index)
end
object_rows() click to toggle source
# File lib/rb-gust/spreadsheet/worksheet.rb, line 29
def object_rows
  rows = []
  @worksheet.each(object_row_index) do |row|
    rows << row
  end
  rows
end
title_row() click to toggle source
# File lib/rb-gust/spreadsheet/worksheet.rb, line 21
def title_row
  @worksheet.row(title_row_index)
end