Class: CSVImporter::Header
- Inherits:
-
Object
- Object
- CSVImporter::Header
- Defined in:
- lib/csv_importer/header.rb
Overview
The CSV Header
Instance Method Summary collapse
- #column_name_for_model_attribute(attribute) ⇒ Object
- #columns ⇒ Object
-
#extra_columns ⇒ Object
Returns Array.
-
#missing_columns ⇒ Object
Returns Array.
-
#missing_required_columns ⇒ Object
Returns Array.
-
#required_columns ⇒ Object
Returns Array.
- #valid? ⇒ Boolean
Instance Method Details
#column_name_for_model_attribute(attribute) ⇒ Object
19 20 21 22 23 |
# File 'lib/csv_importer/header.rb', line 19 def column_name_for_model_attribute(attribute) if column = columns.find { |column| column.definition.attribute == attribute if column.definition } column.name end end |
#columns ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/csv_importer/header.rb', line 10 def columns column_names.map do |column_name| Column.new( name: column_name, definition: find_column_definition(column_name) ) end end |
#extra_columns ⇒ Object
Returns Array
35 36 37 |
# File 'lib/csv_importer/header.rb', line 35 def extra_columns columns.reject(&:definition).map(&:name).map(&:to_s) end |
#missing_columns ⇒ Object
Returns Array
45 46 47 |
# File 'lib/csv_importer/header.rb', line 45 def missing_columns (column_definitions - columns.map(&:definition)).map(&:name).map(&:to_s) end |
#missing_required_columns ⇒ Object
Returns Array
40 41 42 |
# File 'lib/csv_importer/header.rb', line 40 def missing_required_columns (column_definitions.select(&:required?) - columns.map(&:definition)).map(&:name).map(&:to_s) end |
#required_columns ⇒ Object
Returns Array
30 31 32 |
# File 'lib/csv_importer/header.rb', line 30 def required_columns column_definitions.select(&:required?).map(&:name) end |
#valid? ⇒ Boolean
25 26 27 |
# File 'lib/csv_importer/header.rb', line 25 def valid? missing_required_columns.empty? end |