Class: ActiveRecordCSVImporter::Header
- Inherits:
-
Object
- Object
- ActiveRecordCSVImporter::Header
- Defined in:
- lib/activerecord_csv_importer/header.rb
Overview
The CSV Header
Instance Method Summary collapse
-
#column_definition_names ⇒ Object
mapped column names.
- #column_name_for_model_attribute(attribute) ⇒ Object
- #columns ⇒ Object
-
#columns_with_definition_names ⇒ Object
original csv column names.
-
#missing_columns ⇒ Object
Returns Array.
-
#missing_required_columns ⇒ Object
Returns Array.
-
#required_columns ⇒ Object
Returns Array.
- #valid? ⇒ Boolean
Instance Method Details
#column_definition_names ⇒ Object
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 |
#columns ⇒ Object
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_names ⇒ Object
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_columns ⇒ Object
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_columns ⇒ Object
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_columns ⇒ Object
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
35 36 37 |
# File 'lib/activerecord_csv_importer/header.rb', line 35 def valid? missing_required_columns.empty? end |