stimulus-rails 0.3.11 → 0.4.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/app/assets/javascripts/stimulus-importmap-autoloader.js +13 -13
- data/lib/install/app/javascript/controllers/index_for_importmap.js +13 -0
- data/lib/install/app/javascript/controllers/index_for_node.js +12 -0
- data/lib/install/app/javascript/controllers/index_for_webpacker.js +14 -0
- data/lib/install/install.rb +10 -0
- data/lib/install/stimulus_with_importmap.rb +17 -0
- data/lib/install/stimulus_with_node.rb +19 -0
- data/lib/stimulus/version.rb +1 -1
- data/lib/tasks/stimulus_tasks.rake +11 -11
- metadata +8 -5
- data/lib/install/app/javascript/controllers/index.js +0 -9
- data/lib/install/stimulus_with_asset_pipeline.rb +0 -26
- data/lib/install/stimulus_with_webpacker.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa026a69205d5d12a6f7dfe43892b6e832ac6d7331cb87fab2e1ae6ea6fd3a1f
|
4
|
+
data.tar.gz: 0b4534ef0afb61a881a8e702b6ccb61e8c24fddff649992269f2b7348546a412
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4512fadf940a7893da2ac9b906f6591a2829bca71f957d46693c5e1085480c9088877c70adb4c72e10b93a8c6f995d8525441bfcbb29677d1f47dea9e539dbfc
|
7
|
+
data.tar.gz: 3ba7838345956e406dc51183365e05f78e0b92b7102debb74b17a702d5e82b24e2173861f899704532ab0ab1fc06d0312e82f6969734f687d9b6a0186e2cbc0d
|
@@ -1,21 +1,21 @@
|
|
1
|
-
import
|
1
|
+
// FIXME: es-module-shim won't shim the dynamic import without this explicit import
|
2
|
+
import "@hotwired/stimulus"
|
2
3
|
|
3
|
-
function registerControllersFrom(under) {
|
4
|
-
const paths = Object.keys(importmap)
|
5
|
-
|
4
|
+
export function registerControllersFrom(under, importmap, application) {
|
5
|
+
const paths = Object.keys(importmap)
|
6
|
+
.filter(path => path.match(new RegExp(`^${under}/.*_controller$`)))
|
7
|
+
|
8
|
+
paths.forEach(path => registerControllerFromPath(path, under, application))
|
6
9
|
}
|
7
10
|
|
8
|
-
function registerControllerFromPath(path, under) {
|
9
|
-
const name = path
|
11
|
+
function registerControllerFromPath(path, under, application) {
|
12
|
+
const name = path
|
13
|
+
.replace(`${under}/`, "")
|
14
|
+
.replace("_controller", "")
|
15
|
+
.replace(/\//g, "--")
|
16
|
+
.replace(/_/g, "-")
|
10
17
|
|
11
18
|
import(path)
|
12
19
|
.then(module => application.register(name, module.default))
|
13
20
|
.catch(error => console.log(`Failed to register controller: ${name} (${path})`, error))
|
14
21
|
}
|
15
|
-
|
16
|
-
const application = Application.start()
|
17
|
-
const importmap = JSON.parse(document.querySelector("script[type=importmap]").text).imports
|
18
|
-
|
19
|
-
registerControllersFrom("controllers")
|
20
|
-
|
21
|
-
export { application, registerControllersFrom }
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { Application } from "@hotwired/stimulus"
|
2
|
+
|
3
|
+
const application = Application.start()
|
4
|
+
|
5
|
+
// Configure Stimulus development experience
|
6
|
+
application.warnings = true
|
7
|
+
application.debug = false
|
8
|
+
window.Stimulus = application
|
9
|
+
|
10
|
+
// Import and register all your controllers from the importmap under controllers/*
|
11
|
+
import { registerControllersFrom } from "@hotwired/stimulus-importmap-autoloader"
|
12
|
+
const importmap = JSON.parse(document.querySelector("script[type=importmap]").text).imports
|
13
|
+
registerControllersFrom("controllers", importmap, application)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { Application } from "@hotwired/stimulus"
|
2
|
+
|
3
|
+
const application = Application.start()
|
4
|
+
|
5
|
+
// Configure Stimulus development experience
|
6
|
+
application.warnings = true
|
7
|
+
application.debug = false
|
8
|
+
window.Stimulus = application
|
9
|
+
|
10
|
+
// Import and register all your controllers
|
11
|
+
import HelloController from "./hello_controller"
|
12
|
+
application.register("hello", HelloController)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { Application } from "@hotwired/stimulus"
|
2
|
+
|
3
|
+
const application = Application.start()
|
4
|
+
|
5
|
+
// Configure Stimulus development experience
|
6
|
+
application.warnings = true
|
7
|
+
application.debug = false
|
8
|
+
window.Stimulus = application
|
9
|
+
|
10
|
+
// Import and register all your controllers within this directory and all subdirectories
|
11
|
+
// Controller files must be named *_controller.js or *_controller.ts
|
12
|
+
import { definitionsFromContext } from "@hotwired/stimulus"
|
13
|
+
const context = require.context("controllers", true, /_controller\.(js|ts)$/)
|
14
|
+
application.load(definitionsFromContext(context))
|
@@ -0,0 +1,10 @@
|
|
1
|
+
if (js_entrypoint_path = Rails.root.join("app/javascript/application.js")).exist?
|
2
|
+
say "Appending Stimulus setup code to JavaScript entrypoint"
|
3
|
+
append_to_file "app/javascript/application.js", %(\nimport "controllers")
|
4
|
+
else
|
5
|
+
end
|
6
|
+
|
7
|
+
say "Creating controllers directory"
|
8
|
+
directory "#{__dir__}/app/javascript/controllers", "app/javascript/controllers"
|
9
|
+
|
10
|
+
say "Add @hotwired/stimulus package"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
say "Create controllers directory"
|
2
|
+
empty_directory "app/javascript/controllers"
|
3
|
+
copy_file "#{__dir__}/app/javascript/controllers/index_for_importmap.js",
|
4
|
+
"app/javascript/controllers/index.js"
|
5
|
+
copy_file "#{__dir__}/app/javascript/controllers/hello_controller.js",
|
6
|
+
"app/javascript/controllers/hello_controller.js"
|
7
|
+
|
8
|
+
say "Import Stimulus controllers"
|
9
|
+
append_to_file "app/javascript/application.js", %(import "./controllers"\n)
|
10
|
+
|
11
|
+
say "Pin Stimulus"
|
12
|
+
append_to_file "config/importmap.rb" do <<-RUBY
|
13
|
+
pin "@hotwired/stimulus", to: "stimulus.js"
|
14
|
+
pin "@hotwired/stimulus-importmap-autoloader", to: "stimulus-importmap-autoloader.js"
|
15
|
+
pin_all_from "app/javascript/controllers", under: "controllers"
|
16
|
+
RUBY
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
say "Create controllers directory"
|
2
|
+
empty_directory "app/javascript/controllers"
|
3
|
+
|
4
|
+
if Rails.root.join("config/webpacker.yml").exist?
|
5
|
+
copy_file "#{__dir__}/app/javascript/controllers/index_for_webpacker.js",
|
6
|
+
"app/javascript/controllers/index.js"
|
7
|
+
else
|
8
|
+
copy_file "#{__dir__}/app/javascript/controllers/index_for_node.js",
|
9
|
+
"app/javascript/controllers/index.js"
|
10
|
+
end
|
11
|
+
|
12
|
+
copy_file "#{__dir__}/app/javascript/controllers/hello_controller.js",
|
13
|
+
"app/javascript/controllers/hello_controller.js"
|
14
|
+
|
15
|
+
say "Import Stimulus controllers"
|
16
|
+
append_to_file "app/javascript/application.js", %(import "./controllers"\n)
|
17
|
+
|
18
|
+
say "Install Stimulus"
|
19
|
+
run "yarn add @hotwired/stimulus"
|
data/lib/stimulus/version.rb
CHANGED
@@ -3,24 +3,24 @@ def run_stimulus_install_template(path) system "#{RbConfig.ruby} ./bin/rails app
|
|
3
3
|
namespace :stimulus do
|
4
4
|
desc "Install Stimulus into the app"
|
5
5
|
task :install do
|
6
|
-
if
|
7
|
-
Rake::Task["stimulus:install:
|
8
|
-
elsif
|
9
|
-
Rake::Task["stimulus:install:
|
6
|
+
if Rails.root.join("config/importmap.rb").exist?
|
7
|
+
Rake::Task["stimulus:install:importmap"].invoke
|
8
|
+
elsif Rails.root.join("package.json").exist?
|
9
|
+
Rake::Task["stimulus:install:node"].invoke
|
10
10
|
else
|
11
|
-
puts "You must either be running
|
11
|
+
puts "You must either be running with node (package.json) or importmap-rails (config/importmap.rb) to use this gem."
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
namespace :install do
|
16
|
-
desc "Install Stimulus on
|
17
|
-
task :
|
18
|
-
run_stimulus_install_template "
|
16
|
+
desc "Install Stimulus on an app running importmap-rails"
|
17
|
+
task :importmap do
|
18
|
+
run_stimulus_install_template "stimulus_with_importmap"
|
19
19
|
end
|
20
20
|
|
21
|
-
desc "Install Stimulus on
|
22
|
-
task :
|
23
|
-
run_stimulus_install_template "
|
21
|
+
desc "Install Stimulus on an app running node"
|
22
|
+
task :node do
|
23
|
+
run_stimulus_install_template "stimulus_with_node"
|
24
24
|
end
|
25
25
|
end
|
26
26
|
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.
|
4
|
+
version: 0.4.0
|
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-
|
13
|
+
date: 2021-09-03 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -41,9 +41,12 @@ files:
|
|
41
41
|
- app/assets/javascripts/stimulus@2.js
|
42
42
|
- app/assets/javascripts/stimulus@3.0.0-beta.1.js
|
43
43
|
- lib/install/app/javascript/controllers/hello_controller.js
|
44
|
-
- lib/install/app/javascript/controllers/
|
45
|
-
- lib/install/
|
46
|
-
- lib/install/
|
44
|
+
- lib/install/app/javascript/controllers/index_for_importmap.js
|
45
|
+
- lib/install/app/javascript/controllers/index_for_node.js
|
46
|
+
- lib/install/app/javascript/controllers/index_for_webpacker.js
|
47
|
+
- lib/install/install.rb
|
48
|
+
- lib/install/stimulus_with_importmap.rb
|
49
|
+
- lib/install/stimulus_with_node.rb
|
47
50
|
- lib/stimulus-rails.rb
|
48
51
|
- lib/stimulus/engine.rb
|
49
52
|
- lib/stimulus/version.rb
|
@@ -1,9 +0,0 @@
|
|
1
|
-
// Load all the controllers within this directory and all subdirectories.
|
2
|
-
// Controller files must be named *_controller.js or *_controller.ts.
|
3
|
-
|
4
|
-
import { Application } from "stimulus"
|
5
|
-
import { definitionsFromContext } from "stimulus/webpack-helpers"
|
6
|
-
|
7
|
-
window.Stimulus = Application.start()
|
8
|
-
const context = require.context("controllers", true, /_controller\.(js|ts)$/)
|
9
|
-
Stimulus.load(definitionsFromContext(context))
|
@@ -1,26 +0,0 @@
|
|
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/importmap.rb")
|
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 @hotwired/stimulus and @hotwired/stimulus-importmap-autoloader in your application.js.
|
11
|
-
INSTRUCTIONS
|
12
|
-
end
|
13
|
-
|
14
|
-
say "Creating controllers directory"
|
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/importmap.rb"
|
19
|
-
append_to_file \
|
20
|
-
IMPORTMAP_PATH.to_s,
|
21
|
-
%(pin "@hotwired/stimulus", to: "stimulus.js"\npin "@hotwired/stimulus-importmap-autoloader", to: "stimulus-importmap-autoloader.js"\npin_all_from "app/javascript/controllers", under: "controllers"\n)
|
22
|
-
else
|
23
|
-
say <<~INSTRUCTIONS, :red
|
24
|
-
You must add @hotwired/stimulus and @hotwired/stimulus-importmap-autoloader to your importmap to reference them via ESM.
|
25
|
-
INSTRUCTIONS
|
26
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
say "Appending Stimulus setup code to #{Webpacker.config.source_entry_path}/application.js"
|
2
|
-
append_to_file "#{Webpacker.config.source_entry_path}/application.js", %(\nimport "controllers")
|
3
|
-
|
4
|
-
say "Creating controllers directory"
|
5
|
-
directory "#{__dir__}/app/javascript/controllers", "#{Webpacker.config.source_path}/controllers"
|
6
|
-
|
7
|
-
say "Using Stimulus NPM package"
|
8
|
-
gsub_file "#{Webpacker.config.source_path}/controllers/hello_controller.js", /@hotwired\//, ''
|
9
|
-
|
10
|
-
say "Installing all Stimulus dependencies"
|
11
|
-
run "yarn add stimulus"
|