js-routes 2.3.3 → 2.3.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1acb75b6e26ae17c5b028fb97d400d0fb061ec582298598e91b05f27a5a9a32c
4
- data.tar.gz: 2bc54da6a67463569ad6b239f90392394d666f0b89cde662a09cf35f19b07f85
3
+ metadata.gz: 5340711dfd4078cf7c63d618dbd4957f58fd79d0e3f82ca6b1f6a0b6cd0381a5
4
+ data.tar.gz: 00a7ae1424f6e61211f7bd0cc26f86542c3054c8d17ae062f026da2a44da7b32
5
5
  SHA512:
6
- metadata.gz: d4a84398697f1bfb41f9c0dace8d50a805b5aae36de24382bd5b43214e237a776471267046ec01487cb52ab542f0b61cc46f62a32037476af8aa2510d5b87c77
7
- data.tar.gz: db690e312707ad1951b9b9905c62400eb1f70eafbeab95aab94920eab5df57c18d6d18cec1e3bc3bbe133d0a2a98308469fe934b955a43f401357284cf29f9c3
6
+ metadata.gz: '00963c11a5f95f269924111950e8a3f9b9c9fc9347d3a52e745b191de8d6550d9d2d518d32088b3e98eec2e3fe8022f585523b99c71460be2d234f02c0f02cef'
7
+ data.tar.gz: 452e998d9c85ce6a7061cf002cd8cac7e77538fd71353fb3ea359f500060628a521dbc3f2e36b0dfdf43d3a4252d59566872914901e5e931ce55c19dca45231a
data/CHANGELOG.md CHANGED
@@ -1,6 +1,37 @@
1
1
  # Changelog
2
2
 
3
- ## v2.3.3
3
+ ## [2.3.5]
4
+
5
+ * Support `bigint` route parameter
6
+
7
+ ``` typescript
8
+ import {nft_path} from "./routes"
9
+
10
+ nft_path(123456789012345678901234567890n)
11
+ // => /nfts/123456789012345678901234567890
12
+ ```
13
+
14
+ * Fix rake task for non-esm modules. [#316](https://github.com/railsware/js-routes/issues/316)
15
+
16
+ ## [2.3.4]
17
+
18
+ * Fix deprecator usage in `rake js:routes:typescript` [#327](https://github.com/railsware/js-routes/issues/327)
19
+ * Migrate to yarn 4
20
+ * Deprecated `prefix` option in favor of `default_url_options.script_name`.
21
+ * Add support for `script_name` [Rails helper option](https://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html#method-i-url_for).
22
+
23
+ ``` javascript
24
+ Routes.post_path(1, { script_name: "/myapp" })
25
+ // => /myapp/post/1
26
+
27
+ Routes.configure({
28
+ default_url_options: { script_name: "/myapp" }
29
+ })
30
+
31
+ Routes.post_path(1) // => /myapp/post/1
32
+ ```
33
+
34
+ ## [2.3.3]
4
35
 
5
36
  * Rework default banner to use `routes.rb` digest instead of timestamp to ensure
6
37
  consistent routes.js version accross environments.
@@ -17,7 +48,7 @@ The new default banner:
17
48
  */
18
49
  ```
19
50
 
20
- ## v2.3.2
51
+ ## [2.3.2]
21
52
 
22
53
  * Add `banner` option that allow to control JSDoc on top of generated file. [#324](https://github.com/bogdan/repo/issues/324).
23
54
 
@@ -34,13 +65,13 @@ JsRoutes.setup do |c|
34
65
  end
35
66
  ```
36
67
 
37
- ## v2.3.1
68
+ ## [2.3.1]
38
69
 
39
70
  * Add timestamp on when routes.js was generated into banner.
40
71
  * Fix application specified directly without proc. [#323](https://github.com/railsware/js-routes/issues/323)
41
72
  * Support `optional_definition_params` option. See [Related Docs](./Readme.md#optional-definition-params).
42
73
 
43
- ## v2.3.0
74
+ ## [2.3.0]
44
75
 
45
76
  * Drop support of Rails 4.x
46
77
  * Fix support of shakapacker [#321](https://github.com/railsware/js-routes/issues/321).
@@ -48,7 +79,7 @@ end
48
79
  * Deprecated `rake js:routes:typescript`.
49
80
  `rake js:routes` now automatically detects if types support can be used on not.
50
81
 
51
- ## v2.2.10
82
+ ## [2.2.10]
52
83
 
53
84
  * Remove sorbet files from repo
54
85
  * Clearly define files included in gem
@@ -56,109 +87,109 @@ end
56
87
  * Remove empty object linter warning on DTS module
57
88
  * Generators: Add `.ts` extension when searching for main JS file of the project
58
89
 
59
- ## v2.2.9
90
+ ## [2.2.9]
60
91
 
61
92
  * Fix middleware error for non-modern setup.
62
93
  * Added [Sorbet](https://sorbet.org/) method signatures.
63
94
  * Always use DTS module type when calling JsRoutes.definitions or .definitions!.
64
95
  [#313](https://github.com/railsware/js-routes/issues/313)
65
96
 
66
- ## v2.2.8
97
+ ## [2.2.8]
67
98
 
68
99
  * Leave emoji symbols intact when encoding URI fragment [#312](https://github.com/railsware/js-routes/issues/312)
69
100
  * Use webpacker config variable instead of hardcode [#309](https://github.com/railsware/js-routes/issues/309)
70
101
  * Use `File.exist?` to be compatible with all versions of ruby [#310](https://github.com/railsware/js-routes/issues/310)
71
102
 
72
- ## v2.2.7
103
+ ## [2.2.7]
73
104
 
74
105
  * Fix ESM Tree Shaking [#306](https://github.com/railsware/js-routes/issues/306)
75
106
 
76
- ## v2.2.6
107
+ ## [2.2.6]
77
108
 
78
109
  * Prefer to extend `javascript:build` instead of `assets:precompile`. [#305](https://github.com/railsware/js-routes/issues/305)
79
110
  * Add stimulus framework application.js location to generators
80
111
 
81
- ## v2.2.5
112
+ ## [2.2.5]
82
113
 
83
114
  * Upgraded eslint and prettier versions [#304](https://github.com/railsware/js-routes/issues/304)
84
115
  * Fix middleware generator [#300](https://github.com/railsware/js-routes/issues/300)
85
116
  * Support `params` special parameter
86
117
 
87
- ## v2.2.4
118
+ ## [2.2.4]
88
119
 
89
120
  * Fix rails engine loading if sprockets is not in Gemfile. Fixes [#294](https://github.com/railsware/js-routes/issues/294)
90
121
 
91
- ## v2.2.3
122
+ ## [2.2.3]
92
123
 
93
124
  * Fixed NIL module type namespace defintion [#297](https://github.com/railsware/js-routes/issues/297).
94
125
  * The patch may cause a problem with nested `namespace` option.
95
126
  * Ex. Value like `MyProject.Routes` requires to define `window.MyProject` before importing the routes file
96
127
 
97
- ## v2.2.2
128
+ ## [2.2.2]
98
129
 
99
130
  * Fix custom file path [#295](https://github.com/railsware/js-routes/issues/295)
100
131
 
101
- ## v2.2.1
132
+ ## [2.2.1]
102
133
 
103
- * Improve generator to update route files on `assets:precompile` and add them to `.gitignore by default` [#288](https://github.com/railsware/js-routes/issues/288#issuecomment-1012182815)
134
+ * Improve generator to update route files on `assets:precompile` and add them to `.gitignore` by default [#288](https://github.com/railsware/js-routes/issues/288#issuecomment-1012182815)
104
135
 
105
- ## v2.2.0
136
+ ## [2.2.0]
106
137
 
107
138
  * Use Rack Middleware to automatically update routes file in development [#288](https://github.com/railsware/js-routes/issues/288)
108
139
  * This setup is now a default recommended due to lack of any downside comparing to [ERB Loader](./Readme.md#webpacker) and [Manual Setup](./Readme.md#advanced-setup)
109
140
 
110
- ## v2.1.3
141
+ ## [2.1.3]
111
142
 
112
143
  * Fix `default_url_options` bug. [#290](https://github.com/railsware/js-routes/issues/290)
113
144
 
114
- ## v2.1.2
145
+ ## [2.1.2]
115
146
 
116
147
  * Improve browser window object detection. [#287](https://github.com/railsware/js-routes/issues/287)
117
148
 
118
- ## v2.1.1
149
+ ## [2.1.1]
119
150
 
120
151
  * Added webpacker generator `./bin/rails generate js_routes:webpacker`
121
152
  * Reorganized Readme to describe different setups with their pros and cons more clearly
122
153
 
123
- ## v2.1.0
154
+ ## [2.1.0]
124
155
 
125
156
  * Support typescript defintions file aka `routes.d.ts`. See [Readme.md](./Readme.md#definitions) for more information.
126
157
 
127
- ## v2.0.8
158
+ ## [2.0.8]
128
159
 
129
160
  * Forbid usage of `namespace` option if `module_type` is not `nil`. [#281](https://github.com/railsware/js-routes/issues/281).
130
161
 
131
- ## v2.0.7
162
+ ## [2.0.7]
132
163
 
133
164
  * Remove source map annotation from JS file. Fixes [#277](https://github.com/railsware/js-routes/issues/277)
134
165
  * Generated file is not minified, so it is better to use app side bundler/compressor for source maps
135
166
 
136
167
 
137
- ## v2.0.6
168
+ ## [2.0.6]
138
169
 
139
170
  * Disable `namespace` option default for all envs [#278](https://github.com/railsware/js-routes/issues/278)
140
171
 
141
- ## v2.0.5
172
+ ## [2.0.5]
142
173
 
143
174
  * Fixed backward compatibility issue [#276](https://github.com/railsware/js-routes/issues/276)
144
175
 
145
- ## v2.0.4
176
+ ## [2.0.4]
146
177
 
147
178
  * Fixed backward compatibility issue [#275](https://github.com/railsware/js-routes/issues/275)
148
179
 
149
- ## v2.0.3
180
+ ## [2.0.3]
150
181
 
151
182
  * Fixed backward compatibility issue [#275](https://github.com/railsware/js-routes/issues/275)
152
183
 
153
- ## v2.0.2
184
+ ## [2.0.2]
154
185
 
155
186
  * Fixed backward compatibility issue [#274](https://github.com/railsware/js-routes/issues/274)
156
187
 
157
- ## v2.0.1
188
+ ## [2.0.1]
158
189
 
159
190
  * Fixed backward compatibility issue [#272](https://github.com/railsware/js-routes/issues/272)
160
191
 
161
- ## v2.0.0
192
+ ## [2.0.0]
162
193
 
163
194
  Version 2.0 has some breaking changes.
164
195
  See [UPGRADE TO 2.0](./VERSION_2_UPGRADE.md) for guidance.
data/Readme.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  [![CI](https://github.com/railsware/js-routes/actions/workflows/ci.yml/badge.svg)](https://github.com/railsware/js-routes/actions/workflows/ci.yml)
4
4
 
5
+ <img src="/logo.webp" alt="Logo" width="200" height="200">
6
+
5
7
  Generates javascript file that defines all Rails named routes as javascript helpers:
6
8
 
7
9
  ``` js
@@ -353,10 +355,8 @@ Options to configure routes formatting. These options are available both in Ruby
353
355
 
354
356
  * `default_url_options` - default parameters used when generating URLs
355
357
  * Example: `{format: "json", trailing_slash: true, protocol: "https", subdomain: "api", host: "example.com", port: 3000}`
358
+ * See [`url_for` doc](https://api.rubyonrails.org/classes/ActionDispatch/Routing/UrlFor.html#method-i-url_for) for list of supported options
356
359
  * Default: `{}`
357
- * `prefix` - string that will prepend any generated URL. Usually used when app URL root includes a path component.
358
- * Example: `/rails-app`
359
- * Default: `Rails.application.config.relative_url_root`
360
360
  * `serializer` - a JS function that serializes a Javascript Hash object into URL paramters like `{a: 1, b: 2} => "a=1&b=2"`.
361
361
  * Default: `nil`. Uses built-in serializer compatible with Rails
362
362
  * Example: `jQuery.param` - use jQuery's serializer algorithm. You can attach serialize function from your favorite AJAX framework.
@@ -19,7 +19,7 @@ module JsRoutes
19
19
  sig { returns(FileName) }
20
20
  attr_accessor :file
21
21
  sig { returns(Prefix) }
22
- attr_accessor :prefix
22
+ attr_reader :prefix
23
23
  sig { returns(T::Boolean) }
24
24
  attr_accessor :url_links
25
25
  sig { returns(T::Boolean) }
@@ -91,6 +91,11 @@ module JsRoutes
91
91
  public_send(attribute)
92
92
  end
93
93
 
94
+ def prefix=(value)
95
+ JsRoutes::Utils.deprecator.warn("JsRoutes configuration prefix is deprecated in favor of default_url_options.script_name.")
96
+ @prefix = value
97
+ end
98
+
94
99
  sig { params(attributes: Options).returns(JsRoutes::Configuration) }
95
100
  def merge(attributes)
96
101
  clone.assign(attributes)
@@ -26,7 +26,7 @@ module JsRoutes
26
26
  # Ensure routes are loaded. If they're not, load them.
27
27
 
28
28
  application = T.unsafe(self.application)
29
- if named_routes.empty?
29
+ if routes_from(application).empty?
30
30
  if application.is_a?(Rails::Application)
31
31
  if Rails.version >= "8.0.0"
32
32
  T.unsafe(application).reload_routes_unless_loaded
@@ -135,9 +135,9 @@ module JsRoutes
135
135
  JsRoutes.json(value)
136
136
  end
137
137
 
138
- sig { returns(T::Hash[Symbol, JourneyRoute]) }
139
- def named_routes
140
- T.unsafe(application).routes.named_routes.to_h
138
+ sig {params(application: Application).returns(T::Array[JourneyRoute])}
139
+ def routes_from(application)
140
+ T.unsafe(application).routes.named_routes.to_h.values.sort_by(&:name)
141
141
  end
142
142
 
143
143
  sig { returns(String) }
@@ -186,7 +186,7 @@ export {};
186
186
 
187
187
  sig { returns(T::Array[StringArray]) }
188
188
  def routes_list
189
- named_routes.sort_by(&:first).flat_map do |_, route|
189
+ routes_from(application).flat_map do |route|
190
190
  route_helpers_if_match(route) + mounted_app_routes(route)
191
191
  end
192
192
  end
@@ -196,7 +196,7 @@ export {};
196
196
  rails_engine_app = T.unsafe(app_from_route(route))
197
197
  if rails_engine_app.is_a?(Class) &&
198
198
  rails_engine_app < Rails::Engine && !route.path.anchored
199
- T.unsafe(rails_engine_app).routes.named_routes.flat_map do |_, engine_route|
199
+ routes_from(rails_engine_app).flat_map do |engine_route|
200
200
  route_helpers_if_match(engine_route, route)
201
201
  end
202
202
  else
@@ -13,6 +13,15 @@ module JsRoutes
13
13
  nil
14
14
  end
15
15
  end
16
+
17
+ sig { returns(T.untyped) }
18
+ def self.deprecator
19
+ if defined?(Rails) && Rails.version >= "7.1.0"
20
+ Rails.deprecator
21
+ else
22
+ ActiveSupport::Deprecation
23
+ end
24
+ end
16
25
  end
17
26
 
18
27
  end
@@ -1,4 +1,4 @@
1
1
  # typed: strict
2
2
  module JsRoutes
3
- VERSION = "2.3.3"
3
+ VERSION = "2.3.5"
4
4
  end
data/lib/js_routes.rb CHANGED
@@ -37,8 +37,11 @@ module JsRoutes
37
37
 
38
38
  sig { params(file_name: FileName, typed: T::Boolean, opts: T.untyped).void }
39
39
  def generate!(file_name = configuration.file, typed: false, **opts)
40
- Instance.new(file: file_name, **opts).generate!
41
- definitions!(file_name, **opts) if typed
40
+ instance = Instance.new(file: file_name, **opts)
41
+ instance.generate!
42
+ if typed && instance.configuration.modern?
43
+ definitions!(file_name, **opts)
44
+ end
42
45
  end
43
46
 
44
47
  sig { params(file_name: FileName, opts: T.untyped).void }
data/lib/routes.d.ts CHANGED
@@ -2,7 +2,7 @@ declare type Optional<T> = {
2
2
  [P in keyof T]?: T[P] | null;
3
3
  };
4
4
  declare type Collection<T> = Record<string, T>;
5
- declare type BaseRouteParameter = string | boolean | Date | number;
5
+ declare type BaseRouteParameter = string | boolean | Date | number | bigint;
6
6
  declare type MethodRouteParameter = BaseRouteParameter | (() => BaseRouteParameter);
7
7
  declare type ModelRouteParameter = {
8
8
  id: MethodRouteParameter;
@@ -50,6 +50,7 @@ declare type KeywordUrlOptions = Optional<{
50
50
  port: string | number;
51
51
  anchor: string;
52
52
  trailing_slash: boolean;
53
+ script_name: string;
53
54
  params: RouteParameters;
54
55
  }>;
55
56
  declare type RouteOptions = KeywordUrlOptions & RouteParameters;
data/lib/routes.js CHANGED
@@ -110,6 +110,7 @@ RubyVariables.WRAPPER(
110
110
  "host",
111
111
  "port",
112
112
  "protocol",
113
+ "script_name",
113
114
  ];
114
115
  class UtilsClass {
115
116
  constructor() {
@@ -275,21 +276,29 @@ RubyVariables.WRAPPER(
275
276
  }
276
277
  build_route(parts, required_params, default_options, route, absolute, args) {
277
278
  const { keyword_parameters, query_parameters } = this.partition_parameters(parts, required_params, default_options, args);
279
+ let { trailing_slash, anchor, script_name } = keyword_parameters;
278
280
  const missing_params = required_params.filter((param) => !hasProp(query_parameters, param) ||
279
281
  this.is_nullable(query_parameters[param]));
280
282
  if (missing_params.length) {
281
283
  throw new ParametersMissing(...missing_params);
282
284
  }
283
285
  let result = this.get_prefix() + this.visit(route, query_parameters);
284
- if (keyword_parameters.trailing_slash) {
286
+ if (trailing_slash) {
285
287
  result = result.replace(/(.*?)[/]?$/, "$1/");
286
288
  }
287
289
  const url_params = this.serialize(query_parameters);
288
290
  if (url_params.length) {
289
291
  result += "?" + url_params;
290
292
  }
291
- if (keyword_parameters.anchor) {
292
- result += "#" + keyword_parameters.anchor;
293
+ if (anchor) {
294
+ result += "#" + anchor;
295
+ }
296
+ if (script_name) {
297
+ const last_index = script_name.length - 1;
298
+ if (script_name[last_index] == "/" && result[0] == "/") {
299
+ script_name = script_name.slice(0, last_index);
300
+ }
301
+ result = script_name + result;
293
302
  }
294
303
  if (absolute) {
295
304
  result = this.route_url(keyword_parameters) + result;
@@ -481,6 +490,9 @@ RubyVariables.WRAPPER(
481
490
  return ReservedOptions.includes(key);
482
491
  }
483
492
  configure(new_config) {
493
+ if (new_config.prefix) {
494
+ console.warn("JsRoutes configuration prefix option is deprecated in favor of default_url_options.script_name.");
495
+ }
484
496
  this.configuration = { ...this.configuration, ...new_config };
485
497
  return this.configuration;
486
498
  }
data/lib/routes.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  type Optional<T> = { [P in keyof T]?: T[P] | null };
2
2
  type Collection<T> = Record<string, T>;
3
3
 
4
- type BaseRouteParameter = string | boolean | Date | number;
4
+ type BaseRouteParameter = string | boolean | Date | number | bigint;
5
5
  type MethodRouteParameter = BaseRouteParameter | (() => BaseRouteParameter);
6
6
  type ModelRouteParameter =
7
7
  | { id: MethodRouteParameter }
@@ -66,6 +66,7 @@ type KeywordUrlOptions = Optional<{
66
66
  port: string | number;
67
67
  anchor: string;
68
68
  trailing_slash: boolean;
69
+ script_name: string;
69
70
  params: RouteParameters;
70
71
  }>;
71
72
 
@@ -230,7 +231,9 @@ RubyVariables.WRAPPER(
230
231
  "host",
231
232
  "port",
232
233
  "protocol",
234
+ "script_name",
233
235
  ] as const;
236
+
234
237
  type ReservedOption = (typeof ReservedOptions)[any];
235
238
 
236
239
  class UtilsClass {
@@ -433,6 +436,8 @@ RubyVariables.WRAPPER(
433
436
  default_options,
434
437
  args
435
438
  );
439
+
440
+ let { trailing_slash, anchor, script_name } = keyword_parameters;
436
441
  const missing_params = required_params.filter(
437
442
  (param) =>
438
443
  !hasProp(query_parameters, param) ||
@@ -442,15 +447,22 @@ RubyVariables.WRAPPER(
442
447
  throw new ParametersMissing(...missing_params);
443
448
  }
444
449
  let result = this.get_prefix() + this.visit(route, query_parameters);
445
- if (keyword_parameters.trailing_slash) {
450
+ if (trailing_slash) {
446
451
  result = result.replace(/(.*?)[/]?$/, "$1/");
447
452
  }
448
453
  const url_params = this.serialize(query_parameters);
449
454
  if (url_params.length) {
450
455
  result += "?" + url_params;
451
456
  }
452
- if (keyword_parameters.anchor) {
453
- result += "#" + keyword_parameters.anchor;
457
+ if (anchor) {
458
+ result += "#" + anchor;
459
+ }
460
+ if (script_name) {
461
+ const last_index = script_name.length - 1;
462
+ if (script_name[last_index] == "/" && result[0] == "/") {
463
+ script_name = script_name.slice(0, last_index);
464
+ }
465
+ result = script_name + result;
454
466
  }
455
467
  if (absolute) {
456
468
  result = this.route_url(keyword_parameters) + result;
@@ -696,6 +708,11 @@ RubyVariables.WRAPPER(
696
708
  }
697
709
 
698
710
  configure(new_config: Partial<Configuration>): Configuration {
711
+ if (new_config.prefix) {
712
+ console.warn(
713
+ "JsRoutes configuration prefix option is deprecated in favor of default_url_options.script_name."
714
+ );
715
+ }
699
716
  this.configuration = { ...this.configuration, ...new_config };
700
717
  return this.configuration;
701
718
  }
@@ -8,7 +8,7 @@ namespace :js do
8
8
  namespace :routes do
9
9
  desc "Make a js file with all rails route URL helpers and typescript definitions for them"
10
10
  task typescript: "js:routes" do
11
- ActiveSupport::Deprecation.warn(
11
+ JsRoutes::Utils.deprecator.warn(
12
12
  "`js:routes:typescript` task is deprecated. Please use `js:routes` instead."
13
13
  )
14
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js-routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.3
4
+ version: 2.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdan Gusiev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-04 00:00:00.000000000 Z
11
+ date: 2025-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -144,9 +144,9 @@ licenses:
144
144
  - MIT
145
145
  metadata:
146
146
  bug_tracker_uri: https://github.com/railsware/js-routes/issues
147
- changelog_uri: https://github.com/railsware/js-routes/blob/v2.3.3/CHANGELOG.md
147
+ changelog_uri: https://github.com/railsware/js-routes/blob/v2.3.5/CHANGELOG.md
148
148
  documentation_uri: https://github.com/railsware/js-routes
149
- source_code_uri: https://github.com/railsware/js-routes/tree/v2.3.3/activerecord
149
+ source_code_uri: https://github.com/railsware/js-routes/tree/v2.3.5/activerecord
150
150
  rubygems_mfa_required: 'true'
151
151
  github_repo: ssh://github.com/railsware/js-routes
152
152
  post_install_message:
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  - !ruby/object:Gem::Version
165
165
  version: '0'
166
166
  requirements: []
167
- rubygems_version: 3.5.14
167
+ rubygems_version: 3.5.11
168
168
  signing_key:
169
169
  specification_version: 4
170
170
  summary: Brings Rails named routes to javascript