Module: WorkerTools::CsvOutput
- Defined in:
- lib/worker_tools/csv_output.rb
Instance Method Summary collapse
- #csv_output_add_attachment ⇒ Object
- #csv_output_col_sep ⇒ Object
- #csv_output_column_headers ⇒ Object
- #csv_output_csv_options ⇒ Object
- #csv_output_encoding ⇒ Object
- #csv_output_entries ⇒ Object
- #csv_output_file_name ⇒ Object
- #csv_output_insert_headers(csv) ⇒ Object
- #csv_output_row_values(entry) ⇒ Object
- #csv_output_tmp_file ⇒ Object
- #csv_output_write_file ⇒ Object
- #csv_output_write_mode ⇒ Object
Instance Method Details
#csv_output_add_attachment ⇒ Object
55 56 57 |
# File 'lib/worker_tools/csv_output.rb', line 55 def model.(csv_output_tmp_file, file_name: csv_output_file_name, content_type: 'text/csv') end |
#csv_output_col_sep ⇒ Object
35 36 37 |
# File 'lib/worker_tools/csv_output.rb', line 35 def csv_output_col_sep ';' end |
#csv_output_column_headers ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/worker_tools/csv_output.rb', line 9 def csv_output_column_headers # These columns are used to set the headers, also # to set the row values depending on your implementation. # # To ignore them set it to _false_ # # Ex: # @csv_output_column_headers ||= { # foo: 'Foo Header', # bar: 'Bar Header' # } raise "csv_output_column_headers has to be defined in #{self}" end |
#csv_output_csv_options ⇒ Object
47 48 49 |
# File 'lib/worker_tools/csv_output.rb', line 47 def { col_sep: csv_output_col_sep, encoding: csv_output_encoding } end |
#csv_output_encoding ⇒ Object
39 40 41 |
# File 'lib/worker_tools/csv_output.rb', line 39 def csv_output_encoding Encoding::UTF_8 end |
#csv_output_entries ⇒ Object
5 6 7 |
# File 'lib/worker_tools/csv_output.rb', line 5 def csv_output_entries raise "csv_output_entries has to be defined in #{self}" end |
#csv_output_file_name ⇒ Object
31 32 33 |
# File 'lib/worker_tools/csv_output.rb', line 31 def csv_output_file_name "#{model_kind}.csv" end |
#csv_output_insert_headers(csv) ⇒ Object
51 52 53 |
# File 'lib/worker_tools/csv_output.rb', line 51 def csv_output_insert_headers(csv) csv << csv_output_column_headers.values if csv_output_column_headers end |
#csv_output_row_values(entry) ⇒ Object
23 24 25 |
# File 'lib/worker_tools/csv_output.rb', line 23 def csv_output_row_values(entry) entry.values_at(*csv_output_column_headers.keys) end |
#csv_output_tmp_file ⇒ Object
27 28 29 |
# File 'lib/worker_tools/csv_output.rb', line 27 def csv_output_tmp_file @csv_output_tmp_file ||= Tempfile.new(['output', '.csv']) end |
#csv_output_write_file ⇒ Object
59 60 61 62 63 64 65 66 |
# File 'lib/worker_tools/csv_output.rb', line 59 def csv_output_write_file CSV.open(csv_output_tmp_file, csv_output_write_mode, **) do |csv| csv_output_insert_headers(csv) csv_output_entries.each { |entry| csv << csv_output_row_values(entry) } end end |
#csv_output_write_mode ⇒ Object
43 44 45 |
# File 'lib/worker_tools/csv_output.rb', line 43 def csv_output_write_mode 'wb' end |