Class: ActiveRecordCSVImporter::Header

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord_csv_importer/header.rb

Overview

The CSV Header

Instance Method Summary collapse

Instance Method Details

#column_definition_namesObject

mapped column names



24
25
26
# File 'lib/activerecord_csv_importer/header.rb', line 24

def column_definition_names
  columns.map { |c| c.definition.name if c.definition }.compact
end

#column_name_for_model_attribute(attribute) ⇒ Object



28
29
30
31
32
33
# File 'lib/activerecord_csv_importer/header.rb', line 28

def column_name_for_model_attribute(attribute)
  column = columns.find { |c|
    c.definition.attribute == attribute if c.definition
  }
  column.name if column
end

#columnsObject



9
10
11
12
13
14
15
16
# File 'lib/activerecord_csv_importer/header.rb', line 9

def columns
  column_names.map do |column_name|
    Column.new(
      name: column_name,
      definition: find_column_definition(column_name)
    )
  end
end

#columns_with_definition_namesObject

original csv column names



19
20
21
# File 'lib/activerecord_csv_importer/header.rb', line 19

def columns_with_definition_names
  columns.select(&:definition).map(&:name)
end

#missing_columnsObject

Returns Array



51
52
53
# File 'lib/activerecord_csv_importer/header.rb', line 51

def missing_columns
  (column_definitions - columns.map(&:definition)).map(&:name).map(&:to_s)
end

#missing_required_columnsObject

Returns Array



45
46
47
48
# File 'lib/activerecord_csv_importer/header.rb', line 45

def missing_required_columns
  (column_definitions.select(&:required?) - columns.map(&:definition))
    .map(&:name).map(&:to_s)
end

#required_columnsObject

Returns Array



40
41
42
# File 'lib/activerecord_csv_importer/header.rb', line 40

def required_columns
  column_definitions.select(&:required?).map(&:name)
end

#valid?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/activerecord_csv_importer/header.rb', line 35

def valid?
  missing_required_columns.empty?
end