Skip to content

Commit 622c477

Browse files
authored
Merge branch 'main' into main
2 parents 31bd872 + 7b5731c commit 622c477

File tree

10 files changed

+36
-21
lines changed

10 files changed

+36
-21
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: CI
33
on:
44
push:
55
branches:
6-
- master
6+
- main
77
pull_request:
88

99
jobs:
@@ -18,7 +18,7 @@ jobs:
1818
gemfile: gemfiles/rails51_sprockets_3.gemfile
1919
- ruby: "2.7"
2020
gemfile: gemfiles/rails52_sprockets_3.gemfile
21-
- ruby: "2.7"
21+
- ruby: "3.2"
2222
gemfile: gemfiles/rails70_sprockets_4.gemfile
2323
- ruby: "3.3"
2424
gemfile: gemfiles/rails80_sprockets_4.gemfile

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Changelog
22

3-
## master
3+
## main
4+
5+
* Fix support of shakapacker [#321](https://github.com/railsware/js-routes/issue/321).
46

57
## v2.3.0
68

Gemfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ gemspec
66
group :development do
77
gem 'sorbet', '>= 0.5.11518'
88
gem 'tapioca'
9+
gem 'debug'
10+
gem 'bump'
911
end

VERSION_2_UPGRADE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
### Using ESM module by default
44

55
New version of JsRoutes doesn't try to guess your javascript environment module system because JS has generated a ton of legacy module systems in the past.
6-
[ESM+Webpacker](/Readme.md#webpacker) upgrade is recommended.
6+
[ESM](/Readme.md#webpacker) upgrade is recommended.
77

88
However, if you don't want to follow that pass, specify `module_type` configuration option instead based on module system available in your JS environment.
99
Here are supported values:

gemfiles/rails80_sprockets_4.gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
source "http://rubygems.org"
44

55
gem "railties", "~> 8.0"
6-
gem "sprockets", "~> 4.0"
6+
gem "sprockets", "~> 4.2"
77

88
gemspec path: "../"

js-routes.gemspec

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,9 @@ Gem::Specification.new do |s|
4242
s.add_development_dependency(%q<rspec>, [">= 3.10.0"])
4343
s.add_development_dependency(%q<bundler>, [">= 2.2.25"])
4444
s.add_development_dependency(%q<appraisal>, [">= 0.5.2"])
45-
s.add_development_dependency(%q<bump>, [">= 0.10.0"])
4645
if defined?(JRUBY_VERSION)
4746
s.add_development_dependency(%q<therubyrhino>, [">= 2.0.4"])
4847
else
49-
s.add_development_dependency(%q<byebug>)
50-
s.add_development_dependency(%q<pry-byebug>)
5148
s.add_development_dependency(%q<mini_racer>, [">= 0.4.0"])
5249
end
5350
end

lib/js_routes/configuration.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# typed: strict
2+
23
require "pathname"
34
require "js_routes/types"
5+
require 'js_routes/utils'
46

57
module JsRoutes
68
class Configuration
@@ -114,14 +116,14 @@ def source_file
114116

115117
sig { returns(Pathname) }
116118
def output_file
117-
webpacker_dir = defined?(::Webpacker) ?
118-
T.unsafe(::Webpacker).config.source_path :
119-
pathname('app', 'javascript')
119+
shakapacker = JsRoutes::Utils.shakapacker
120+
shakapacker_dir = shakapacker ?
121+
shakapacker.config.source_path : pathname('app', 'javascript')
120122
sprockets_dir = pathname('app','assets','javascripts')
121123
file_name = file || default_file_name
122124
sprockets_file = sprockets_dir.join(file_name)
123-
webpacker_file = webpacker_dir.join(file_name)
124-
!Dir.exist?(webpacker_dir) && defined?(::Sprockets) ? sprockets_file : webpacker_file
125+
webpacker_file = shakapacker_dir.join(file_name)
126+
!Dir.exist?(shakapacker_dir) && defined?(::Sprockets) ? sprockets_file : webpacker_file
125127
end
126128

127129
protected

lib/js_routes/generators/webpacker.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
require "rails/generators"
2+
require 'js_routes/utils'
23

34
class JsRoutes::Generators::Webpacker < Rails::Generators::Base
45

56
def create_webpack
67
copy_file "initializer.rb", "config/initializers/js_routes.rb"
78
copy_file "erb.js", "config/webpack/loaders/erb.js"
8-
copy_file "routes.js.erb", "#{Webpacker.config.source_path}/routes.js.erb"
9+
copy_file "routes.js.erb", "#{JsRoutes::Utils.shakapacker.config.source_path}/routes.js.erb"
910
inject_into_file "config/webpack/environment.js", loader_content
1011
if path = application_js_path
1112
inject_into_file path, pack_content

lib/js_routes/utils.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# typed: strict
2+
3+
module JsRoutes
4+
module Utils
5+
extend T::Sig
6+
sig {returns(T.untyped)}
7+
def self.shakapacker
8+
if defined?(::Shakapacker)
9+
::Shakapacker
10+
elsif defined?(::Webpacker)
11+
::Webpacker
12+
else
13+
nil
14+
end
15+
end
16+
end
17+
18+
end

spec/js_routes/options_spec.rb

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -465,13 +465,6 @@
465465
end
466466

467467
context "with url_links option" do
468-
around(:each) do |example|
469-
Rails.version >= "7.1.0" ? Rails.deprecator : ActiveSupport::Deprecation
470-
deprecator_object.silence do
471-
example.run
472-
end
473-
end
474-
475468
let(:_options) { { :compact => true, :url_links => true, default_url_options: {host: 'localhost'} } }
476469
it "should not strip urls" do
477470
expectjs("Routes.inbox(1)").to eq(test_routes.inbox_path(1))

0 commit comments

Comments
 (0)