Project

General

Profile

Patch #42515 » 0001-Introduce-Stimulus-to-facilitate-JavaScript-modernization-and-provide-a-new-development-approach.patch

Katsuya HIDAKA, 2025-04-04 19:59

View differences:

.rubocop.yml
225 225
    - 'Rakefile'
226 226
    - 'config.ru'
227 227
    - 'config/additional_environment.rb'
228
    - 'config/importmap.rb'
228 229

  
229 230
Style/GlobalStdStream:
230 231
  Enabled: false
Gemfile
16 16
gem 'rubyzip', '~> 2.4.0'
17 17
gem 'propshaft', '~> 1.1.0'
18 18
gem 'rack', '>= 3.1.3'
19
gem "stimulus-rails", "~> 1.3"
20
gem "importmap-rails", "~> 2.0"
19 21

  
20 22
#  Ruby Standard Gems
21 23
gem 'csv', '~> 3.2.8'
app/javascript/controllers/application.js
1
import { Application } from '@hotwired/stimulus'
2

  
3
const application = Application.start()
4

  
5
application.debug = false
6
window.Stimulus   = application
7

  
8
export { application }
app/javascript/controllers/index.js
1
import { application } from "controllers/application"
2
import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading"
3
eagerLoadControllersFrom("controllers", application)
app/javascript/main.js
1
import "controllers"
app/views/layouts/base.html.erb
10 10
<%= favicon %>
11 11
<%= stylesheet_link_tag 'jquery/jquery-ui-1.13.2', 'tribute-5.1.3', 'application', 'responsive', :media => 'all' %>
12 12
<%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %>
13
<%= javascript_importmap_tags 'main' %>
13 14
<%= javascript_heads %>
14 15
<%= heads_for_theme %>
15 16
<%= heads_for_auto_complete(@project) %>
bin/importmap
1
#!/usr/bin/env ruby
2

  
3
require_relative "../config/application"
4
require "importmap/commands"
config/importmap.rb
1
# Pin npm packages by running ./bin/importmap
2

  
3
pin "main"
4
pin "@hotwired/stimulus", to: "stimulus.min.js"
5
pin "@hotwired/stimulus-loading", to: "stimulus-loading.js"
6
pin_all_from "app/javascript/controllers", under: "controllers"
(1-1/4)