Skip to content

Commit 2d4b6ae

Browse files
authored
Introduce Turbo Drive (railsadminteam#3461)
* Introduce Turbo Drive * Work around turbo-rails JRuby incompatibility * Mitigate spec instability
1 parent 28fac73 commit 2d4b6ae

File tree

12 files changed

+16
-3
lines changed

12 files changed

+16
-3
lines changed

Diff for: Appraisals

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ appraise 'rails-6.1' do
3535
gem 'rails', '~> 6.1.0'
3636
gem 'sassc-rails', '~> 2.1'
3737
gem 'devise', '~> 4.7'
38+
gem 'turbo-rails', platform: :jruby, github: 'mshibuya/turbo-rails', branch: 'fix/breaking-in-non-zeitwerk-env'
3839

3940
group :test do
4041
gem 'cancancan', '~> 3.2'

Diff for: app/assets/javascripts/rails_admin.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
//= require 'rails-ujs'
2+
//= require 'turbo'
23
//= require 'rails_admin/jquery3'
34
//= require 'jquery_nested_form'
45
//= require 'rails_admin/jquery-ui/effect'

Diff for: gemfiles/rails_6.1.gemfile

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "rails", "~> 6.1.0"
88
gem "webpacker", require: false
99
gem "webrick", "~> 1.7"
1010
gem "sassc-rails", "~> 2.1"
11+
gem "turbo-rails", platform: :jruby, github: "mshibuya/turbo-rails", branch: "fix/breaking-in-non-zeitwerk-env"
1112

1213
group :active_record do
1314
gem "paper_trail", ">= 12.0"

Diff for: lib/rails_admin/config/fields/types/action_text.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ class ActionText < Text
99
RailsAdmin::Config::Fields::Types.register(self)
1010

1111
register_instance_option :version do
12-
'1.1.1'
12+
'1.3.1'
1313
end
1414

1515
register_instance_option :css_location do

Diff for: lib/rails_admin/engine.rb

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
require 'nested_form'
33
require 'rails'
44
require 'rails_admin'
5+
require 'turbo-rails'
56

67
module RailsAdmin
78
class Engine < Rails::Engine

Diff for: lib/rails_admin/support/esmodule_preprocessor.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ def initialize; end
1313
def call(input)
1414
data = input[:data]
1515

16-
# only process files under rails_admin/src
1716
if input[:filename].start_with? RailsAdmin::Engine.root.join('src').to_s
1817
data.gsub!(/^(import .+)$/) { "// #{Regexp.last_match(1)}" }
1918
data.gsub!(/^(export +default +{)$/) do
@@ -24,6 +23,8 @@ def call(input)
2423
raise "Unable to preprocess file: #{input[:filename]}"
2524
end
2625
end
26+
elsif input[:filename] =~ %r{turbo-rails.+/turbo\.js$}
27+
data.gsub!(/^(export .+)$/) { "// #{Regexp.last_match(1)}" }
2728
end
2829

2930
{data: data}

Diff for: package.json

+2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
"format": "prettier -w ."
1515
},
1616
"dependencies": {
17+
"@babel/runtime": "^7.16.7",
1718
"@fortawesome/fontawesome-free": "^5.15.4",
19+
"@hotwired/turbo-rails": "^7.1.0",
1820
"@popperjs/core": "^2.11.0",
1921
"@rails/ujs": "^6.1.4-1",
2022
"bootstrap": "^5.1.3",

Diff for: rails_admin.gemspec

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Gem::Specification.new do |spec|
1010
spec.add_dependency 'kaminari', '>= 0.14', '< 2.0'
1111
spec.add_dependency 'nested_form', '~> 0.3'
1212
spec.add_dependency 'rails', ['>= 6.0', '< 8']
13+
spec.add_dependency 'turbo-rails', '~> 1.0'
1314
spec.add_development_dependency 'bundler', '>= 1.0'
1415
spec.authors = ['Erik Michaels-Ober', 'Bogdan Gaza', 'Petteri Kaapa', 'Benoit Benezech', 'Mitsuhiro Shibuya']
1516
spec.description = 'RailsAdmin is a Rails engine that provides an easy-to-use interface for managing your data.'

Diff for: spec/integration/fields/multiple_carrierwave_spec.rb

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
visit new_path(model_name: 'field_test')
1515
attach_file 'Carrierwave assets', [file_path('test.jpg'), file_path('test.png')]
1616
click_button 'Save'
17+
is_expected.to have_content 'Field test successfully created'
1718
expect(FieldTest.first.carrierwave_assets.map { |image| File.basename(image.url) }).to match_array ['test.jpg', 'test.png']
1819
end
1920

Diff for: spec/integration/fields/polymorphic_assosiation_spec.rb

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
expect(page).to have_selector('ul.ui-autocomplete li.ui-menu-item a')
1414
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Jackie Robinson")).click()}
1515
click_button 'Save'
16+
is_expected.to have_content 'Comment successfully created'
1617
expect(Comment.first.commentable).to eq @players[0]
1718
end
1819

@@ -40,6 +41,7 @@
4041

4142
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Jackie Robinson")).click()}
4243
click_button 'Save'
44+
is_expected.to have_content 'Comment successfully created'
4345
expect(Comment.first.commentable).to eq polymorphic_association_tests.first
4446
end
4547
end
@@ -65,6 +67,7 @@
6567
expect(all('ul.ui-autocomplete li.ui-menu-item a').map(&:text)).to eq ['Rob Wooten', 'Jackie Robinson']
6668
page.execute_script %{[...document.querySelectorAll('ul.ui-autocomplete li.ui-menu-item')].find(e => e.innerText.includes("Jackie Robinson")).click()}
6769
click_button 'Save'
70+
is_expected.to have_content 'Comment successfully updated'
6871
expect(comment.reload.commentable).to eq players[0]
6972
end
7073

Diff for: src/rails_admin/base.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Rails from "@rails/ujs";
2+
import "@hotwired/turbo-rails";
23
import jQuery from "jquery";
34
import "./vendor/jquery_nested_form";
45
import "bootstrap";

Diff for: src/rails_admin/ui.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ import I18n from "./i18n";
5151
}
5252
);
5353

54-
$(document).ready(function () {
54+
document.addEventListener("turbo:load", function () {
5555
I18n.init($("html").attr("lang"), $("#admin-js").data("i18nOptions"));
5656

5757
const event = new CustomEvent("rails_admin.dom_ready");

0 commit comments

Comments
 (0)