spreadsheet_exporter 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d2eb209eee9ba1278a80d18bb76de88f1bc8853b
4
- data.tar.gz: d28c4620775a149d83e52d8aaf34c93dd94f51f8
2
+ SHA256:
3
+ metadata.gz: 0f35de8fa1c694230a24e6bcaeaae713e3b162d9c7109f07bef0fb886cb57aac
4
+ data.tar.gz: b926ade21fe17468043676d0795a6fc7eecf5ad3a2d9a507c4d709c0f37b7303
5
5
  SHA512:
6
- metadata.gz: fb4ee13c8e3863d01000b93881710f3937bd91a0fc05886b1bcfe740891ecf11bf4bf334c207e914db9d1d00c38173d0dbfda4917c877535689c9fa1f9d84dbf
7
- data.tar.gz: 77527fc2c06fc51e539ca1238cbed3263acc9c95077de58dd04fd84b4e51dbb9080bc8e6c626fdbc706aee0666fda96ea5b8784f8937eb619b9d0f534f0bf635
6
+ metadata.gz: 1dd829ce6816c2d40b82f3553595e3ee644b5c12eec914c6b4f44ed472dd56c4a7362d1c47e982a229daade09a02654b81abaf9f6b38c98114769435a05e0a3e
7
+ data.tar.gz: fde7aa07e6090e6e0fc2403da828112873a04cdcf87574dadaaf116d6596d0fec32ef6306accdabb90c06e408d3c62bbfbf8d6aefcb4cd244a27d5984152bc17
data/README.md CHANGED
@@ -10,27 +10,21 @@ gem 'spreadsheet_exporter'
10
10
  Objects that are exported must respond to ```as_csv``` or ```as_json``` and return a hash
11
11
  representing column names and values.
12
12
 
13
+ ### CSV or XLSX
14
+ Output can be .csv or .xlsx. Choose by using SpreadsheetExporter::CSV or SpreadsheetExporter::XLSX modules.
15
+ Note that .csv output is actually tab delimited by default so that Excel can
16
+ open files properly without needing to use its import function. If you need to output
17
+ that is actually comma-delimited, pass ```:col_sep => ','``` as an option when exporting
18
+
19
+ ### Array of ActiveRecord Objects
13
20
  ```ruby
14
- SpreadsheetExporter::Spreadsheet.from_objects(array_of_objects) do |row|
15
- # Do some work on the row
16
- end
21
+ SpreadsheetExporter::CSV.from_objects(array_of_objects, options)
17
22
 
18
- # Starting at a custom offset
19
- SpreadsheetImporter::Import.from_spreadsheet(spreadsheet, :start_row => 5) do |row|
23
+ # Humanize header names using klass.human_attribute_name
24
+ SpreadsheetExporter::CSV.from_objects(array_of_objects, :humanize_headers_class => User)
20
25
  ```
21
26
 
22
27
  ### 2D Array
23
28
  ```ruby
24
- SpreadsheetImporter::Import.from_spreadsheet([["Bob", "Hoskins"], ["Roger", "Rabbit"]])
25
- ```
26
-
27
- ### CSV
28
- ```ruby
29
- SpreadsheetImporter::Import.from_csv("users.csv")
30
- ```
31
-
32
- ### .xlsx
33
- ```
34
- SpreadsheetImporter::Import.from_xlsx("users.xlsx")
35
- SpreadsheetImporter::Import.from_xlsx("users.xlsx", :sheet_name => '2015') # Processing a single sheet
29
+ SpreadsheetExporter::CSV.from_spreadsheet([["First Name", "Last Name"], ["Bob", "Hoskins"], ["Roger", "Rabbit"]])
36
30
  ```
@@ -6,12 +6,12 @@ module SpreadsheetExporter
6
6
  BOM = "\377\376".force_encoding("utf-16le") # Byte Order Mark so Excel displays characters correctly
7
7
 
8
8
  def self.from_objects(objects, options = {})
9
- spreadsheet = Spreadsheet.from_objects(objects, options)
9
+ spreadsheet = Spreadsheet.from_objects(objects, options).compact
10
10
  from_spreadsheet(spreadsheet)
11
11
  end
12
12
 
13
- def self.from_spreadsheet(spreadsheet, temp_file_path = 'tmp/items.xlsx')
14
- output = ::CSV.generate(:encoding => 'UTF-8', :col_sep => "\t") do |csv|
13
+ def self.from_spreadsheet(spreadsheet, options = {})
14
+ output = ::CSV.generate(**options.reverse_merge(:encoding => 'UTF-8', :col_sep => "\t")) do |csv|
15
15
  spreadsheet.each do |row|
16
16
  csv << row
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module SpreadsheetExporter
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -4,7 +4,7 @@ require_relative 'spreadsheet'
4
4
  module SpreadsheetExporter
5
5
  module XLSX
6
6
  def self.from_objects(objects, options = {})
7
- spreadsheet = Spreadsheet.from_objects(objects, options)
7
+ spreadsheet = Spreadsheet.from_objects(objects, options).compact
8
8
  from_spreadsheet(spreadsheet)
9
9
  end
10
10
 
@@ -20,12 +20,12 @@ module SpreadsheetExporter
20
20
  headerFormat.set_bold
21
21
 
22
22
  # Write header row
23
- spreadsheet.first.each_with_index do |column_name, col|
23
+ Array(spreadsheet.first).each_with_index do |column_name, col|
24
24
  worksheet.write(0, col, column_name, headerFormat)
25
25
  end
26
26
 
27
- spreadsheet[1..-1].each_with_index do |values, row|
28
- values.each_with_index do |value, col|
27
+ Array(spreadsheet[1..-1]).each_with_index do |values, row|
28
+ Array(values).each_with_index do |value, col|
29
29
  worksheet.write(row + 1, col, value)
30
30
  end
31
31
  end
metadata CHANGED
@@ -1,29 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreadsheet_exporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Jakobsen
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2015-06-26 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: write_xlsx
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - ">="
16
+ - - '='
18
17
  - !ruby/object:Gem::Version
19
- version: '0'
18
+ version: 1.12.1
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - ">="
23
+ - - '='
25
24
  - !ruby/object:Gem::Version
26
- version: '0'
25
+ version: 1.12.1
26
+ - !ruby/object:Gem::Dependency
27
+ name: rubyzip
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - '='
31
+ - !ruby/object:Gem::Version
32
+ version: 2.4.1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - '='
38
+ - !ruby/object:Gem::Version
39
+ version: 2.4.1
27
40
  description: Export your data as various types of spreadsheets. Supports csv and xlsx
28
41
  output.
29
42
  email:
@@ -45,7 +58,6 @@ homepage: https://github.com/culturecode/spreadsheet_exporter
45
58
  licenses:
46
59
  - MIT
47
60
  metadata: {}
48
- post_install_message:
49
61
  rdoc_options: []
50
62
  require_paths:
51
63
  - lib
@@ -60,9 +72,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
72
  - !ruby/object:Gem::Version
61
73
  version: '0'
62
74
  requirements: []
63
- rubyforge_project:
64
- rubygems_version: 2.4.7
65
- signing_key:
75
+ rubygems_version: 3.6.9
66
76
  specification_version: 4
67
77
  summary: Export your data as various types of spreadsheets
68
78
  test_files: []