stimulus-rails 0.2.4 → 0.6.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/MIT-LICENSE +1 -1
- data/README.md +11 -22
- data/app/assets/javascripts/{stimulus/loaders/autoloader.js → stimulus-autoloader.js} +2 -2
- data/app/assets/javascripts/stimulus-importmap-autoloader.js +25 -0
- data/app/assets/javascripts/stimulus.js +1926 -0
- data/lib/generators/stimulus/USAGE +15 -0
- data/lib/generators/stimulus/stimulus_generator.rb +16 -0
- data/lib/generators/stimulus/templates/controller.js.tt +7 -0
- data/lib/install/app/javascript/controllers/application.js +10 -0
- data/lib/install/app/{assets/javascripts → javascript}/controllers/hello_controller.js +1 -1
- data/lib/install/app/javascript/controllers/index_for_importmap.js +5 -0
- data/lib/install/app/javascript/controllers/index_for_node.js +7 -0
- data/lib/install/stimulus_with_importmap.rb +19 -0
- data/lib/install/stimulus_with_node.rb +18 -0
- data/lib/stimulus/engine.rb +1 -17
- data/lib/stimulus/manifest.rb +27 -0
- data/lib/stimulus/version.rb +1 -1
- data/lib/tasks/stimulus_tasks.rake +32 -9
- metadata +21 -22
- data/app/assets/javascripts/stimulus/libraries/es-module-shims.js +0 -1
- data/app/assets/javascripts/stimulus/libraries/es-module-shims@0.7.1.js +0 -475
- data/app/assets/javascripts/stimulus/libraries/stimulus.js +0 -1
- data/app/assets/javascripts/stimulus/libraries/stimulus@2.js +0 -1699
- data/app/assets/javascripts/stimulus/manifest.js +0 -2
- data/app/helpers/stimulus/stimulus_helper.rb +0 -10
- data/lib/install/app/assets/javascripts/controllers/index.js +0 -9
- data/lib/install/app/assets/javascripts/importmap.json.erb +0 -5
- data/lib/install/application.js +0 -1
- data/lib/install/stimulus_with_asset_pipeline.rb +0 -23
- data/lib/install/stimulus_with_webpacker.rb +0 -10
- data/lib/stimulus/importmap_helper.rb +0 -33
@@ -1,10 +0,0 @@
|
|
1
|
-
module Stimulus::StimulusHelper
|
2
|
-
def stimulus_include_tags(importmap = "importmap.json")
|
3
|
-
safe_join [
|
4
|
-
javascript_include_tag("stimulus/libraries/es-module-shims", type: "module"),
|
5
|
-
tag.script(type: "importmap-shim", src: asset_path(importmap)),
|
6
|
-
javascript_include_tag("stimulus/libraries/stimulus", type: "module-shim"),
|
7
|
-
javascript_include_tag("stimulus/loaders/autoloader", type: "module-shim")
|
8
|
-
], "\n"
|
9
|
-
end
|
10
|
-
end
|
@@ -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
|
-
const application = Application.start()
|
8
|
-
const context = require.context("controllers", true, /_controller\.(js|ts)$/)
|
9
|
-
application.load(definitionsFromContext(context))
|
data/lib/install/application.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
import "controllers"
|
@@ -1,23 +0,0 @@
|
|
1
|
-
say "Copying Stimulus JavaScript"
|
2
|
-
directory "#{__dir__}/app/assets/javascripts", "app/assets/javascripts"
|
3
|
-
empty_directory_with_keep_file "app/assets/javascripts/libraries"
|
4
|
-
|
5
|
-
say "Add app/assets/javascripts to asset pipeline manifest"
|
6
|
-
append_to_file Rails.root.join("app/assets/config/manifest.js").to_s, "//= link_tree ../javascripts\n"
|
7
|
-
|
8
|
-
APPLICATION_LAYOUT_PATH = Rails.root.join("app/views/layouts/application.html.erb")
|
9
|
-
|
10
|
-
if APPLICATION_LAYOUT_PATH.exist?
|
11
|
-
say "Add Stimulus include tags in application layout"
|
12
|
-
insert_into_file Rails.root.join("app/views/layouts/application.html.erb").to_s, "\n <%= stimulus_include_tags %>", before: /\s*<\/head>/
|
13
|
-
else
|
14
|
-
say "Default application.html.erb is missing!", :red
|
15
|
-
say " Add <%= stimulus_include_tags %> within the <head> tag in your custom layout."
|
16
|
-
end
|
17
|
-
|
18
|
-
say "Turn off development debug mode"
|
19
|
-
comment_lines Rails.root.join("config/environments/development.rb"), /config.assets.debug = true/
|
20
|
-
|
21
|
-
say "Turn off rack-mini-profiler"
|
22
|
-
comment_lines Rails.root.join("Gemfile"), /rack-mini-profiler/
|
23
|
-
run "bin/bundle", capture: true
|
@@ -1,10 +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" do
|
3
|
-
"\n" + open("#{__dir__}/application.js").read
|
4
|
-
end
|
5
|
-
|
6
|
-
say "Creating controllers directory"
|
7
|
-
directory "#{__dir__}/app/assets/javascripts/controllers", "#{Webpacker.config.source_path}/controllers"
|
8
|
-
|
9
|
-
say "Installing all Stimulus dependencies"
|
10
|
-
run "yarn add stimulus"
|
@@ -1,33 +0,0 @@
|
|
1
|
-
module Stimulus::ImportmapHelper
|
2
|
-
def importmap_list_with_stimulus_from(*paths)
|
3
|
-
[ %("stimulus": "#{asset_path("stimulus/libraries/stimulus")}"), importmap_list_from(*paths) ].reject(&:blank?).join(",\n")
|
4
|
-
end
|
5
|
-
|
6
|
-
def importmap_list_from(*paths)
|
7
|
-
Array(paths).flat_map do |path|
|
8
|
-
if (absolute_path = absolute_root_of(path)).exist?
|
9
|
-
find_javascript_files_in_tree(absolute_path).collect do |filename|
|
10
|
-
module_filename = filename.relative_path_from(absolute_path)
|
11
|
-
module_name = importmap_module_name_from(module_filename)
|
12
|
-
module_path = asset_path(absolute_path.basename.join(module_filename))
|
13
|
-
|
14
|
-
%("#{module_name}": "#{module_path}")
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end.compact.join(",\n")
|
18
|
-
end
|
19
|
-
|
20
|
-
private
|
21
|
-
# Strip off the extension and any versioning data for an absolute module name.
|
22
|
-
def importmap_module_name_from(filename)
|
23
|
-
filename.to_s.remove(filename.extname).split("@").first
|
24
|
-
end
|
25
|
-
|
26
|
-
def find_javascript_files_in_tree(path)
|
27
|
-
Dir[path.join("**/*.js{,m}")].collect { |file| Pathname.new(file) }.select(&:file?)
|
28
|
-
end
|
29
|
-
|
30
|
-
def absolute_root_of(path)
|
31
|
-
(pathname = Pathname.new(path)).absolute? ? pathname : Rails.root.join(path)
|
32
|
-
end
|
33
|
-
end
|