caxlsx_rails 0.6.4 → 0.7.1

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: ed6804c086bd3783c84283db93df9a972a5dd22f14393a70eca1b66ad22212f4
4
- data.tar.gz: 3c8b9f058f4df8dc3d79ebce09e64988ba0300e6cb1f1b86197ea6c65345b0fe
3
+ metadata.gz: 22c74d3929476fad668147236c3023cb4f52ef9471e0479a0bdbe7ef89dcb980
4
+ data.tar.gz: 32c5a47c42f98e2b26f20b618eb86ecce0b50b9296eb4d227b7bd414cdd487f7
5
5
  SHA512:
6
- metadata.gz: 329d8ef7d3fe9ef8c3b70ac1a342a9ecce75ea1ca06f803449dff898fc697472e8d6c48455790c029011ac451b0d86b00e88f99b28be242221d2a1bf716acf7c
7
- data.tar.gz: 8ab327efb87a5e095aee190b7d77ae46841874a899d0b6cc9da6d9aa8a870b52123c64fda6cf512f950eb5f4ca36fcf4ccddf9768efc1cda4bb945fcd99efdea
6
+ metadata.gz: 702ccb285b30c7f2498663858e0e1b3d2368156e1f23c836683f39ecf154247db44fb9e975fb5846d81a26da9a7cc2786d0e7842c06a17d67b4c6eddb757298d
7
+ data.tar.gz: 6b37602c7d82d45dc41d3907904078204d6a797948b5a54556f1a7a5f6d899de76b151b1f5509c61ef06f66a6b01fd820c3048a8ffa8a639602bd3d8c61750a3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Change log
2
2
 
3
+ **Unreleased**
4
+
5
+
6
+ **April 1, 2026**: 0.7.1 release
7
+
8
+ Note: v0.7.0 failed on the GitHub CI, skipping that version number.
9
+
10
+ - Drop support for Ruby < 2.6 and Rails < 6.1
11
+ - Require at least caxlsx 4.0
12
+ - Add Rails 8.0 and Ruby 3.4 to the CI matrix
13
+
3
14
  **June 18, 2024**: 0.6.4 release
4
15
 
5
16
  - Convert to Github actions
@@ -104,4 +115,3 @@
104
115
 
105
116
  - Initial posting.
106
117
  - It works, but there are no tests! Bad programmer!
107
-
data/README.md CHANGED
@@ -33,10 +33,9 @@ See [previous installations](#previous-installations) if needed.
33
33
 
34
34
  ## Requirements
35
35
 
36
- * Tested on Rails 4.2, 5.x, 6.x, and 7.x.
37
- * For Rails 3.1 or 3.2 use version 3.0
38
- * **As of 0.5.0 requires Axlsx 2.0.1, but strongly suggests 2.1.0.pre, which requires rubyzip 1.1.0**
39
- * As of Rails 4.1 you must use `render_to_string` to render a mail attachment.
36
+ * Tested on Rails 6.1, and 7.x.
37
+ * Supported Ruby versions: 2.6, 2.7, 3.x
38
+ * Minimum Caxlsx version: 4.0
40
39
 
41
40
  ## FYI
42
41
 
@@ -246,8 +245,8 @@ RSpec.shared_context 'axlsx' do
246
245
  # mimics an ActionView::Template class, presenting a 'source' method
247
246
  # to retrieve the content of the template
248
247
  filename = Rails.root.join(*template_path).to_s
249
- source = Struct.new(:source).new(File.read(filename))
250
- axlsx_binding.eval(ActionView::Template::Handlers::AxlsxBuilder.new.call(source), filename)
248
+ template = Struct.new(:source).new(File.read(filename))
249
+ axlsx_binding.eval(AxlsxRails::TemplateHandler.new.call(template), filename)
251
250
  axlsx_binding.local_variable_get(:wb)
252
251
  end
253
252
  end
@@ -443,32 +442,6 @@ form_with method: :post, url: my_named_route_path(format: :xlsx) do |f|
443
442
 
444
443
  If you are having problems, try to isolate the issue. Use the console or a script to make sure your data is good. Then create the spreadsheet line by line without Axlsx-Rails to see if you are having caxlsx problems. If you can manually create the spreadsheet, create an issue and we will work it out.
445
444
 
446
- ## Previous Installations
447
-
448
- In your Gemfile:
449
-
450
- ```ruby
451
- gem 'rubyzip', '>= 1.2.1'
452
- gem 'axlsx', git: 'https://github.com/randym/axlsx.git', ref: 'c8ac844'
453
- gem 'axlsx_rails'
454
- ```
455
-
456
- If `rubyzip 1.0.0` is needed:
457
-
458
- ```ruby
459
- gem 'rubyzip', '= 1.0.0'
460
- gem 'axlsx', '= 2.0.1'
461
- gem 'axlsx_rails'
462
- ```
463
-
464
- If `rubyzip >= 1.1.0` is needed:
465
-
466
- ```ruby
467
- gem 'rubyzip', '~> 1.1.0'
468
- gem 'axlsx', '2.1.0.pre'
469
- gem 'axlsx_rails'
470
- ```
471
-
472
445
  ## Dependencies
473
446
 
474
447
  - [Rails](https://github.com/rails/rails)
@@ -493,110 +466,3 @@ Many thanks to [contributors](https://github.com/caxlsx/caxlsx_rails/graphs/cont
493
466
  * [kodram](https://github.com/kodram)
494
467
  * [JohnSmall](https://github.com/JohnSmall)
495
468
  * [BenoitHiller](https://github.com/BenoitHiller)
496
-
497
- ## Change log
498
-
499
- **June 18, 2024**: 0.6.4 release
500
-
501
- - Convert to Github actions
502
- - Improve tests
503
- - Fix broken templates with comments as their last line
504
-
505
- **March 8, 2022**: 0.6.3 release
506
-
507
- - Exclude rspec directory (#149)[https://github.com/caxlsx/caxlsx_rails/pull/149]
508
-
509
- **December 18, 2019**: 0.6.2 release
510
-
511
- - Release under caxlsx_rails
512
-
513
- **December 18, 2019**: 0.6.1 release
514
-
515
- - Deprecate axlsx_rails name, release under caxlsx_rails
516
- - Switch to using caxlsx 3.0 gem
517
-
518
- **September 5, 2019**: 0.6.0 release
519
-
520
- - Improved Rails 6.0 compatibility re MIME type
521
-
522
- **May 1st, 2018**: 0.5.2 release
523
-
524
- - Improved Rails 5 compatibility re MIME type
525
-
526
- **March 29th, 2017**: 0.5.1 release
527
-
528
- - Fix stack trace line numbers
529
- - Thanks to [BenoitHiller](https://github.com/BenoitHiller)
530
-
531
- **July 26st, 2016**: 0.5.0 release
532
-
533
- - Support for Rails 5
534
- - **Tested on on Rails 4.0, 4.1, 4.2, and 5.0**
535
- - Bug fixes for unreadable files and UTF-8 errors
536
-
537
- **July 13th, 2015**: 0.4.0 release
538
-
539
- - Support for Rails 4.2
540
- - **Removal of forced default_formats** (url format must match)
541
- - **Tested only on Rails 4.1 and 4.2**
542
- - **For Rails 3.2 or below, use 0.3.0**
543
-
544
- **November 20th, 2014**: 0.3.0 release
545
-
546
- - Support for Rails 4.2.beta4.
547
- - **Removal of shorthand template syntax** (`render xlsx: 'another/directory'`)
548
-
549
- **September 4, 2014**: 0.2.1 release
550
-
551
- - Rails 4.2.beta1 no longer includes responder. This release checks for the existence of responder before configuring a default responder.
552
- - Rails 4.2 testing, though not yet on Travis CI
553
- - Author, created_at, and use_shared_strings parameters for Axlsx::Package.new
554
-
555
- **April 9, 2014**: 0.2.0 release
556
-
557
- - Require Axlsx 2.0.1, which requires rubyzip 1.0.0
558
- - Better render handling and testing, which might break former usage
559
- - Rails 4.1 testing
560
- - Mailer example update (**use render_to_string not render**)
561
-
562
- **October 11, 2013**
563
-
564
- - Handle (and test) respond_to override
565
-
566
- **October 4, 2013**
567
-
568
- - Added coveralls
569
- - Raised testing to axlsx 2.0.1, roo 1.12.2, and rubyzip 1.0.0
570
-
571
- **July 25, 2013**
572
-
573
- - Documentation improved
574
- - Testing for generating partial in mailer
575
-
576
- **January 18, 2013**: 0.1.4 release
577
-
578
- - Now supports Rails 4 (thanks [Envek](https://github.com/Envek))
579
- - If you call render :xlsx on a request without :xlsx format, it should force the :xlsx format. Works on Rails 3.2+.
580
-
581
- **December 6, 2012**: 0.1.3 release
582
-
583
- - Fix for absolute template paths
584
-
585
- **July 25, 2012**: 0.1.2 release
586
-
587
- - Partials tested
588
-
589
- **July 19, 2012**: 0.1.1 release
590
-
591
- - Travis-ci added (thanks [randym](https://github.com/randym))
592
- - render statements and filename tests fixes (thanks [engwan](https://github.com/engwan))
593
-
594
- **July 17, 2012**: 0.1.0 release
595
-
596
- - Tests completed
597
- - Acts_as_xlsx tested, example in docs
598
-
599
- **July 12, 2012**: 0.0.1 release
600
-
601
- - Initial posting.
602
- - It works, but there are no tests! Bad programmer!
data/caxlsx_rails.gemspec CHANGED
@@ -13,21 +13,21 @@ Gem::Specification.new do |s|
13
13
  s.summary = 'A simple rails plugin to provide an xlsx renderer using the caxlsx gem.'
14
14
  s.description = "Caxlsx_Rails provides an Caxlsx renderer so you can move all your spreadsheet code from your controller into view files. Partials are supported so you can organize any code into reusable chunks (e.g. cover sheets, common styling, etc.) You can use it with acts_as_caxlsx, placing the to_xlsx call in a view and adding ':package => xlsx_package' to the parameter list. Now you can keep your controllers thin!"
15
15
 
16
+ s.metadata = {
17
+ "changelog_uri" => "https://github.com/caxlsx/caxlsx_rails/blob/master/CHANGELOG.md"
18
+ }
19
+
16
20
  s.files = Dir['lib/**/*', 'CHANGELOG.md', 'README.md', 'MIT-LICENSE', 'caxlsx_rails.gemspec']
17
21
 
18
- s.add_dependency 'actionpack', '>= 3.1'
19
- s.add_dependency 'caxlsx', '>= 3.0'
22
+ s.add_dependency 'actionpack', '>= 6.1'
23
+ s.add_dependency 'caxlsx', '>= 4.0'
20
24
 
21
25
  s.add_development_dependency 'bundler'
22
26
  s.add_development_dependency 'rake'
23
27
  s.add_development_dependency 'rspec-rails'
24
- s.add_development_dependency 'guard-rspec'
25
28
  s.add_development_dependency 'capybara'
26
29
  s.add_development_dependency 'roo'
27
30
  s.add_development_dependency 'rubyzip'
28
- s.add_development_dependency 'growl'
29
- s.add_development_dependency 'rb-fsevent'
30
- s.add_development_dependency 'coveralls'
31
- s.add_development_dependency 'pry'
32
- s.add_development_dependency 'pry-nav'
31
+
32
+ s.required_ruby_version = '>= 2.6'
33
33
  end
@@ -2,15 +2,7 @@
2
2
 
3
3
  require 'action_controller'
4
4
 
5
- if Rails.version.to_f >= 5
6
- unless Mime[:xlsx]
7
- Mime::Type.register 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', :xlsx
8
- end
9
- else
10
- unless defined? Mime::XLSX
11
- Mime::Type.register 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', :xlsx
12
- end
13
- end
5
+ Mime::Type.register 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', :xlsx unless Mime[:xlsx]
14
6
 
15
7
  ActionController::Renderers.add :xlsx do |filename, options|
16
8
  #
@@ -19,7 +11,7 @@ ActionController::Renderers.add :xlsx do |filename, options|
19
11
  # def called_action
20
12
  # render xlsx: 'filename', template: 'controller/diff_action'
21
13
  # end
22
- #
14
+ #
23
15
  # And the normal use case works:
24
16
  #
25
17
  # def called_action
@@ -28,14 +20,21 @@ ActionController::Renderers.add :xlsx do |filename, options|
28
20
  # render 'controller/diff_action'
29
21
  # end
30
22
  #
31
- options[:template] = filename.gsub(/^.*\//,'') if options[:template] == action_name
23
+ if options[:template].nil?
24
+ options[:template] ||= action_name
25
+ options[:prefixes] ||= self.class.ancestors
26
+ .take_while { |a| a.respond_to?(:controller_path) }
27
+ .map(&:controller_path)
28
+ end
29
+
30
+ options[:template] = filename.gsub(%r{^.*/}, '') if options[:template] == action_name
32
31
 
33
32
  # force layout false
34
33
  options[:layout] = false
35
34
 
36
35
  # disposition / filename
37
36
  disposition = options.delete(:disposition) || 'attachment'
38
- file_name = options.delete(:filename) || "#{filename.gsub(/^.*\//,'')}.xlsx"
37
+ file_name = options.delete(:filename) || "#{filename.gsub(%r{^.*/}, '')}.xlsx"
39
38
  file_name = "#{file_name}.xlsx" unless file_name =~ /\.xlsx$/
40
39
 
41
40
  # alternate settings
@@ -46,22 +45,18 @@ ActionController::Renderers.add :xlsx do |filename, options|
46
45
  options[:locals][:xlsx_use_shared_strings] = options.delete(:xlsx_use_shared_strings)
47
46
  end
48
47
 
49
- mime = Rails.version.to_f >= 5 ? Mime[:xlsx] : Mime::XLSX
50
- send_data render_to_string(options), filename: file_name, type: mime, disposition: disposition
48
+ send_data render_to_string(options), filename: file_name, type: Mime[:xlsx], disposition: disposition
51
49
  end
52
50
 
53
51
  # For respond_to default
54
- begin
55
- ActionController::Responder
56
- rescue
57
- else
52
+ if defined?(ActionController::Responder)
58
53
  class ActionController::Responder
59
54
  def to_xlsx
60
55
  @_action_has_layout = false
61
56
  if @default_response
62
57
  @default_response.call(options)
63
58
  else
64
- controller.render({xlsx: controller.action_name}.merge(options))
59
+ controller.render({ xlsx: controller.action_name }.merge(options))
65
60
  end
66
61
  end
67
62
  end
@@ -5,19 +5,12 @@ require 'stringio'
5
5
  module AxlsxRails
6
6
  class TemplateHandler
7
7
  def default_format
8
- case
9
- when Rails.version.to_f >= 6
10
- Mime[:xlsx].symbol
11
- when Rails.version.to_f >= 5
12
- Mime[:xlsx]
13
- else
14
- Mime::XLSX
15
- end
8
+ Mime[:xlsx].symbol
16
9
  end
17
10
 
18
11
  def call(template, source = nil)
19
12
  builder = StringIO.new
20
- builder << "require 'axlsx';"
13
+ builder << "require 'caxlsx';"
21
14
  builder << "xlsx_author = defined?(xlsx_author).nil? ? nil : xlsx_author;"
22
15
  builder << "xlsx_created_at = defined?(xlsx_created_at).nil? ? nil : xlsx_created_at;"
23
16
  builder << "xlsx_use_shared_strings = defined?(xlsx_use_shared_strings).nil? ? nil : xlsx_use_shared_strings;"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AxlsxRails
4
- VERSION = '0.6.4'
4
+ VERSION = '0.7.1'
5
5
  end
data/lib/axlsx_rails.rb CHANGED
@@ -2,4 +2,4 @@
2
2
 
3
3
  warn "DEPRECATION WARNING: axlsx_rails has been renamed to caxlsx_rails. See http://github.com/caxlsx"
4
4
 
5
- require 'axlsx_rails/railtie' if defined?(Rails)
5
+ require 'caxlsx_rails'
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caxlsx_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noel Peden
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-06-18 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: actionpack
@@ -16,28 +15,28 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '3.1'
18
+ version: '6.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: '3.1'
25
+ version: '6.1'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: caxlsx
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: '3.0'
32
+ version: '4.0'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: '3.0'
39
+ version: '4.0'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: bundler
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -80,20 +79,6 @@ dependencies:
80
79
  - - ">="
81
80
  - !ruby/object:Gem::Version
82
81
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: guard-rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
82
  - !ruby/object:Gem::Dependency
98
83
  name: capybara
99
84
  requirement: !ruby/object:Gem::Requirement
@@ -136,76 +121,6 @@ dependencies:
136
121
  - - ">="
137
122
  - !ruby/object:Gem::Version
138
123
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: growl
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: rb-fsevent
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: '0'
160
- type: :development
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - ">="
165
- - !ruby/object:Gem::Version
166
- version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: coveralls
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - ">="
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- version: '0'
181
- - !ruby/object:Gem::Dependency
182
- name: pry
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - ">="
186
- - !ruby/object:Gem::Version
187
- version: '0'
188
- type: :development
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- version: '0'
195
- - !ruby/object:Gem::Dependency
196
- name: pry-nav
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - ">="
200
- - !ruby/object:Gem::Version
201
- version: '0'
202
- type: :development
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - ">="
207
- - !ruby/object:Gem::Version
208
- version: '0'
209
124
  description: Caxlsx_Rails provides an Caxlsx renderer so you can move all your spreadsheet
210
125
  code from your controller into view files. Partials are supported so you can organize
211
126
  any code into reusable chunks (e.g. cover sheets, common styling, etc.) You can
@@ -227,12 +142,11 @@ files:
227
142
  - lib/axlsx_rails/template_handler.rb
228
143
  - lib/axlsx_rails/version.rb
229
144
  - lib/caxlsx_rails.rb
230
- - lib/tasks/axlsx_rails_tasks.rake
231
145
  homepage: https://github.com/caxlsx/caxlsx_rails
232
146
  licenses:
233
147
  - MIT
234
- metadata: {}
235
- post_install_message:
148
+ metadata:
149
+ changelog_uri: https://github.com/caxlsx/caxlsx_rails/blob/master/CHANGELOG.md
236
150
  rdoc_options: []
237
151
  require_paths:
238
152
  - lib
@@ -240,15 +154,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
154
  requirements:
241
155
  - - ">="
242
156
  - !ruby/object:Gem::Version
243
- version: '0'
157
+ version: '2.6'
244
158
  required_rubygems_version: !ruby/object:Gem::Requirement
245
159
  requirements:
246
160
  - - ">="
247
161
  - !ruby/object:Gem::Version
248
162
  version: '0'
249
163
  requirements: []
250
- rubygems_version: 3.2.3
251
- signing_key:
164
+ rubygems_version: 4.0.6
252
165
  specification_version: 4
253
166
  summary: A simple rails plugin to provide an xlsx renderer using the caxlsx gem.
254
167
  test_files: []
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :axlsx_rails do
3
- # # Task goes here
4
- # end