Class: CSV
- Inherits:
-
Object
- Object
- CSV
- Includes:
- DataShift::ColumnPacker
- Defined in:
- lib/datashift/core_ext/csv_ext.rb
Instance Attribute Summary
Attributes included from DataShift::Delimiters
#attribute_list_end, #attribute_list_start, #csv_delimiter, #key_value_sep, #text_delim
Instance Method Summary collapse
- #ar_association_to_csv(record, model_method, _options = {}) ⇒ Object
-
#ar_to_csv(record, remove_list = [], method_list = []) ⇒ Object
Convert an AR instance to a set of CSV columns Additional non instance data can be included by supplying list of methods to call on the record.
- #ar_to_row(record, remove_list = [], method_list = []) ⇒ Object
Methods included from DataShift::ColumnPacker
#escape_for_csv, #escape_text_delim, #record_to_column, #record_to_csv
Methods included from DataShift::Delimiters
#column_delim, #column_delim=, #eol, #multi_assoc_delim, #multi_assoc_delim=, #multi_facet_delim, #multi_value_delim, #multi_value_delim=, #name_value_delim, #name_value_delim=, #setmulti_facet_delim
Instance Method Details
#ar_association_to_csv(record, model_method, _options = {}) ⇒ Object
35 36 37 38 39 40 41 42 43 44 |
# File 'lib/datashift/core_ext/csv_ext.rb', line 35 def ar_association_to_csv(record, model_method, = {}) # pack association instances into single column csv_data = if DataShift::ModelMethod.association_type?(model_method.operator_type) record_to_column( record.send(model_method.operator) ) else escape_for_csv( record.send(model_method.operator) ) end csv_data end |
#ar_to_csv(record, remove_list = [], method_list = []) ⇒ Object
Convert an AR instance to a set of CSV columns Additional non instance data can be included by supplying list of methods to call on the record
Returns the data added
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/datashift/core_ext/csv_ext.rb', line 18 def ar_to_csv(record, remove_list = [], method_list = []) serializable_hash = record.serializable_hash(except: remove_list) csv_data = serializable_hash.values.collect { |c| escape_for_csv(c) } [*method_list].each do |x| csv_data << escape_for_csv(record.send(x)) if record.respond_to?(x) end csv_data end |
#ar_to_row(record, remove_list = [], method_list = []) ⇒ Object
31 32 33 |
# File 'lib/datashift/core_ext/csv_ext.rb', line 31 def ar_to_row(record, remove_list = [], method_list = []) add_row( ar_to_csv(record, remove_list, method_list) ) end |