stimulus-rails 0.3.2 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/stimulus-importmap-autoloader.js +14 -0
- data/lib/install/app/{assets/javascripts → javascript}/controllers/hello_controller.js +0 -0
- data/lib/install/app/{assets/javascripts → javascript}/controllers/index.js +0 -0
- data/lib/install/stimulus_with_asset_pipeline.rb +24 -4
- data/lib/install/stimulus_with_webpacker.rb +1 -1
- data/lib/stimulus/engine.rb +1 -10
- data/lib/stimulus/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 34bffdbd13157aa74d12da7d9c6134a1c1837cd03403473aad75bfbc1dc6d88b
|
4
|
+
data.tar.gz: 289222da11e3d743e9eef458d86017433a8e093c59c172fafbf78110100ab980
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b74e336c2cf442080712b934ee8845276d848e401b0fa96b8a98fa7a50d0b607229b2509392e93654de39c32f62766667f8d8d63970f9c617a3744a3b1c6ead
|
7
|
+
data.tar.gz: c68602a98323ef622c259f03837c6b75a6096f900863a0ff40290f614a28bde2d1b3fbc976ba880a3fc0fc13e546fe7105e7f124cbcb8a746654ac0a555b4cbb
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { Application } from "@hotwired/stimulus"
|
2
|
+
|
3
|
+
const application = Application.start()
|
4
|
+
|
5
|
+
const importmap = await JSON.parse(document.querySelector("script[type=importmap]").text)
|
6
|
+
const importedControllerPaths = Object.keys(importmap.imports).filter((e) => e.match("controllers/"))
|
7
|
+
|
8
|
+
importedControllerPaths.forEach(function(path) {
|
9
|
+
const name = path.replace("controllers/", "").replace("_controller", "").replace("/", "--").replace("_", "-")
|
10
|
+
|
11
|
+
import(path)
|
12
|
+
.then(module => application.register(name, module.default))
|
13
|
+
.catch(error => console.log(`Failed to autoload controller: ${name}`, error))
|
14
|
+
})
|
File without changes
|
File without changes
|
@@ -1,7 +1,27 @@
|
|
1
|
-
APP_JS_ROOT = Rails.root.join("app/
|
1
|
+
APP_JS_ROOT = Rails.root.join("app/javascript")
|
2
|
+
APP_JS_PATH = APP_JS_ROOT.join("application.js")
|
3
|
+
IMPORTMAP_PATH = Rails.root.join("config/initializers/importmap.rb")
|
2
4
|
|
3
|
-
|
4
|
-
|
5
|
+
if APP_JS_PATH.exist?
|
6
|
+
say "Import Stimulus importmap autoloader in existing app/javascript/application.js"
|
7
|
+
append_to_file APP_JS_PATH, %(\nimport "@hotwired/stimulus-importmap-autoloader"\n)
|
8
|
+
else
|
9
|
+
say <<~INSTRUCTIONS, :red
|
10
|
+
You must import @hotwire/stimulus and @hotwire/stimulus-importmap-autoloader in your application.js.
|
11
|
+
INSTRUCTIONS
|
12
|
+
end
|
5
13
|
|
6
14
|
say "Creating controllers directory"
|
7
|
-
copy_file "#{__dir__}/app/
|
15
|
+
copy_file "#{__dir__}/app/javascript/controllers/hello_controller.js", APP_JS_ROOT.join("controllers/hello_controller.js")
|
16
|
+
|
17
|
+
if IMPORTMAP_PATH.exist?
|
18
|
+
say "Pin @hotwired/stimulus and @hotwired/stimulus-importmap-autoloader in config/initializers/importmap.rb"
|
19
|
+
insert_into_file \
|
20
|
+
IMPORTMAP_PATH.to_s,
|
21
|
+
%( pin "@hotwired/stimulus", to: "stimulus.js"\n pin "@hotwired/stimulus-importmap-autoloader", to: "stimulus-importmap-autoloader.js"\n pin_all_from "app/javascript/controllers", under: "controllers"\n\n),
|
22
|
+
after: "Rails.application.config.importmap.draw do\n"
|
23
|
+
else
|
24
|
+
say <<~INSTRUCTIONS, :red
|
25
|
+
You must add @rails/actiontext and trix to your importmap to reference them via ESM.
|
26
|
+
INSTRUCTIONS
|
27
|
+
end
|
@@ -2,7 +2,7 @@ say "Appending Stimulus setup code to #{Webpacker.config.source_entry_path}/appl
|
|
2
2
|
append_to_file "#{Webpacker.config.source_entry_path}/application.js", %(\nimport "controllers")
|
3
3
|
|
4
4
|
say "Creating controllers directory"
|
5
|
-
directory "#{__dir__}/app/
|
5
|
+
directory "#{__dir__}/app/javascript/controllers", "#{Webpacker.config.source_path}/controllers"
|
6
6
|
|
7
7
|
say "Using Stimulus NPM package"
|
8
8
|
gsub_file "#{Webpacker.config.source_path}/controllers/hello_controller.js", /@hotwired\//, ''
|
data/lib/stimulus/engine.rb
CHANGED
@@ -2,16 +2,7 @@ module Stimulus
|
|
2
2
|
class Engine < ::Rails::Engine
|
3
3
|
initializer "stimulus.assets" do
|
4
4
|
if Rails.application.config.respond_to?(:assets)
|
5
|
-
Rails.application.config.assets.precompile += %w( stimulus stimulus-autoloader )
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
initializer "stimulus.importmap" do
|
10
|
-
if Rails.application.config.respond_to?(:importmap)
|
11
|
-
Rails.application.config.importmap.paths.tap do |paths|
|
12
|
-
paths.asset "@hotwired/stimulus", path: "stimulus.js"
|
13
|
-
paths.asset "@hotwired/stimulus-autoloader", path: "stimulus-autoloader.js"
|
14
|
-
end
|
5
|
+
Rails.application.config.assets.precompile += %w( stimulus stimulus-autoloader stimulus-importmap-autoloader )
|
15
6
|
end
|
16
7
|
end
|
17
8
|
end
|
data/lib/stimulus/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stimulus-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Stephenson
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-08-
|
13
|
+
date: 2021-08-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -36,10 +36,11 @@ files:
|
|
36
36
|
- README.md
|
37
37
|
- Rakefile
|
38
38
|
- app/assets/javascripts/stimulus-autoloader.js
|
39
|
+
- app/assets/javascripts/stimulus-importmap-autoloader.js
|
39
40
|
- app/assets/javascripts/stimulus.js
|
40
41
|
- app/assets/javascripts/stimulus@2.js
|
41
|
-
- lib/install/app/
|
42
|
-
- lib/install/app/
|
42
|
+
- lib/install/app/javascript/controllers/hello_controller.js
|
43
|
+
- lib/install/app/javascript/controllers/index.js
|
43
44
|
- lib/install/stimulus_with_asset_pipeline.rb
|
44
45
|
- lib/install/stimulus_with_webpacker.rb
|
45
46
|
- lib/stimulus-rails.rb
|