class Lite::Report::Record
Public Instance Methods
export()
click to toggle source
# File lib/lite/report/record.rb, line 7 def export assign_headers_to_csv_options! generate_or_stream_export! end
import()
click to toggle source
# File lib/lite/report/record.rb, line 12 def import assert_klass_data_option! assign_import_csv_options! @data = Lite::Report::Hash.import(@data, csv_options: @csv_options, data_options: @data_options) .each do |row| row.delete(:id) || row.delete('id') (row['created_at'] ||= timestamp) if created_at_timestamp? (row['updated_at'] ||= timestamp) if updated_at_timestamp? end klass.insert_all(@data, **@import_options) end
Private Instance Methods
assert_klass_data_option!()
click to toggle source
# File lib/lite/report/record.rb, line 28 def assert_klass_data_option! return if klass raise ArgumentError, '":klass" data_option is required' end
assign_export_data!()
click to toggle source
# File lib/lite/report/record.rb, line 44 def assign_export_data! columns = class_columns(@data) @data = if ransack_class?(@data) @data.result elsif @data.try(:persisted?) Array(@data) else @data end @data = @data.pluck(*columns).map { |values| columns.zip(values).to_h } end
assign_headers_to_csv_options!()
click to toggle source
# File lib/lite/report/record.rb, line 34 def assign_headers_to_csv_options! return unless write_headers? @csv_options[:headers] ||= class_columns(@data) end
assign_import_csv_options!()
click to toggle source
# File lib/lite/report/record.rb, line 40 def assign_import_csv_options! @csv_options[:headers] ||= class_columns(klass) end
created_at_timestamp?()
click to toggle source
# File lib/lite/report/record.rb, line 71 def created_at_timestamp? return @created_at_timestamp if defined?(@created_at_timestamp) @created_at_timestamp = klass.new.respond_to?(:created_at) end
generate_export!()
click to toggle source
Calls superclass method
Lite::Report::Helpers::Transporters#generate_export!
# File lib/lite/report/record.rb, line 57 def generate_export! assign_export_data! super end
stream_export!()
click to toggle source
Calls superclass method
Lite::Report::Helpers::Transporters#stream_export!
# File lib/lite/report/record.rb, line 62 def stream_export! assign_export_data! super end
timestamp()
click to toggle source
# File lib/lite/report/record.rb, line 67 def timestamp @timestamp ||= Time.try(:current) || Time.now end
updated_at_timestamp?()
click to toggle source
# File lib/lite/report/record.rb, line 77 def updated_at_timestamp? return @updated_at_timestamp if defined?(@updated_at_timestamp) @updated_at_timestamp = klass.new.respond_to?(:updated_at) end