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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 593f2770e2f1bcd18ce6dcf32cc62a13ca4eaa57e0837ef62f34f5a57acb9be9
4
- data.tar.gz: ae9a0e02e14c4c9e5c6923bb63db6c2ab38fdd3f797dbc0d892f8195ccedd16b
3
+ metadata.gz: 34bffdbd13157aa74d12da7d9c6134a1c1837cd03403473aad75bfbc1dc6d88b
4
+ data.tar.gz: 289222da11e3d743e9eef458d86017433a8e093c59c172fafbf78110100ab980
5
5
  SHA512:
6
- metadata.gz: 28cd6d3b4341198e2f5006c4426c2d68122c4a1e5d88c9d6034d3912587bf795fed1b347b4c1bf81c3cc1c9f8bcf26fb40049a15be638614f162685bd1109cee
7
- data.tar.gz: 7bec8ac3c36d819e6bbba72734cb85fbf32f4fd05dbcbe6b7ea743fb67e963b3af69d590b356f283820d072b06d6f89c427dd563664f6d28de9cf4de5541a136
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
+ })
@@ -1,7 +1,27 @@
1
- APP_JS_ROOT = Rails.root.join("app/assets/javascripts")
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
- say "Import Stimulus autoloader in existing app/assets/javascripts/application.js"
4
- append_to_file APP_JS_ROOT.join("application.js"), %(import "@hotwired/stimulus-autoloader"\n)
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/assets/javascripts/controllers/hello_controller.js", APP_JS_ROOT.join("controllers/hello_controller.js")
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/assets/javascripts/controllers", "#{Webpacker.config.source_path}/controllers"
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\//, ''
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Stimulus
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.6"
3
3
  end
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.2
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 00:00:00.000000000 Z
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/assets/javascripts/controllers/hello_controller.js
42
- - lib/install/app/assets/javascripts/controllers/index.js
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