Class: ExcelUtils::Sheets::Base

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/excel_utils/sheets/base.rb

Direct Known Subclasses

CSV, Excel, ExcelStream

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, normalize_column_names: false) ⇒ Base



9
10
11
12
# File 'lib/excel_utils/sheets/base.rb', line 9

def initialize(name:, normalize_column_names: false)
  @name = name
  @normalize_column_names = normalize_column_names
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/excel_utils/sheets/base.rb', line 7

def name
  @name
end

#normalize_column_namesObject (readonly)

Returns the value of attribute normalize_column_names.



7
8
9
# File 'lib/excel_utils/sheets/base.rb', line 7

def normalize_column_names
  @normalize_column_names
end

Instance Method Details

#column_namesObject



14
15
16
# File 'lib/excel_utils/sheets/base.rb', line 14

def column_names
  @column_names ||= normalize_column_names ? normalize_columns(first_row) : first_row
end

#eachObject



18
19
20
21
22
23
24
25
# File 'lib/excel_utils/sheets/base.rb', line 18

def each
  if column_names.any?
    each_row do |row|
      break if empty_row? row
      yield Hash[column_names.zip(row)]
    end
  end
end