js_from_routes 3.0.1 → 3.0.2

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: d5be06720d112b28716ce584184abba22d15b44917d3032bc6bb926781a028a9
4
- data.tar.gz: 6bc27e4de388e7e1420b598ca53f51bcf5d04feea736ad491c8de3c0195516da
3
+ metadata.gz: 2b4a7e4009c35ed9b21a6ea1010d157faaed01d21143086a7573d87ae1a21aae
4
+ data.tar.gz: 67db6af0cbae2656a450649384c86f19a9c890fd58e84ea99fa7f03299866dd0
5
5
  SHA512:
6
- metadata.gz: 23722e80af9943f268a65ae51c93856a70b16fc192146b3f83bb6d2fb81ab1c3c62671912380348f0398e26548b3798654797d78c575aa7839f90c29c1433b83
7
- data.tar.gz: dd3702554cb2f815d2efa3f4733b83698e46efd0c05ef12999a39e7e026f1c1cb6b871dac3e1e6e4b46df94833cc64157c6ea49cc5e589fa5d4d75e7d60bc393
6
+ metadata.gz: 4b519fba61999909979dd313995733497c9536cb5fda7bdf0c0585e133ab718f4b733c46014d2b3b039fa81b7b70d6b8939e3e155656613dafc0577f64970041
7
+ data.tar.gz: 570cc1c4a497adf344b02e52c8c1da005877830be355638f85be7c9fe664094b03ee9d62c66a5295db1dfcd5d47993928581c0949f239b90f041e0d85f51c619
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## [3.0.2](https://github.com/ElMassimo/js_from_routes/compare/js_from_routes@3.0.1...js_from_routes@3.0.2) (2024-09-25)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * remove references to OpenStruct ([#49](https://github.com/ElMassimo/js_from_routes/issues/49)) ([6c0d8de](https://github.com/ElMassimo/js_from_routes/commit/6c0d8ded2bf82ccc2f8f35508dc256c3b301069a)), closes [#47](https://github.com/ElMassimo/js_from_routes/issues/47)
7
+
8
+
9
+
1
10
  ## [3.0.1](https://github.com/ElMassimo/js_from_routes/compare/js_from_routes@3.0.0...js_from_routes@3.0.1) (2023-10-09)
2
11
 
3
12
 
@@ -126,10 +126,29 @@ module JsFromRoutes
126
126
  end
127
127
  end
128
128
 
129
+ class Configuration
130
+ attr_accessor :all_helpers_file, :client_library, :export_if, :file_suffix,
131
+ :helper_mappings, :output_folder, :template_path,
132
+ :template_all_path, :template_index_path
133
+
134
+ def initialize(root)
135
+ dir = %w[frontend packs javascript assets].find { |dir| root.join("app", dir).exist? }
136
+ @all_helpers_file = true
137
+ @client_library = "@js-from-routes/client"
138
+ @export_if = ->(route) { route.defaults.fetch(:export, nil) }
139
+ @file_suffix = "Api.js"
140
+ @helper_mappings = {}
141
+ @output_folder = root.join("app", dir, "api")
142
+ @template_path = File.expand_path("template.js.erb", __dir__)
143
+ @template_all_path = File.expand_path("template_all.js.erb", __dir__)
144
+ @template_index_path = File.expand_path("template_index.js.erb", __dir__)
145
+ end
146
+ end
147
+
129
148
  class << self
130
149
  # Public: Configuration of the code generator.
131
150
  def config
132
- @config ||= OpenStruct.new(default_config(::Rails.root || Pathname.new(Dir.pwd)))
151
+ @config ||= Configuration.new(::Rails.root || Pathname.new(Dir.pwd))
133
152
  yield(@config) if block_given?
134
153
  @config
135
154
  end
@@ -156,7 +175,7 @@ module JsFromRoutes
156
175
  return unless config.all_helpers_file && !routes.empty?
157
176
 
158
177
  preferred_extension = File.extname(config.file_suffix)
159
- index_file = config.all_helpers_file == true ? "index#{preferred_extension}" : config.all_helpers_file
178
+ index_file = (config.all_helpers_file == true) ? "index#{preferred_extension}" : config.all_helpers_file
160
179
 
161
180
  Template.new(config.template_all_path).write_if_changed OpenStruct.new(
162
181
  cache_key: routes.map(&:import_filename).join + File.read(config.template_all_path),
@@ -169,21 +188,6 @@ module JsFromRoutes
169
188
  )
170
189
  end
171
190
 
172
- def default_config(root)
173
- dir = %w[frontend packs javascript assets].find { |dir| root.join("app", dir).exist? }
174
- {
175
- all_helpers_file: true,
176
- client_library: "@js-from-routes/client",
177
- export_if: ->(route) { route.defaults.fetch(:export, nil) },
178
- file_suffix: "Api.js",
179
- helper_mappings: {},
180
- output_folder: root.join("app", dir, "api"),
181
- template_path: File.expand_path("template.js.erb", __dir__),
182
- template_all_path: File.expand_path("template_all.js.erb", __dir__),
183
- template_index_path: File.expand_path("template_index.js.erb", __dir__),
184
- }
185
- end
186
-
187
191
  # Internal: Returns exported routes grouped by controller name.
188
192
  def exported_routes_by_controller(routes)
189
193
  routes.select { |route|
@@ -30,7 +30,7 @@ class JsFromRoutes::Railtie < Rails::Railtie
30
30
  initializer "js_from_routes.required_defaults" do |app|
31
31
  ActionDispatch::Journey::Route.prepend Module.new {
32
32
  def required_default?(key)
33
- key == :export ? false : super
33
+ (key == :export) ? false : super
34
34
  end
35
35
  }
36
36
  end
@@ -4,5 +4,5 @@
4
4
  # Generates one file per controller, and one function per route.
5
5
  module JsFromRoutes
6
6
  # Public: This library adheres to semantic versioning.
7
- VERSION = "3.0.1"
7
+ VERSION = "3.0.2"
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js_from_routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Máximo Mussini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-09 00:00:00.000000000 Z
11
+ date: 2024-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  requirements: []
170
- rubygems_version: 3.4.10
170
+ rubygems_version: 3.5.16
171
171
  signing_key:
172
172
  specification_version: 4
173
173
  summary: Generate JS automatically from Rails routes.