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