ntq_excelsior 1.1.0 → 1.2.0

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
2
  SHA256:
3
- metadata.gz: cb00b94aaef4ffb70a15389a97c245b70b990bc13b98bbdeff8d776ffe38ed18
4
- data.tar.gz: c458cdc7bb84106d2a2d4c64ca93bb66cfce7e7592487fdcfedc04933c5cfe9a
3
+ metadata.gz: bf457474e835aa5716abbdf7004f795ca97d1796cf49c9528ca59b3a7b233d10
4
+ data.tar.gz: 71af4c5b26604522ee93d68013f238095d3f086091ae34c6e97e32749bec42d8
5
5
  SHA512:
6
- metadata.gz: 3b441b018a18cc207f5afac705fd7eb3ee2a1cf42c1dd7066be4f8b59d374c66e477da93cd9e5efa5d67b32d11cae29e33d229260551eedbf8e573502f875c5a
7
- data.tar.gz: ce1a262a95ebe529b5c65fd5cb4680699cd3f602cfffbf970cb785d8a9f673869440b71a2819e30aedb096dea32920435fc5d80bf6a9bc17a42f2607b00e819a
6
+ metadata.gz: e07c0aba24f0369cfdfe20635b78a61f9a2a9eded12bf116e698cda59b69345d1ef5cbf94149f4e1810ab2cbd88174beba3f43f2eff34525d8674c9899eb8239
7
+ data.tar.gz: f08ef0e18a77235445888759cb0d57c86d8885b215920960b75299978c1be91acf4602135eaa5d11e95a0cee5a72975658be1457a3b6916694154ea8c4412163
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ntq_excelsior (1.1.0)
4
+ ntq_excelsior (1.2.0)
5
5
  caxlsx (< 4)
6
6
  roo (< 3)
7
7
 
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # NtqExcelsior
2
2
 
3
+ [![Maintainability](https://api.codeclimate.com/v1/badges/8bc43b15a0a8bfc5d660/maintainability)](https://codeclimate.com/github/9troisquarts/ntq-excelsior/maintainability)
4
+
3
5
  Ntq excelsior simplifie l'import et l'export de vos données.
4
6
 
5
7
  ## Installation
@@ -79,15 +81,34 @@ exporter.context = { current_user: current_user }
79
81
  stream = exporter.export.to_stream.read
80
82
 
81
83
  # In ruby file
82
- File.open("export.xlsx", "w") do |tpm|
83
- tpm.binmode
84
- tpm.write(stream)
84
+ File.open("export.xlsx", "w") do |tmp|
85
+ tmp.binmode
86
+ tmp.write(stream)
85
87
  end
86
88
 
87
89
  # In Controller action
88
90
  send_data stream, type: 'application/xlsx', filename: "filename.xlsx"
89
91
  ```
90
92
 
93
+ ### Multiple workbooks export
94
+
95
+ ```ruby
96
+ user_exporter = UserExporter.new(@user_data)
97
+ product_exporter = ProductExporter.new(@product_data)
98
+
99
+ exporter = NtqExcelsior::MultiWorkbookExporter.new([user_exporter, product_exporter])
100
+ stream = exporter.export.to_stream.read
101
+
102
+ # In ruby file
103
+ File.open("export.xlsx", "w") do |tmp|
104
+ tmp.binmode
105
+ tmp.write(stream)
106
+ end
107
+
108
+ # In Controller action
109
+ send_data stream, type: 'application/xlsx', filename: "filename.xlsx"
110
+ ```
111
+
91
112
  ### Import
92
113
 
93
114
  ```ruby
@@ -132,6 +132,8 @@ module NtqExcelsior
132
132
  v = value
133
133
  return v unless accessors && accessors.length > 0
134
134
 
135
+ return v.dig(*accessors) if v.is_a?(Hash)
136
+
135
137
  v = v.send(accessors[0])
136
138
  return v if accessors.length == 1
137
139
  return dig_value(v, accessors.slice(1..-1))
@@ -0,0 +1,28 @@
1
+ require 'caxlsx'
2
+
3
+ module NtqExcelsior
4
+ class MultiWorkbookExporter
5
+
6
+ attr_accessor :exporters
7
+
8
+ def initialize(exporters = [])
9
+ @exporters = exporters
10
+ end
11
+
12
+ def export
13
+ exports = exporters
14
+ exports = [exporters] if exporters && !exporters.is_a?(Array)
15
+
16
+ package = Axlsx::Package.new
17
+ wb = package.workbook
18
+ wb_styles = wb.styles
19
+
20
+ exports.each do |exporter|
21
+ exporter.generate_workbook(wb, wb_styles)
22
+ end
23
+
24
+ package
25
+ end
26
+
27
+ end
28
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NtqExcelsior
4
- VERSION = "1.1.0"
4
+ VERSION = "1.2.0"
5
5
  end
data/lib/ntq_excelsior.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative "ntq_excelsior/version"
4
4
  require 'ntq_excelsior/exporter'
5
+ require 'ntq_excelsior/multi_workbook_exporter'
5
6
  require 'ntq_excelsior/importer'
6
7
  module NtqExcelsior
7
8
  class Error < StandardError; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ntq_excelsior
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-21 00:00:00.000000000 Z
11
+ date: 2023-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: caxlsx
@@ -58,6 +58,7 @@ files:
58
58
  - lib/ntq_excelsior.rb
59
59
  - lib/ntq_excelsior/exporter.rb
60
60
  - lib/ntq_excelsior/importer.rb
61
+ - lib/ntq_excelsior/multi_workbook_exporter.rb
61
62
  - lib/ntq_excelsior/version.rb
62
63
  - sig/ntq_excelsior.rbs
63
64
  homepage: https://github.com/9troisquarts/ntq-excelsior