js-routes 2.3.3 → 2.3.5

Sign up to get free protection for your applications and to get access to all the features.
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