Sha256: 0c799d227e43a5a9cd1e3f6b008b1e21a04c8e8417cf1da5182b20d824d4df75
Contents?: true
Size: 861 Bytes
Versions: 3
Compression:
Stored size: 861 Bytes
Contents
module ExcelUtils module Sheets class Base include Enumerable attr_reader :name, :normalize_column_names def initialize(name:, normalize_column_names: false) @name = name @normalize_column_names = normalize_column_names end def column_names @column_names ||= normalize_column_names ? normalize_columns(first_row) : first_row end 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 def normalize_columns(names) names.map do |name| Inflecto.underscore(name.strip.gsub(' ', '_')).to_sym end end def empty_row?(row) row.all? { |cell| cell.to_s.strip.empty? } end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
excel_utils-1.3.1 | lib/excel_utils/sheets/base.rb |
excel_utils-1.3.0 | lib/excel_utils/sheets/base.rb |
excel_utils-1.2.0 | lib/excel_utils/sheets/base.rb |