class MergeExcel::Settings::DataRow

Constants

DEFAULT_DATA_ROW_CONFIG
FIRST_COLUMN
LAST_COLUMN

Attributes

data_first_column[R]
data_last_column[R]
data_starting_row[R]
header_row[R]

Public Class Methods

new(hash) click to toggle source
# File lib/merge_excel/settings/data_row.rb, line 14
def initialize(hash)
  @header_row        = hash.fetch(:header_row){ 0 }
  @data_starting_row = hash.fetch(:data_starting_row){ 1 }
  @data_first_column = hash.fetch(:data_first_column){ FIRST_COLUMN }
  @data_last_column  = hash.fetch(:data_last_column){ LAST_COLUMN }
  @data_last_column  = LAST_COLUMN if @data_last_column==:last
  validate_rows
  validate_columns
end

Public Instance Methods

import_header?() click to toggle source
# File lib/merge_excel/settings/data_row.rb, line 24
def import_header?
  @header_row!=:missing
end

Private Instance Methods

validate_columns() click to toggle source
# File lib/merge_excel/settings/data_row.rb, line 47
def validate_columns
  raise "Problem with 'data_rows' settings: data_first_column must be >=0" if @data_first_column<0
  raise "Problem with 'data_rows' settings: data_last_column must be >=0" if @data_last_column>=0 && @data_first_column>@data_last_column
end
validate_rows() click to toggle source

def self.with_defaults

new(DEFAULT_HEADER_ROW_CONFIG)

end

# File lib/merge_excel/settings/data_row.rb, line 33
def validate_rows
  # header_row
  if (@header_row.is_a?(Symbol) && @header_row!=:missing) || (@header_row.is_a?(Integer) && @header_row<0)
    raise "Problem with 'data_rows' settings: header_row must be be an integer >=0 or :missing symbol" if @header_row<0
  end
  # data_starting_row
  if @data_starting_row<0
    raise "Problem with 'data_rows' settings: data_starting_row must be be an integer >=0" if @data_starting_row<0
  end
  # header_row vs data_starting_row
  if @header_row!=:missing && (@header_row >= @data_starting_row)
    raise "Problem with 'data_rows' settings: header_row must be < data_starting_row" if @header_row<0
  end
end