view_component 2.50.0 → 2.69.0

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.

Potentially problematic release.


This version of view_component might be problematic. Click here for more details.

Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/app/assets/vendor/prism.css +3 -195
  4. data/app/assets/vendor/prism.min.js +11 -11
  5. data/app/controllers/concerns/view_component/preview_actions.rb +97 -0
  6. data/app/controllers/view_components_controller.rb +1 -87
  7. data/app/helpers/preview_helper.rb +5 -5
  8. data/app/views/view_components/preview.html.erb +2 -2
  9. data/docs/CHANGELOG.md +427 -1
  10. data/lib/rails/generators/abstract_generator.rb +7 -9
  11. data/lib/rails/generators/component/component_generator.rb +5 -4
  12. data/lib/rails/generators/locale/component_generator.rb +1 -1
  13. data/lib/rails/generators/preview/component_generator.rb +1 -1
  14. data/lib/view_component/base.rb +152 -51
  15. data/lib/view_component/collection.rb +9 -2
  16. data/lib/view_component/compiler.rb +39 -18
  17. data/lib/view_component/config.rb +159 -0
  18. data/lib/view_component/content_areas.rb +1 -1
  19. data/lib/view_component/docs_builder_component.rb +1 -1
  20. data/lib/view_component/engine.rb +16 -30
  21. data/lib/view_component/polymorphic_slots.rb +28 -1
  22. data/lib/view_component/preview.rb +12 -9
  23. data/lib/view_component/render_component_helper.rb +1 -0
  24. data/lib/view_component/render_component_to_string_helper.rb +1 -1
  25. data/lib/view_component/render_to_string_monkey_patch.rb +1 -1
  26. data/lib/view_component/rendering_component_helper.rb +1 -1
  27. data/lib/view_component/rendering_monkey_patch.rb +1 -1
  28. data/lib/view_component/slot_v2.rb +4 -10
  29. data/lib/view_component/slotable.rb +5 -6
  30. data/lib/view_component/slotable_v2.rb +69 -21
  31. data/lib/view_component/test_helpers.rb +80 -8
  32. data/lib/view_component/translatable.rb +13 -14
  33. data/lib/view_component/version.rb +1 -1
  34. data/lib/view_component.rb +1 -0
  35. metadata +47 -18
  36. data/lib/view_component/previewable.rb +0 -62
@@ -1,5 +1,5 @@
1
1
  <% if @render_args[:component] %>
2
- <% if ViewComponent::Base.render_monkey_patch_enabled || Rails.version.to_f >= 6.1 %>
2
+ <% if ViewComponent::Base.config.render_monkey_patch_enabled || Rails.version.to_f >= 6.1 %>
3
3
  <%= render(@render_args[:component], @render_args[:args], &@render_args[:block]) %>
4
4
  <% else %>
5
5
  <%= render_component(@render_args[:component], &@render_args[:block]) %>
@@ -8,6 +8,6 @@
8
8
  <%= render template: @render_args[:template], locals: @render_args[:locals] || {} %>
9
9
  <% end %>
10
10
 
11
- <% if ViewComponent::Base.show_previews_source %>
11
+ <% if ViewComponent::Base.config.show_previews_source %>
12
12
  <%= preview_source %>
13
13
  <% end %>
data/docs/CHANGELOG.md CHANGED
@@ -3,10 +3,432 @@ layout: default
3
3
  title: Changelog
4
4
  ---
5
5
 
6
+ <!-- Add unreleased changes under the "main" heading. -->
7
+
6
8
  # Changelog
7
9
 
10
+ * Add missing `require` to fix `pvc` build.
11
+
12
+ *Joel Hawksley*
13
+
14
+ * Add `config.view_component.use_consistent_rendering_lifecycle` to ensure side-effects in `content` are consistently evaluated before components are rendered. This change effectively means that `content` is evaluated for every component render where `render?` returns true. As a result, code that's passed to a component via a block/content will now always be evaluated, before `#call`, which can reveal bugs in existing components. This configuration option defaults to `false` but will be enabled in 3.0 and the old behavior will be removed.
15
+
16
+ *Blake Williams*
17
+
8
18
  ## main
9
19
 
20
+ ## 2.69.0
21
+
22
+ * Update Prism to version 1.28.0.
23
+
24
+ *Thomas Hutterer*
25
+
26
+ * Corrects the deprecation warning for named slots to show the file and line where the slot is called.
27
+
28
+ *River Bailey*
29
+
30
+ ## 2.68.0
31
+
32
+ * Update `gemspec` author to be ViewComponent team.
33
+
34
+ *Joel Hawksley*
35
+
36
+ * Fix bug where `ViewComponent::Compiler` wasn't required.
37
+
38
+ *Joel Hawksley*
39
+
40
+ ## 2.67.0
41
+
42
+ * Use ViewComponent::Base.config as the internal endpoint for config.
43
+
44
+ *Simon Fish*
45
+
46
+ * Fix bug where `#with_request_url`, when used with query string, set the incorrect `request.path` and `request.fullpath`.
47
+
48
+ *Franz Liedke*
49
+
50
+ * Add link to [ViewComponentAttributes](https://github.com/amba-Health/view_component_attributes) in Resources section of docs.
51
+
52
+ *Romaric Pascal*
53
+
54
+ * `render_preview` test helper is available by default. It is no longer necessary to include `ViewComponent::RenderPreviewHelper`.
55
+
56
+ *Joel Hawksley*
57
+
58
+ ## 2.66.0
59
+
60
+ * Add missing `generate.sidecar`, `generate.stimulus_controller`, `generate.locale`, `generate.distinct_locale_files`, `generate.preview` config options to `config.view_component`.
61
+
62
+ *Simon Fish*
63
+
64
+ ## 2.65.0
65
+
66
+ * Raise `ArgumentError` when conflicting Slots are defined.
67
+
68
+ Before this change it was possible to define Slots with conflicting names, for example:
69
+
70
+ ```ruby
71
+ class MyComponent < ViewComponent::Base
72
+ renders_one :item
73
+ renders_many :items
74
+ end
75
+ ```
76
+
77
+ *Joel Hawksley*
78
+
79
+ ## 2.64.0
80
+
81
+ * Add `warn_on_deprecated_slot_setter` flag to opt-in to deprecation warning.
82
+
83
+ In [v2.54.0](https://viewcomponent.org/CHANGELOG.html#2540), the Slots API was updated to require the `with_*` prefix for setting Slots. The non-`with_*` setters will be deprecated in a coming version and removed in `v3.0`.
84
+
85
+ To enable the coming deprecation warning, add `warn_on_deprecated_slot_setter`:
86
+
87
+ ```ruby
88
+ class DeprecatedSlotsSetterComponent < ViewComponent::Base
89
+ warn_on_deprecated_slot_setter
90
+ end
91
+ ```
92
+
93
+ *Joel Hawksley*
94
+
95
+ * Add [`m`](https://rubygems.org/gems/m) to development environment.
96
+
97
+ *Joel Hawksley*
98
+
99
+ * Fix potential deadlock scenario in the compiler's development mode.
100
+
101
+ *Blake Williams*
102
+
103
+ ## 2.63.0
104
+
105
+ * Fixed typo in `renders_many` documentation.
106
+
107
+ *Graham Rogers*
108
+
109
+ * Add documentation about working with `turbo-rails`.
110
+
111
+ *Matheus Poli Camilo*
112
+
113
+ * Fix issue causing helper methods to not be available in nested components when the render monkey patch is disabled and `render_component` is used.
114
+
115
+ *Daniel Scheffknecht*
116
+
117
+ ## 2.62.0
118
+
119
+ * Remove the experimental global output buffer feature.
120
+ * Restore functionality that used to attempt to compile templates on each call to `#render_in`.
121
+ * Un-pin `rails` `main` dependency.
122
+
123
+ *Cameron Dutro*
124
+
125
+ * Add blank space between "in" and "ViewComponent" in a deprecation warning.
126
+
127
+ *Vikram Dighe*
128
+
129
+ * Add HappyCo to list of companies using ViewComponent.
130
+
131
+ *Josh Clayton*
132
+
133
+ * Add predicate method support to polymorphic slots.
134
+
135
+ *Graham Rogers*
136
+
137
+ ## 2.61.1
138
+
139
+ * Revert `Expose Capybara DSL methods directly inside tests.` This change unintentionally broke other Capybara methods and thus introduced a regression. We aren't confident that we can fail forward so we have decided to revert this change.
140
+
141
+ *Joel Hawksley*, *Blake Williams*
142
+
143
+ * Revert change making content evaluation consistent.
144
+
145
+ *Blake Williams*
146
+
147
+ * Pin `rails` `main` dependency due to incompatibility with Global Output Buffer.
148
+
149
+ *Joel Hawksley*
150
+
151
+ ## 2.61.0
152
+
153
+ * Ensure side-effects in `content` are consistently evaluated before components are rendered. This change effectively means that `content` is evaluated for every component render where `render?` returns true. As a result, code that is passed to a component via a block/content will now always be evaluated, before `#call`, which can reveal bugs in existing components.
154
+
155
+ *Blake Williams*
156
+
157
+ ## 2.60.0
158
+
159
+ * Add support for `render_preview` in RSpec tests.
160
+
161
+ *Thomas Hutterer*
162
+
163
+ ## 2.59.0
164
+
165
+ * Expose Capybara DSL methods directly inside tests.
166
+
167
+ The following Capybara methods are now available directly without having to use the `page` method:
168
+
169
+ * [`all`](https://rubydoc.info/github/teamcapybara/capybara/Capybara%2FNode%2FFinders:all)
170
+ * [`first`](https://rubydoc.info/github/teamcapybara/capybara/Capybara%2FNode%2FFinders:first)
171
+ * [`text`](https://rubydoc.info/github/teamcapybara/capybara/Capybara%2FNode%2FSimple:text)
172
+ * [`find`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FFinders:find)
173
+ * [`find_all`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FFinders:find_all)
174
+ * [`find_button`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FFinders:find_button)
175
+ * [`find_by_id`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FFinders:find_by_id)
176
+ * [`find_field`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FFinders:find_field)
177
+ * [`find_link`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FFinders:find_link)
178
+ * [`has_content?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_content%3F)
179
+ * [`has_text?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_text%3F)
180
+ * [`has_css?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_css%3F)
181
+ * [`has_no_content?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_content%3F)
182
+ * [`has_no_text?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_text%3F)
183
+ * [`has_no_css?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_css%3F)
184
+ * [`has_no_xpath?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_xpath%3F)
185
+ * [`has_xpath?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_xpath%3F)
186
+ * [`has_link?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_link%3F)
187
+ * [`has_no_link?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_link%3F)
188
+ * [`has_button?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_button%3F)
189
+ * [`has_no_button?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_button%3F)
190
+ * [`has_field?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_field%3F)
191
+ * [`has_no_field?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_field%3F)
192
+ * [`has_checked_field?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_checked_field%3F)
193
+ * [`has_unchecked_field?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_unchecked_field%3F)
194
+ * [`has_no_table?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_table%3F)
195
+ * [`has_table?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_table%3F)
196
+ * [`has_select?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_select%3F)
197
+ * [`has_no_select?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_select%3F)
198
+ * [`has_selector?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_selector%3F)
199
+ * [`has_no_selector?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_selector%3F)
200
+ * [`has_no_checked_field?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_checked_field%3F)
201
+ * [`has_no_unchecked_field?`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FNode%2FMatchers:has_no_unchecked_field%3F)
202
+
203
+ * Add support for `within*` Capybara DLS methods:
204
+
205
+ * [`within`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FSession:within)
206
+ * [`within_element`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FSession:within)
207
+ * [`within_fieldset`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FSession:within_fieldset)
208
+ * [`within_table`](https://rubydoc.info/github/teamcapybara/capybara/master/Capybara%2FSession:within_table)
209
+
210
+ *Jacob Carlborg*
211
+
212
+ ## 2.58.0
213
+
214
+ * Switch to `standardrb`.
215
+
216
+ *Joel Hawksley*
217
+
218
+ * Add BootrAils article to resources.
219
+
220
+ *Joel Hawksley*
221
+
222
+ * Add @boardfish and @spone as maintainers.
223
+
224
+ *Joel Hawksley*, *Cameron Dutro*, *Blake Williams*
225
+
226
+ * Re-compile updated, inherited templates when class caching is disabled.
227
+
228
+ *Patrick Arnett*
229
+
230
+ * Add the latest version to the docs index.
231
+ * Improve the docs: add the versions various features were introduced in.
232
+
233
+ *Hans Lemuet*
234
+
235
+ * Update docs to reflect lack of block content support in controllers.
236
+
237
+ *Joel Hawksley*
238
+
239
+ * Prevent adding duplicates to `autoload_paths`.
240
+
241
+ *Thomas Hutterer*
242
+
243
+ * Add FreeAgent to list of companies using ViewComponent.
244
+
245
+ *Simon Fish*
246
+
247
+ * Include polymorphic slots in `ViewComponent::Base` by default.
248
+
249
+ *Cameron Dutro*
250
+
251
+ * Add per-component config option for stripping newlines from templates before compilation.
252
+
253
+ *Cameron Dutro*
254
+
255
+ * Add link to article by Matouš Borák.
256
+
257
+ *Joel Hawksley*
258
+
259
+ ## 2.57.1
260
+
261
+ * Fix issue causing `NoMethodError`s when calling helper methods from components rendered as part of a collection.
262
+ * Fix syntax error in the ERB example in the polymorphic slots docs.
263
+
264
+ *Cameron Dutro*
265
+
266
+ ## 2.57.0
267
+
268
+ * Add missing `require` for `Translatable` module in `Base`.
269
+
270
+ *Hans Lemuet*
271
+
272
+ * Allow anything that responds to `#render_in` to be rendered in the parent component's view context.
273
+
274
+ *Cameron Dutro*
275
+
276
+ * Fix script/release so it honors semver.
277
+
278
+ *Cameron Dutro*
279
+
280
+ ## 2.56.2
281
+
282
+ * Restore removed `rendered_component`, marking it for deprecation in v3.0.0.
283
+
284
+ *Tyson Gach*, *Richard Macklin*, *Joel Hawksley*
285
+
286
+ ## 2.56.1
287
+
288
+ * Rename private accessor `rendered_component` to `rendered_content`.
289
+
290
+ *Yoshiyuki Hirano*, *Simon Dawson*
291
+
292
+ ## 2.56.0
293
+
294
+ * Introduce experimental `render_preview` test helper. Note: `@rendered_component` in `TestHelpers` has been renamed to `@rendered_content`.
295
+
296
+ *Joel Hawksley*
297
+
298
+ * Move framework tests into sandbox application.
299
+
300
+ *Joel Hawksley*
301
+
302
+ * Add G2 to list of companies that use ViewComponent.
303
+
304
+ *Jack Shuff*
305
+
306
+ * Add Within3 to list of companies that use ViewComponent.
307
+
308
+ *Drew Bragg*
309
+
310
+ * Add Mission Met to list of companies that use ViewComponent.
311
+
312
+ *Nick Smith*
313
+
314
+ * Fix `#with_request_url` test helper not parsing nested query parameters into nested hashes.
315
+
316
+ *Richard Marbach*
317
+
318
+ ## 2.55.0
319
+
320
+ * Add `render_parent` convenience method to avoid confusion between `<%= super %>` and `<% super %>` in template code.
321
+
322
+ *Cameron Dutro*
323
+
324
+ * Add note about discouraging inheritance.
325
+
326
+ *Joel Hawksley*
327
+
328
+ * Clean up grammar in documentation.
329
+
330
+ *Joel Hawksley*
331
+
332
+ * The ViewComponent team at GitHub is hiring! We're looking for a Rails engineer with accessibility experience: [https://boards.greenhouse.io/github/jobs/4020166](https://boards.greenhouse.io/github/jobs/4020166). Reach out to joelhawksley@github.com with any questions!
333
+
334
+ * The ViewComponent team is hosting a happy hour at RailsConf. Join us for snacks, drinks, and stickers: [https://www.eventbrite.com/e/viewcomponent-happy-hour-tickets-304168585427](https://www.eventbrite.com/e/viewcomponent-happy-hour-tickets-304168585427)
335
+
336
+ ## 2.54.1
337
+
338
+ * Update docs dependencies.
339
+
340
+ *Joel Hawksley*
341
+
342
+ * Resolve warning in slots API.
343
+ * Raise in the test environment when ViewComponent code emits a warning.
344
+
345
+ *Blake Williams*
346
+
347
+ ## 2.54.0
348
+
349
+ * Add `with_*` slot API for defining slots. Note: we plan to deprecate the non `with_*` API for slots in an upcoming release.
350
+
351
+ *Blake Williams*
352
+
353
+ * Add QuickNode to list of companies that use ViewComponent.
354
+
355
+ *Luc Castera*
356
+
357
+ * Include the `Translatable` module by default.
358
+
359
+ *Elia Schito*
360
+
361
+ * Update docs dependencies.
362
+
363
+ *Joel Hawksley*
364
+
365
+ ## 2.53.0
366
+
367
+ * Add support for relative I18n scopes to translations.
368
+
369
+ *Elia Schito*
370
+
371
+ * Update CI configuration to use latest Rails 7.0.
372
+
373
+ *Hans Lemuet*
374
+
375
+ * Document how to use blocks with lambda slots.
376
+
377
+ *Sam Partington*
378
+
379
+ * Skip Rails 5.2 in local test environment if using incompatible Ruby version.
380
+
381
+ *Cameron Dutro*, *Blake Williams*, *Joel Hawksley*
382
+
383
+ * Improve landing page documentation.
384
+
385
+ *Jason Swett*
386
+
387
+ * Add Bearer to list of companies that use ViewComponent.
388
+
389
+ *Yaroslav Shmarov*
390
+
391
+ * Add articles to resources page.
392
+
393
+ *Joel Hawksley*
394
+
395
+ * Enable rendering arbitrary block contents in the view context in tests.
396
+
397
+ *Cameron Dutro*
398
+
399
+ ## 2.52.0
400
+
401
+ * Add ADR for separate slot getter/setter API.
402
+
403
+ *Blake Williams*
404
+
405
+ * Add the option to use a "global" output buffer so `form_for` and friends can be used with view components.
406
+
407
+ *Cameron Dutro*, *Blake Williams*
408
+
409
+ * Fix fragment caching in partials when global output buffer is enabled.
410
+ * Fix template inheritance when eager loading is disabled.
411
+
412
+ *Cameron Dutro*
413
+
414
+ ## 2.51.0
415
+
416
+ * Update the docs only when releasing a new version.
417
+
418
+ *Hans Lemuet*
419
+
420
+ * Alphabetize companies using ViewComponent and add Brightline to the list.
421
+
422
+ *Jack Schuss*
423
+
424
+ * Add CMYK value for ViewComponent Red color on logo page.
425
+
426
+ *Dylan Smith*
427
+
428
+ * Improve performance by moving template compilation from `#render_in` to `#render_template_for`.
429
+
430
+ *Cameron Dutro*
431
+
10
432
  ## 2.50.0
11
433
 
12
434
  * Add tests for `layout` usage when rendering via controller.
@@ -91,10 +513,14 @@ title: Changelog
91
513
 
92
514
  *Joel Hawksley*
93
515
 
94
- * Add Ruby 3.1 and Rails 7.0 to CI
516
+ * Add Ruby 3.1 and Rails 7.0 to CI.
95
517
 
96
518
  *Peter Goldstein*
97
519
 
520
+ * Move preview logic to module for easier app integration.
521
+
522
+ *Sammy Henningsson*
523
+
98
524
  ## 2.48.0
99
525
 
100
526
  * Correct path in example test command in Contributing docs.
@@ -3,9 +3,7 @@
3
3
  module ViewComponent
4
4
  module AbstractGenerator
5
5
  def copy_view_file
6
- unless options["inline"]
7
- template "component.html.#{engine_name}", destination
8
- end
6
+ template "component.html.#{engine_name}", destination unless options["inline"]
9
7
  end
10
8
 
11
9
  private
@@ -31,20 +29,20 @@ module ViewComponent
31
29
  end
32
30
 
33
31
  def component_path
34
- ViewComponent::Base.view_component_path
32
+ ViewComponent::Base.config.view_component_path
35
33
  end
36
34
 
37
35
  def stimulus_controller
38
36
  if options["stimulus"]
39
- File.join(destination_directory, destination_file_name).
40
- sub("#{component_path}/", "").
41
- gsub("_", "-").
42
- gsub("/", "--")
37
+ File.join(destination_directory, destination_file_name)
38
+ .sub("#{component_path}/", "")
39
+ .tr("_", "-")
40
+ .gsub("/", "--")
43
41
  end
44
42
  end
45
43
 
46
44
  def sidecar?
47
- options["sidecar"] || ViewComponent::Base.generate.sidecar
45
+ options["sidecar"] || ViewComponent::Base.config.generate.sidecar
48
46
  end
49
47
  end
50
48
  end
@@ -13,11 +13,12 @@ module Rails
13
13
  check_class_collision suffix: "Component"
14
14
 
15
15
  class_option :inline, type: :boolean, default: false
16
- class_option :locale, type: :boolean, default: ViewComponent::Base.generate.locale
16
+ class_option :locale, type: :boolean, default: ViewComponent::Base.config.generate.locale
17
17
  class_option :parent, type: :string, desc: "The parent class for the generated component"
18
- class_option :preview, type: :boolean, default: ViewComponent::Base.generate.preview
18
+ class_option :preview, type: :boolean, default: ViewComponent::Base.config.generate.preview
19
19
  class_option :sidecar, type: :boolean, default: false
20
- class_option :stimulus, type: :boolean, default: ViewComponent::Base.generate.stimulus_controller
20
+ class_option :stimulus, type: :boolean,
21
+ default: ViewComponent::Base.config.generate.stimulus_controller
21
22
 
22
23
  def create_component_file
23
24
  template "component.rb", File.join(component_path, class_path, "#{file_name}_component.rb")
@@ -40,7 +41,7 @@ module Rails
40
41
  def parent_class
41
42
  return options[:parent] if options[:parent]
42
43
 
43
- ViewComponent::Base.component_parent_class || default_parent_class
44
+ ViewComponent::Base.config.component_parent_class || default_parent_class
44
45
  end
45
46
 
46
47
  def initialize_signature
@@ -12,7 +12,7 @@ module Locale
12
12
  class_option :sidecar, type: :boolean, default: false
13
13
 
14
14
  def create_locale_file
15
- if ViewComponent::Base.generate.distinct_locale_files
15
+ if ViewComponent::Base.config.generate.distinct_locale_files
16
16
  I18n.available_locales.each do |locale|
17
17
  create_file destination(locale), translations_hash([locale]).to_yaml
18
18
  end
@@ -9,7 +9,7 @@ module Preview
9
9
  check_class_collision suffix: "ComponentPreview"
10
10
 
11
11
  def create_preview_file
12
- preview_paths = Rails.application.config.view_component.preview_paths
12
+ preview_paths = ViewComponent::Base.config.preview_paths
13
13
  return if preview_paths.count > 1
14
14
 
15
15
  path_prefix = preview_paths.one? ? preview_paths.first : "test/components/previews"