class ExcelUtils::Sheets::Base
Attributes
name[R]
normalize_column_names[R]
Public Class Methods
new(name:, normalize_column_names: false)
click to toggle source
# 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
Public Instance Methods
column_names()
click to toggle source
# File lib/excel_utils/sheets/base.rb, line 14 def column_names @column_names ||= normalize_column_names ? normalize_columns(first_row) : first_row end
each() { |Hash| ... }
click to toggle source
# 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
Private Instance Methods
empty_row?(row)
click to toggle source
# File lib/excel_utils/sheets/base.rb, line 35 def empty_row?(row) row.all? { |cell| cell.to_s.strip.empty? } end
normalize_columns(names)
click to toggle source
# File lib/excel_utils/sheets/base.rb, line 29 def normalize_columns(names) names.map do |name| Inflecto.underscore(name.strip.gsub(' ', '_')).to_sym end end