activeadmin-rb 1.5.2 → 1.6.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 +4 -4
- data/.github/workflows/ci.yaml +1 -1
- data/CHANGELOG.md +13 -0
- data/Gemfile +1 -1
- data/Rakefile +1 -1
- data/features/index/format_as_csv.feature +14 -0
- data/features/step_definitions/batch_action_steps.rb +0 -3
- data/features/step_definitions/format_steps.rb +2 -0
- data/features/support/env.rb +7 -7
- data/gemfiles/rails_60.gemfile +1 -1
- data/gemfiles/rails_61.gemfile +2 -2
- data/gemfiles/rails_70.gemfile +17 -0
- data/lib/active_admin/base_controller/authorization.rb +1 -1
- data/lib/active_admin/engine.rb +2 -1
- data/lib/active_admin/resource.rb +2 -2
- data/lib/active_admin/resource_controller/streaming.rb +2 -2
- data/lib/active_admin/version.rb +1 -1
- data/spec/bug_report_templates_spec.rb +1 -1
- data/spec/support/rails_template.rb +1 -1
- data/spec/unit/filters/active_filter_spec.rb +2 -2
- data/spec/unit/resource_spec.rb +3 -3
- data/spec/unit/view_helpers/form_helper_spec.rb +2 -2
- data/tasks/local.rake +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6f9390b0a2c779b367ff02ed61abf9ac18ba6d381c910528ace2face7aeb9b0e
|
|
4
|
+
data.tar.gz: 71eb79f51168913a392fa61864a1decc6afdda47e731a5e0bf9b3e449706e120
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e6c6fc6b71b50a8f9199431030c432c12e5730a6f65a8c7f11b937771e3db87293cfac2fa6cc12113ab00fe79804f91ec6318a28ccdafa80199bfeb211fc8ab1
|
|
7
|
+
data.tar.gz: 24dd5fb4179da63737456f605ad77fffc1001955a892f1dcad90111da5d47e482ddc5764f5c77270003fdd059790a8507f5423ef5efa30c1150a2fd0a1d75f5c
|
data/.github/workflows/ci.yaml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.6.0 [☰](https://github.com/varyonic/activeadmin-rb/compare/v1.5.2...v1.6.0)
|
|
4
|
+
|
|
5
|
+
### Enhancements
|
|
6
|
+
|
|
7
|
+
* Add Rails 7 Support. [#7235] by [@tagliala]
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Fix frozen string error when downloading CSV and streaming disabled. [#7332] by [@deivid-rodriguez]
|
|
12
|
+
|
|
3
13
|
## 1.5.2 [☰](https://github.com/varyonic/activeadmin-rb/compare/v1.5.1...v1.5.2)
|
|
4
14
|
|
|
5
15
|
* Fix Ruby 2.7 warnings about keyword args. [#6000], [#6237] by [@vcsjones] and [@deivid-rodriguez]
|
|
@@ -354,6 +364,8 @@ Please check [0-6-stable] for previous changes.
|
|
|
354
364
|
[#5800]: https://github.com/activeadmin/activeadmin/pull/5800
|
|
355
365
|
[#6000]: https://github.com/activeadmin/activeadmin/pull/6000
|
|
356
366
|
[#6237]: https://github.com/activeadmin/activeadmin/pull/6237
|
|
367
|
+
[#7235]: https://github.com/activeadmin/activeadmin/pull/7235
|
|
368
|
+
[#7332]: https://github.com/activeadmin/activeadmin/pull/7332
|
|
357
369
|
|
|
358
370
|
[@5t111111]: https://github.com/5t111111
|
|
359
371
|
[@aarek]: https://github.com/aarek
|
|
@@ -405,6 +417,7 @@ Please check [0-6-stable] for previous changes.
|
|
|
405
417
|
[@shekibobo]: https://github.com/shekibobo
|
|
406
418
|
[@shouya]: https://github.com/shouya
|
|
407
419
|
[@stefsava]: https://github.com/stefsava
|
|
420
|
+
[@tagliala]: https://github.com/tagliala
|
|
408
421
|
[@stereoscott]: https://github.com/stereoscott
|
|
409
422
|
[@tiagotex]: https://github.com/tiagotex
|
|
410
423
|
[@timoschilling]: https://github.com/timoschilling
|
data/Gemfile
CHANGED
|
@@ -35,6 +35,7 @@ group :development, :test do
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
group :test do
|
|
38
|
+
gem 'cuprite'
|
|
38
39
|
gem 'capybara'
|
|
39
40
|
gem 'simplecov', require: false # Test coverage generator. Go to /coverage/ after running tests
|
|
40
41
|
gem 'codecov', require: false # Test coverage website. Go to https://codecov.io
|
|
@@ -45,5 +46,4 @@ group :test do
|
|
|
45
46
|
gem 'launchy'
|
|
46
47
|
gem 'rspec-rails'
|
|
47
48
|
gem 'i18n-spec'
|
|
48
|
-
gem 'poltergeist'
|
|
49
49
|
end
|
data/Rakefile
CHANGED
|
@@ -25,7 +25,7 @@ task :setup, [:parallel, :dir, :template] do |_t, opts|
|
|
|
25
25
|
env = { 'BUNDLE_GEMFILE' => ENV['BUNDLE_GEMFILE'] }
|
|
26
26
|
env['INSTALL_PARALLEL'] = 'yes' if opts[:parallel]
|
|
27
27
|
|
|
28
|
-
Bundler.
|
|
28
|
+
Bundler.with_unbundled_env { Kernel.exec(env, command) }
|
|
29
29
|
|
|
30
30
|
Rake::Task['parallel:after_setup_hook'].invoke if opts[:parallel]
|
|
31
31
|
end
|
|
@@ -27,6 +27,20 @@ Feature: Format as CSV
|
|
|
27
27
|
Then I should download a CSV file for "my-articles" containing:
|
|
28
28
|
| Id | Title | Body | Published date | Position | Starred | Foo | Created at | Updated at |
|
|
29
29
|
|
|
30
|
+
Scenario: Default with streaming disabled
|
|
31
|
+
Given a configuration of:
|
|
32
|
+
"""
|
|
33
|
+
ActiveAdmin.application.disable_streaming_in = ["test"]
|
|
34
|
+
|
|
35
|
+
ActiveAdmin.register Post
|
|
36
|
+
"""
|
|
37
|
+
And a post with the title "Hello World" exists
|
|
38
|
+
When I am on the index page for posts
|
|
39
|
+
And I follow "CSV"
|
|
40
|
+
Then I should download a CSV file for "posts" containing:
|
|
41
|
+
| Id | Title | Body | Published date | Position | Starred | Foo |Created at | Updated at |
|
|
42
|
+
| \d+ | Hello World | | | | | |(.*) | (.*) |
|
|
43
|
+
|
|
30
44
|
Scenario: With CSV format customization
|
|
31
45
|
Given a configuration of:
|
|
32
46
|
"""
|
|
@@ -58,9 +58,6 @@ Given /^I submit the batch action form with "([^"]*)"$/ do |action|
|
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
When /^I click "(.*?)" and accept confirmation$/ do |link|
|
|
61
|
-
# Use this implementation instead if poltergeist ever implements it
|
|
62
|
-
# page.driver.accept_modal(:confirm) { click_link(link) }
|
|
63
|
-
|
|
64
61
|
click_link(link)
|
|
65
62
|
expect(page).to have_content("Are you sure you want to delete these posts?")
|
|
66
63
|
click_button("OK")
|
|
@@ -2,10 +2,12 @@ require 'csv'
|
|
|
2
2
|
|
|
3
3
|
Around '@csv' do |scenario, block|
|
|
4
4
|
default_csv_options = ActiveAdmin.application.csv_options
|
|
5
|
+
default_disable_streaming_in = ActiveAdmin.application.disable_streaming_in
|
|
5
6
|
|
|
6
7
|
begin
|
|
7
8
|
block.call
|
|
8
9
|
ensure
|
|
10
|
+
ActiveAdmin.application.disable_streaming_in = default_disable_streaming_in
|
|
9
11
|
ActiveAdmin.application.csv_options = default_csv_options
|
|
10
12
|
end
|
|
11
13
|
end
|
data/features/support/env.rb
CHANGED
|
@@ -47,13 +47,13 @@ After do
|
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
require
|
|
51
|
-
require 'capybara/cucumber'
|
|
52
|
-
require 'capybara/session'
|
|
53
|
-
require 'capybara/poltergeist'
|
|
54
|
-
require 'phantomjs/poltergeist'
|
|
50
|
+
require "capybara/cuprite"
|
|
55
51
|
|
|
56
|
-
Capybara.
|
|
52
|
+
Capybara.register_driver(:cuprite) do |app|
|
|
53
|
+
Capybara::Cuprite::Driver.new(app, process_timeout: 30, timeout: 30)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
Capybara.javascript_driver = :cuprite
|
|
57
57
|
|
|
58
58
|
Capybara.server = :webrick
|
|
59
59
|
|
|
@@ -95,7 +95,7 @@ end
|
|
|
95
95
|
Before do
|
|
96
96
|
# We are caching classes, but need to manually clear references to
|
|
97
97
|
# the controllers. If they aren't clear, the router stores references
|
|
98
|
-
ActiveSupport::Dependencies.clear
|
|
98
|
+
ActiveSupport::Dependencies.clear if Rails::VERSION::MAJOR < 7
|
|
99
99
|
|
|
100
100
|
# Reload Active Admin
|
|
101
101
|
ActiveAdmin.unload!
|
data/gemfiles/rails_60.gemfile
CHANGED
data/gemfiles/rails_61.gemfile
CHANGED
|
@@ -2,8 +2,8 @@ source "https://rubygems.org"
|
|
|
2
2
|
|
|
3
3
|
eval_gemfile(File.expand_path(File.join("..", "Gemfile"), __dir__))
|
|
4
4
|
|
|
5
|
-
gem "rails", "
|
|
6
|
-
gem "rails-i18n", "
|
|
5
|
+
gem "rails", "~> 6.1.0"
|
|
6
|
+
gem "rails-i18n", "~> 6.0.x"
|
|
7
7
|
gem "sass-rails", ">= 6.0.x"
|
|
8
8
|
gem "sprockets", ">= 4.0.x"
|
|
9
9
|
gem "bootsnap"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
source "https://rubygems.org"
|
|
2
|
+
|
|
3
|
+
eval_gemfile(File.expand_path(File.join("..", "Gemfile"), __dir__))
|
|
4
|
+
|
|
5
|
+
gem "rails", ">= 7.0.0.rc"
|
|
6
|
+
gem "rails-i18n", ">= 6.0.x"
|
|
7
|
+
gem "sass-rails", ">= 6.0.x"
|
|
8
|
+
gem "sprockets", ">= 4.0.x"
|
|
9
|
+
gem "bootsnap"
|
|
10
|
+
gem "devise", "~> 4.4"
|
|
11
|
+
gem "draper"
|
|
12
|
+
gem "inherited_resources", github: "varyonic/inherited_resources", branch: "rails-7"
|
|
13
|
+
gem "ransack", ">= 2.0" # 2.x for Rails 5.2+ only.
|
|
14
|
+
gem 'sqlite3', platforms: :mri
|
|
15
|
+
gem "activerecord-jdbcsqlite3-adapter", ">= 60.0.x", platform: :jruby
|
|
16
|
+
|
|
17
|
+
gemspec path: "../"
|
data/lib/active_admin/engine.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module ActiveAdmin
|
|
2
2
|
class Engine < ::Rails::Engine
|
|
3
|
-
|
|
3
|
+
# Set default values for app_path and load_paths before running initializers
|
|
4
|
+
initializer "active_admin.load_app_path", before: :load_config_initializers do |app|
|
|
4
5
|
ActiveAdmin::Application.setting :app_path, app.root
|
|
5
6
|
ActiveAdmin::Application.setting :load_paths, [File.expand_path('app/admin', app.root)]
|
|
6
7
|
end
|
|
@@ -96,11 +96,11 @@ module ActiveAdmin
|
|
|
96
96
|
# The class this resource wraps. If you register the Post model, Resource#resource_class
|
|
97
97
|
# will point to the Post class
|
|
98
98
|
def resource_class
|
|
99
|
-
|
|
99
|
+
resource_class_name.constantize
|
|
100
100
|
end
|
|
101
101
|
|
|
102
102
|
def decorator_class
|
|
103
|
-
|
|
103
|
+
decorator_class_name&.constantize
|
|
104
104
|
end
|
|
105
105
|
|
|
106
106
|
def resource_table_name
|
|
@@ -22,14 +22,14 @@ module ActiveAdmin
|
|
|
22
22
|
headers['Cache-Control'] = 'no-cache'
|
|
23
23
|
|
|
24
24
|
if ActiveAdmin.application.disable_streaming_in.include? Rails.env
|
|
25
|
-
self.response_body = block[
|
|
25
|
+
self.response_body = block[String.new]
|
|
26
26
|
else
|
|
27
27
|
self.response_body = Enumerator.new &block
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def csv_filename
|
|
32
|
-
"#{resource_collection_name.to_s.gsub('_', '-')}-#{Time.zone.now.to_date.
|
|
32
|
+
"#{resource_collection_name.to_s.gsub('_', '-')}-#{Time.zone.now.to_date.to_formatted_s(:default)}.csv"
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def stream_csv
|
data/lib/active_admin/version.rb
CHANGED
|
@@ -123,7 +123,7 @@ RUBY
|
|
|
123
123
|
|
|
124
124
|
# TODO: remove this line after the STI pre-loading is fixed
|
|
125
125
|
# The test commenting.feature/Commenting on a STI subclass fails with zeitwerk autoloader
|
|
126
|
-
inject_into_file 'config/environments/test.rb', "\n config.autoloader = :classic\n", after: 'Rails.application.configure do' if Rails::VERSION::MAJOR
|
|
126
|
+
inject_into_file 'config/environments/test.rb', "\n config.autoloader = :classic\n", after: 'Rails.application.configure do' if Rails::VERSION::MAJOR == 6
|
|
127
127
|
|
|
128
128
|
# Add our local Active Admin to the application
|
|
129
129
|
gem 'activeadmin-rb', path: '../..'
|
|
@@ -178,7 +178,7 @@ RSpec.describe ActiveAdmin::Filters::ActiveFilter do
|
|
|
178
178
|
end
|
|
179
179
|
|
|
180
180
|
it "should use the association's primary key to find the associated record" do
|
|
181
|
-
|
|
181
|
+
stub_const("::SuperPost", resource_klass)
|
|
182
182
|
|
|
183
183
|
resource.add_filter(:kategory)
|
|
184
184
|
|
|
@@ -210,7 +210,7 @@ RSpec.describe ActiveAdmin::Filters::ActiveFilter do
|
|
|
210
210
|
end
|
|
211
211
|
|
|
212
212
|
it "should use the association's primary key to find the associated record" do
|
|
213
|
-
|
|
213
|
+
stub_const("::#{resource_klass.name}", resource_klass)
|
|
214
214
|
|
|
215
215
|
expect(subject.values.first).to eq user
|
|
216
216
|
end
|
data/spec/unit/resource_spec.rb
CHANGED
|
@@ -241,8 +241,8 @@ module ActiveAdmin
|
|
|
241
241
|
let(:resource) { namespace.register(Post) }
|
|
242
242
|
let(:post) { double }
|
|
243
243
|
before do
|
|
244
|
-
allow(Post).to receive(:find_by).with("id" => "12345") { post }
|
|
245
|
-
allow(Post).to receive(:find_by).with("id" => "54321") { nil }
|
|
244
|
+
allow(Post).to receive(:find_by).with({"id" => "12345"}) { post }
|
|
245
|
+
allow(Post).to receive(:find_by).with({"id" => "54321"}) { nil }
|
|
246
246
|
end
|
|
247
247
|
|
|
248
248
|
it 'can find the resource' do
|
|
@@ -265,7 +265,7 @@ module ActiveAdmin
|
|
|
265
265
|
before do
|
|
266
266
|
allow(Post).to receive(:primary_key).and_return 'something_else'
|
|
267
267
|
allow(Post).to receive(:find_by).
|
|
268
|
-
with("something_else" => "55555") { different_post }
|
|
268
|
+
with({"something_else" => "55555"}) { different_post }
|
|
269
269
|
end
|
|
270
270
|
|
|
271
271
|
it 'can find the post by the custom primary key' do
|
|
@@ -8,7 +8,7 @@ RSpec.describe ActiveAdmin::ViewHelpers::FormHelper do
|
|
|
8
8
|
let(:default_options) { { builder: ActiveAdmin::FormBuilder } }
|
|
9
9
|
|
|
10
10
|
it 'calls semantic_form_for with the ActiveAdmin form builder' do
|
|
11
|
-
expect(view).to receive(:semantic_form_for).with(resource, builder: ActiveAdmin::FormBuilder)
|
|
11
|
+
expect(view).to receive(:semantic_form_for).with(resource, { builder: ActiveAdmin::FormBuilder })
|
|
12
12
|
view.active_admin_form_for(resource)
|
|
13
13
|
end
|
|
14
14
|
|
|
@@ -16,7 +16,7 @@ RSpec.describe ActiveAdmin::ViewHelpers::FormHelper do
|
|
|
16
16
|
# We can't use a stub here because options gets marshalled, and a new
|
|
17
17
|
# instance built. Any constant will work.
|
|
18
18
|
custom_builder = Object
|
|
19
|
-
expect(view).to receive(:semantic_form_for).with(resource, builder: custom_builder)
|
|
19
|
+
expect(view).to receive(:semantic_form_for).with(resource, { builder: custom_builder })
|
|
20
20
|
view.active_admin_form_for(resource, builder: custom_builder)
|
|
21
21
|
end
|
|
22
22
|
end
|
data/tasks/local.rake
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: activeadmin-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Greg Bell
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-03-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: arbre
|
|
@@ -462,6 +462,7 @@ files:
|
|
|
462
462
|
- gemfiles/rails_52.gemfile
|
|
463
463
|
- gemfiles/rails_60.gemfile
|
|
464
464
|
- gemfiles/rails_61.gemfile
|
|
465
|
+
- gemfiles/rails_70.gemfile
|
|
465
466
|
- lib/active_admin.rb
|
|
466
467
|
- lib/active_admin/abstract_view_factory.rb
|
|
467
468
|
- lib/active_admin/application.rb
|
|
@@ -790,7 +791,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
790
791
|
- !ruby/object:Gem::Version
|
|
791
792
|
version: '0'
|
|
792
793
|
requirements: []
|
|
793
|
-
rubygems_version: 3.2.
|
|
794
|
+
rubygems_version: 3.2.15
|
|
794
795
|
signing_key:
|
|
795
796
|
specification_version: 4
|
|
796
797
|
summary: The administration framework for Ruby on Rails.
|