class MergeExcel::Settings::Parser
Attributes
data_rows[R]
extra_columns[R]
selector_pattern[R]
sheets_idxs[R]
Public Class Methods
new(hash)
click to toggle source
# File lib/merge_excel/settings/parser.rb, line 5 def initialize(hash) @selector_pattern = hash.fetch(:selector_pattern){ "*.{xls,xlsx}" } read_sheets_index hash.fetch(:sheets_idxs){ :all } read_data_rows hash.fetch(:data_rows){ {any: DataRow::DEFAULT_DATA_ROW_CONFIG } } if hash.has_key?(:extra_data_rows) # legacy setting read_extra_columns hash.fetch(:extra_data_rows){ {any: ExtraColumn::DEFAULT_EXTRA_COLUMN_CONFIG } } else read_extra_columns hash.fetch(:extra_columns){ {any: ExtraColumn::DEFAULT_EXTRA_COLUMN_CONFIG } } end end
Public Instance Methods
all_sheets?()
click to toggle source
# File lib/merge_excel/settings/parser.rb, line 17 def all_sheets? @sheets_idxs == :all end
read_sheet?(sheet_idx)
click to toggle source
# File lib/merge_excel/settings/parser.rb, line 21 def read_sheet?(sheet_idx) all_sheets? || @sheets_idxs.include?(sheet_idx) end
Private Instance Methods
read_data_rows(h)
click to toggle source
# File lib/merge_excel/settings/parser.rb, line 36 def read_data_rows(h) @data_rows = DataRows.new h.each_pair do |k,v| @data_rows.insert(k, v) end end
read_extra_columns(h)
click to toggle source
# File lib/merge_excel/settings/parser.rb, line 43 def read_extra_columns(h) # {:any=>{:position=>:beginning, :data=>[{:type=>:filename, :heading_text=>"Filename"}}]} @extra_columns = ExtraColumns.new h.each_pair do |k,v| @extra_columns.insert(k, v) end end
read_sheets_index(obj)
click to toggle source
# File lib/merge_excel/settings/parser.rb, line 27 def read_sheets_index(obj) if obj==:all || obj==[:all] @sheets_idxs = :all else obj = [obj] if !(obj.is_a? Array) @sheets_idxs = obj.select{|e| e.is_a? Integer}.sort end end