Class: ActiveReport::Record
Instance Method Summary collapse
Methods inherited from Base
#csv_force_encoding?, #csv_options, evaluate, export, import, #import_adapter, #import_options, #initialize
Constructor Details
This class inherits a constructor from ActiveReport::Base
Instance Method Details
#export ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/active_report/record.rb', line 16 def export %i[except only].each { |key| @opts[key] = @opts[key].map(&:to_s) } if active_record_table_class?(@data) @opts[:headers] = (@opts[:headers] || humanize_values(active_record_column_names(@data))) @opts[:stream] ? export_stream : export_csv else @data = if active_relation_object?(@data) JSON.parse(@data.to_json).flatten else merge(@data.attributes) end ActiveReport::Hash.export(@data, @opts) end end |
#import ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/active_report/record.rb', line 33 def import if active_record_table_object?(@opts[:model]) raise ArgumentError, 'Model must be an ActiveRecord::Base object.' end @data = ActiveReport::Hash.import(@data, headers: @opts[:headers], options: @opts[:options]) @data = munge(@data) records = [] @data.each do |data| params = {} data.each do |key, value| key = key.to_s.downcase.gsub(/ |-/, '_').to_sym params[key] = value end filter(params) params.delete(:id) records << params end @opts[:model].import(records, ) end |