class ExtractTable

Public Class Methods

extract(*args) click to toggle source
# File src/extract/extract_table.rb, line 5
def self.extract(*args)
  self.new.extract(*args)
end

Public Instance Methods

attr(name, value) click to toggle source
# File src/extract/extract_table.rb, line 37
def attr(name, value)
  case @state
  when :not_parsing
    return
  when :parsing_table_column
    case name
    when :name
      @table_columns << value
    end
  when :parsing_table
    case name
    when :displayName
      @table_name = value
    when :ref
      @table_ref = value
    when :totalsRowCount
      @table_total_rows = value
    end
  end
end
end_element(name) click to toggle source
# File src/extract/extract_table.rb, line 58
def end_element(name)
  case name
  when :tableColumn
    @state = :parsing_table
  when :table
    @output[@table_name] = [@sheet_name, @table_ref, @table_total_rows || "0", *@table_columns]
    @state = :not_parsing
  end

end
extract(sheet_name, input_xml) click to toggle source
# File src/extract/extract_table.rb, line 9
def extract(sheet_name, input_xml)
  @sheet_name = sheet_name
  @output = {} 
  @table_name = nil
  @table_ref = nil
  @table_total_rows = nil
  @table_columns = nil

  @state = :not_parsing
  Ox.sax_parse(self, input_xml, :convert_special => true)
  @output
end
start_element(name) click to toggle source
# File src/extract/extract_table.rb, line 22
def start_element(name)
  case name
  when :table
    @table_name = nil
    @table_ref = nil
    @table_total_rows = nil
    @table_columns = []
    @state = :parsing_table
  when :tableColumn
    @state = :parsing_table_column
  else
    @state = :not_parsing
  end
end