Class: CSVModel::HeaderRow
- Inherits:
-
Object
- Object
- CSVModel::HeaderRow
- Includes:
- Utilities::Options
- Defined in:
- lib/csv_model/header_row.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
Attributes included from Utilities::Options
Instance Method Summary collapse
- #column_count ⇒ Object
- #column_index(key) ⇒ Object
- #columns ⇒ Object
- #errors ⇒ Object
- #has_column?(key) ⇒ Boolean
-
#initialize(data, options = {}) ⇒ HeaderRow
constructor
A new instance of HeaderRow.
- #primary_key_columns ⇒ Object
- #valid? ⇒ Boolean
Methods included from Utilities::Options
Constructor Details
#initialize(data, options = {}) ⇒ HeaderRow
Returns a new instance of HeaderRow.
9 10 11 12 13 |
# File 'lib/csv_model/header_row.rb', line 9 def initialize(data, = {}) @data = data @options = end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
7 8 9 |
# File 'lib/csv_model/header_row.rb', line 7 def data @data end |
Instance Method Details
#column_count ⇒ Object
19 20 21 |
# File 'lib/csv_model/header_row.rb', line 19 def column_count columns.count end |
#column_index(key) ⇒ Object
23 24 25 |
# File 'lib/csv_model/header_row.rb', line 23 def column_index(key) column_keys.index(key.to_column_key) end |
#columns ⇒ Object
15 16 17 |
# File 'lib/csv_model/header_row.rb', line 15 def columns @columns ||= data.collect { |x| Column.new(x) } end |
#errors ⇒ Object
27 28 29 |
# File 'lib/csv_model/header_row.rb', line 27 def errors (duplicate_column_errors + illegal_column_errors + missing_column_errors + missing_key_column_errors).uniq end |
#has_column?(key) ⇒ Boolean
31 32 33 |
# File 'lib/csv_model/header_row.rb', line 31 def has_column?(key) !column_index(key).nil? end |
#primary_key_columns ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/csv_model/header_row.rb', line 35 def primary_key_columns @primary_key_columns ||= begin if has_primary_key? && has_primary_key_columns? primary_primary_key_columns elsif has_alternate_primary_key? && has_alternate_primary_key_columns? alternate_primary_key_columns else [] end end end |
#valid? ⇒ Boolean
47 48 49 |
# File 'lib/csv_model/header_row.rb', line 47 def valid? has_required_columns? && has_required_key_columns? && !has_duplicate_columns? && !has_illegal_columns? end |