stimulus-rails 0.3.3 → 0.3.7

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: b29c6c01cd5eef88adc032633ae724a94f0185717c6e0743171517a588a29591
4
- data.tar.gz: 27a05ccaeb45d09d3af219b3d8e5c4ff0aed2b3087cc33781a789cf750088f04
3
+ metadata.gz: 894a81fc2be7dadaf745027c04aef2cb0d637348c6e93829b10952cd976a83a9
4
+ data.tar.gz: 06ebc45e8746c0be3112feeb03852daf82cf0e1447dfcc52ad1ae3f0360325b1
5
5
  SHA512:
6
- metadata.gz: cbe88ec636cbac61afd9c5c12b52eefa16c90c1db55e59d7ee884047329e3d7080e773f5c886bde523399620579c1d2f7a7d1fd850a449705ef152139defaa9a
7
- data.tar.gz: ed51da4c3d2c20d5b4edb131bfa02bc8c3e39bd52c849974782782025fff5de9922b8bba6ceebea7073382e70b63a6921635e41786d1608653df85f8335c4ced
6
+ metadata.gz: 37e58a1922f16facf066e402022ca530f6ec033f5b189503ae2f45de09708ebe9d9eefc33cc95b45a8242e37d79cabe97e643f705b87fb4f8a5e150d1f4b4f50
7
+ data.tar.gz: 16f93ddcc5e7f3b65c1d8c5ddddbf2fa55edee46ff8ac2dc788d93ac1dd559a842d09366d331321d68c9eb9edfca8ed8b6335c19471579291dc4be8c8270493c
@@ -0,0 +1,14 @@
1
+ import { Application } from "@hotwired/stimulus"
2
+
3
+ const application = Application.start()
4
+
5
+ const importmap = 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.draw do
12
- pin "@hotwired/stimulus", to: "stimulus.js"
13
- pin "@hotwired/stimulus-autoloader", to: "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.3"
2
+ VERSION = "0.3.7"
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.3
4
+ version: 0.3.7
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-14 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