view_component 2.44.0 → 2.45.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2542c18f4fbd3071c18fb27d8edb563021ad201fa5cc4d0c02fb8190918b6920
4
- data.tar.gz: 7c7fb2ef2a79ed3816655cd8f27a52248fe0181957487a9b0297968914034c9f
3
+ metadata.gz: a209f06f513d226dba5ddcfefe8c08d16f84da6d8664fd9a4f2f70fe1ef48d96
4
+ data.tar.gz: cc11c7e358b6fa3b07474a257202be93b0283c7c6189ce8d939770a805a28ef6
5
5
  SHA512:
6
- metadata.gz: 4e43d3b7398bd838b25e87a566ce82229e82343f64a9f70230b90d4eb2b0afdc8e0ffda355acd032877d0751082e3e4342ecd53955011de89ea1ce341c6b7a80
7
- data.tar.gz: 3d90591c1d4d3cbff9d8e4c7dd1f94015ddce95e62f8284586dda63da99311609c3558fd353f0cf3c6b8c58f4c9a0b18f0fa91e60aa2275e57284cb2e10bff4a
6
+ metadata.gz: 2420eadefc54d1045c432b7b53010281bd923b556b72d4ed924b49a0a88b1841800d6e04f25bb043913f5c648693d19ad56117e441c838e7eb09e0ab5cf21315
7
+ data.tar.gz: 4deb4c925810fcc2e3918e8735dd957003536e5533289d48caf69100dcb5ed58af6bb7af88fdc0cdf3c73e9905bb0222de18d9fd6cba65ca05e6bc3ed1f9964f
data/docs/CHANGELOG.md CHANGED
@@ -7,6 +7,44 @@ title: Changelog
7
7
 
8
8
  ## main
9
9
 
10
+ ## 2.45.0
11
+
12
+ * Remove internal APIs from API documentation, fix link to license.
13
+
14
+ *Joel Hawksley*
15
+
16
+ * Add @yhirano55 to triage team.
17
+
18
+ *Joel Hawksley*
19
+
20
+ * Correct a typo in the sample slots code.
21
+
22
+ *Simon Fish*
23
+
24
+ * Add note about `allowed_queries`.
25
+
26
+ *Joel Hawksley*
27
+
28
+ * Add `vale` content linter.
29
+
30
+ *Joel Hawksley*
31
+
32
+ * Remove `require "rails/generators/test_case"` in generator tests.
33
+
34
+ *Yoshiyuki Hirano*
35
+
36
+ * Suppress zeitwerk warning about circular require.
37
+
38
+ *Yoshiyuki Hirano*
39
+
40
+ * Move `test_unit_generator_test.rb` from `test/view_component/` to `test/generators/`.
41
+
42
+ *Yoshiyuki Hirano*
43
+
44
+ * Unify test code of `TestUnitGeneratorTest` with the other generators tests.
45
+
46
+ *Yoshiyuki Hirano*
47
+
10
48
  ## 2.44.0
11
49
 
12
50
  * Rename internal accessor to use private naming.
@@ -142,7 +180,7 @@ title: Changelog
142
180
 
143
181
  *Matthew Rider*
144
182
 
145
- * Fix bug where `with_collection_parameter` did not inherit from parent component.
183
+ * Fix bug where `with_collection_parameter` didn't inherit from parent component.
146
184
 
147
185
  *Will Drexler*, *Christian Campoli*
148
186
 
@@ -346,7 +384,7 @@ title: Changelog
346
384
 
347
385
  *Hans Lemuet*
348
386
 
349
- * Fix bug where ViewComponents did not work in ActionMailers.
387
+ * Fix bug where ViewComponents didn't work in ActionMailers.
350
388
 
351
389
  *dark-panda*
352
390
 
@@ -394,7 +432,7 @@ title: Changelog
394
432
 
395
433
  ## 2.31.0
396
434
 
397
- _Note: This release includes an underlying change to Slots that may affect incorrect usage of the API, where Slots were set on a line prefixed by `<%=`. The result of setting a Slot should not be returned. (`<%`)_
435
+ _Note: This release includes an underlying change to Slots that may affect incorrect usage of the API, where Slots were set on a line prefixed by `<%=`. The result of setting a Slot shouldn't be returned. (`<%`)_
398
436
 
399
437
  * Add `#with_content` to allow setting content without a block.
400
438
 
@@ -405,7 +443,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
405
443
  *Mario Schüttel*
406
444
 
407
445
  * Improve feature parity with Rails translations
408
- * Don't create a translation backend if the component has no translation file
446
+ * Don't create a translation back end if the component has no translation file
409
447
  * Mark translation keys ending with `html` as HTML-safe
410
448
  * Always convert keys to String
411
449
  * Support multiple keys
@@ -447,7 +485,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
447
485
 
448
486
  *Alex Robbin, Blake Williams*
449
487
 
450
- * Experimental: call `._sidecar_files` to fetch the sidecar files for a given list of extensions, e.g. passing `["yml", "yaml"]`.
488
+ * Experimental: call `._sidecar_files` to fetch the sidecar files for a given list of extensions, for example passing `["yml", "yaml"]`.
451
489
 
452
490
  *Elia Schito*
453
491
 
@@ -487,11 +525,11 @@ _Note: This release includes an underlying change to Slots that may affect incor
487
525
 
488
526
  ## 2.26.0
489
527
 
490
- * Lazily evaluate component `content` in `render?`, preventing the `content` block from being evaluated when `render?` returns false.
528
+ * Delay evaluating component `content` in `render?`, preventing the `content` block from being evaluated when `render?` returns false.
491
529
 
492
530
  *Blake Williams*
493
531
 
494
- * Do not generate template when using `--inline` flag.
532
+ * Don't generate template when using `--inline` flag.
495
533
 
496
534
  *Hans Lemuet*
497
535
 
@@ -552,7 +590,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
552
590
  * `with_slot collection: true` becomes `renders_many`.
553
591
  * Slot definitions now accept either a component class, component class name, or a lambda instead of a `class_name:` keyword argument.
554
592
  * Slots now support positional arguments.
555
- * Slots no longer use the `content` attribute to render content, instead relying on `to_s`. e.g. `<%= my_slot %>`.
593
+ * Slots no longer use the `content` attribute to render content, instead relying on `to_s`. for example `<%= my_slot %>`.
556
594
  * Slot values are no longer set via the `slot` method, and instead use the name of the slot.
557
595
 
558
596
  *Blake Williams*
@@ -615,7 +653,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
615
653
 
616
654
  ## 2.18.2
617
655
 
618
- * Raise an error if controller or view context is accessed during initialize as they are only available in render.
656
+ * Raise an error if controller or view context is accessed during initialize as they're only available in render.
619
657
 
620
658
  *Julian Nadeau*
621
659
 
@@ -631,7 +669,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
631
669
 
632
670
  ## 2.18.0
633
671
 
634
- * Fix auto-loading of previews (changes no longer require a server restart)
672
+ * Fix auto loading of previews (changes no longer require a server restart)
635
673
 
636
674
  *Matt Brictson*
637
675
 
@@ -724,7 +762,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
724
762
 
725
763
  ## 2.10.0
726
764
 
727
- * Raise an `ArgumentError` with a helpful message when Ruby cannot parse a component class.
765
+ * Raise an `ArgumentError` with a helpful message when Ruby can't parse a component class.
728
766
 
729
767
  *Max Beizer*
730
768
 
@@ -816,7 +854,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
816
854
 
817
855
  ## v2.2.1
818
856
 
819
- * Fix bug where template could not be found if `inherited` was redefined.
857
+ * Fix bug where template couldn't be found if `inherited` was redefined.
820
858
 
821
859
  *Joel Hawksley*
822
860
 
@@ -832,7 +870,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
832
870
 
833
871
  ## v2.1.0
834
872
 
835
- * Support rendering collections (e.g., `render(MyComponent.with_collection(@items))`).
873
+ * Support rendering collections (for example, `render(MyComponent.with_collection(@items))`).
836
874
 
837
875
  *Tim Clem*
838
876
 
@@ -854,7 +892,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
854
892
 
855
893
  *Andrew Mason*
856
894
 
857
- * ViewComponent generators do not not prompt for content requirement.
895
+ * ViewComponent generators don't not prompt for content requirement.
858
896
 
859
897
  *Joel Hawksley*
860
898
 
@@ -976,7 +1014,7 @@ _Note: This release includes an underlying change to Slots that may affect incor
976
1014
 
977
1015
  *Jon Palmer*
978
1016
 
979
- * Add `#render?` hook to easily allow components to be no-ops.
1017
+ * Add `#render?` hook to allow components to be no-ops.
980
1018
 
981
1019
  *Kyle Fox*
982
1020
 
@@ -1044,7 +1082,9 @@ _Note: This release includes an underlying change to Slots that may affect incor
1044
1082
 
1045
1083
  * Fix edge case issue with extracting variants from less conventional source_locations.
1046
1084
 
1085
+ <!-- vale proselint.GenderBias = NO -->
1047
1086
  *Ryan Workman*
1087
+ <!-- vale proselint.GenderBias = YES -->
1048
1088
 
1049
1089
  ## v1.6.0
1050
1090
 
@@ -1080,7 +1120,9 @@ _Note: This release includes an underlying change to Slots that may affect incor
1080
1120
 
1081
1121
  * Add support for RSpec to generators.
1082
1122
 
1123
+ <!-- vale proselint.GenderBias = NO -->
1083
1124
  *Dylan Clark, Ryan Workman*
1125
+ <!-- vale proselint.GenderBias = YES -->
1084
1126
 
1085
1127
  * Require controllers as part of setting autoload paths.
1086
1128
 
@@ -1104,7 +1146,9 @@ Note: `actionview-component` is now loaded by requiring `actionview/component`,
1104
1146
 
1105
1147
  * Fix issue with generating component method signatures.
1106
1148
 
1149
+ <!-- vale proselint.GenderBias = NO -->
1107
1150
  *Ryan Workman, Dylan Clark*
1151
+ <!-- vale proselint.GenderBias = YES -->
1108
1152
 
1109
1153
  * Create component generator.
1110
1154
 
@@ -1176,7 +1220,7 @@ Note: `actionview-component` is now loaded by requiring `actionview/component`,
1176
1220
 
1177
1221
  ## v1.3.3
1178
1222
 
1179
- * Do not raise error when sidecar files that are not templates exist.
1223
+ * Don't raise error when sidecar files that aren't templates exist.
1180
1224
 
1181
1225
  *Joel Hawksley*
1182
1226
 
@@ -152,7 +152,7 @@ module ViewComponent
152
152
  if view_context.nil?
153
153
  raise(
154
154
  ViewContextCalledBeforeRenderError,
155
- "`#controller` cannot be used during initialization, as it depends " \
155
+ "`#controller` can't be used during initialization, as it depends " \
156
156
  "on the view context that only exists once a ViewComponent is passed to " \
157
157
  "the Rails render pipeline.\n\n" \
158
158
  "It's sometimes possible to fix this issue by moving code dependent on " \
@@ -171,7 +171,7 @@ module ViewComponent
171
171
  if view_context.nil?
172
172
  raise(
173
173
  ViewContextCalledBeforeRenderError,
174
- "`#helpers` cannot be used during initialization, as it depends " \
174
+ "`#helpers` can't be used during initialization, as it depends " \
175
175
  "on the view context that only exists once a ViewComponent is passed to " \
176
176
  "the Rails render pipeline.\n\n" \
177
177
  "It's sometimes possible to fix this issue by moving code dependent on " \
@@ -206,7 +206,7 @@ module ViewComponent
206
206
  #
207
207
  # @private
208
208
  def format
209
- # Ruby 2.6 throws a warning without checking `defined?`, 2.7 does not
209
+ # Ruby 2.6 throws a warning without checking `defined?`, 2.7 doesn't
210
210
  if defined?(@__vc_variant)
211
211
  @__vc_variant
212
212
  end
@@ -283,7 +283,7 @@ module ViewComponent
283
283
  #
284
284
  # config.view_component.view_component_path = "app/my_components"
285
285
  #
286
- # Defaults to "app/components".
286
+ # Defaults to `app/components`.
287
287
  mattr_accessor :view_component_path, instance_writer: false, default: "app/components"
288
288
 
289
289
  # Parent class for generated components
@@ -318,7 +318,7 @@ module ViewComponent
318
318
 
319
319
  # Add support for nested components defined in the same file.
320
320
  #
321
- # e.g.
321
+ # for example
322
322
  #
323
323
  # class MyComponent < ViewComponent::Base
324
324
  # class MyOtherComponent < ViewComponent::Base
@@ -431,7 +431,7 @@ module ViewComponent
431
431
  end
432
432
 
433
433
  # Ensure the component initializer accepts the
434
- # collection parameter. By default, we do not
434
+ # collection parameter. By default, we don't
435
435
  # validate that the default parameter name
436
436
  # is accepted, as support for collection
437
437
  # rendering is optional.
@@ -442,7 +442,7 @@ module ViewComponent
442
442
  return unless parameter
443
443
  return if initialize_parameter_names.include?(parameter)
444
444
 
445
- # If Ruby cannot parse the component class, then the initalize
445
+ # If Ruby can't parse the component class, then the initalize
446
446
  # parameters will be empty and ViewComponent will not be able to render
447
447
  # the component.
448
448
  if initialize_parameters.empty?
@@ -455,14 +455,14 @@ module ViewComponent
455
455
  end
456
456
 
457
457
  raise ArgumentError.new(
458
- "The initializer for #{self} does not accept the parameter `#{parameter}`, " \
458
+ "The initializer for #{self} doesn't accept the parameter `#{parameter}`, " \
459
459
  "which is required in order to render it as a collection.\n\n" \
460
460
  "To fix this issue, update the initializer to accept `#{parameter}`.\n\n" \
461
461
  "See https://viewcomponent.org/guide/collections.html for more information on rendering collections."
462
462
  )
463
463
  end
464
464
 
465
- # Ensure the component initializer does not define
465
+ # Ensure the component initializer doesn't define
466
466
  # invalid parameters that could override the framework's
467
467
  # methods.
468
468
  # @private TODO: add documentation
@@ -470,7 +470,7 @@ module ViewComponent
470
470
  return unless initialize_parameter_names.include?(RESERVED_PARAMETER)
471
471
 
472
472
  raise ViewComponent::ComponentError.new(
473
- "#{self} initializer cannot accept the parameter `#{RESERVED_PARAMETER}`, as it will override a " \
473
+ "#{self} initializer can't accept the parameter `#{RESERVED_PARAMETER}`, as it will override a " \
474
474
  "public ViewComponent method. To fix this issue, rename the parameter."
475
475
  )
476
476
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module ViewComponent
4
4
  # Keeps track of which templates have already been compiled
5
- # This is not part of the public API
5
+ # This isn't part of the public API
6
6
  module CompileCache
7
7
  mattr_accessor :cache, instance_reader: false, instance_accessor: false do
8
8
  Set.new
@@ -95,7 +95,7 @@ module ViewComponent
95
95
  errors = []
96
96
 
97
97
  if (templates + inline_calls).empty?
98
- errors << "Could not find a template file or inline render method for #{component_class}."
98
+ errors << "Couldn't find a template file or inline render method for #{component_class}."
99
99
  end
100
100
 
101
101
  if templates.count { |template| template[:variant].nil? } > 1
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "rails"
4
- require "view_component"
5
4
 
6
5
  module ViewComponent
7
6
  class Engine < Rails::Engine # :nodoc:
@@ -145,3 +144,7 @@ module ViewComponent
145
144
  end
146
145
  end
147
146
  end
147
+
148
+ # In the case of automatic loading, "view_component" is loaded first,
149
+ # so there is no need to load it.
150
+ require "view_component" unless defined?(ViewComponent::Base)
@@ -80,7 +80,7 @@ module ViewComponent # :nodoc:
80
80
  if preview_path.nil?
81
81
  raise(
82
82
  PreviewTemplateError,
83
- "A preview template for example #{example} does not exist.\n\n" \
83
+ "A preview template for example #{example} doesn't exist.\n\n" \
84
84
  "To fix this issue, create a template for the example."
85
85
  )
86
86
  end
@@ -20,7 +20,7 @@ module ViewComponent
20
20
  # component, or a function that returns a component, we render that
21
21
  # component instance, returning the string.
22
22
  #
23
- # If the slot renderable is a function and returns a string, it is
23
+ # If the slot renderable is a function and returns a string, it's
24
24
  # set as `@__vc_content` and is returned directly.
25
25
  #
26
26
  # If there is no slot renderable, we evaluate the block passed to
@@ -69,7 +69,7 @@ module ViewComponent
69
69
 
70
70
  # Allow access to public component methods via the wrapper
71
71
  #
72
- # e.g.
72
+ # for example
73
73
  #
74
74
  # calling `header.name` (where `header` is a slot) will call `name`
75
75
  # on the `HeaderComponent` instance.
@@ -29,12 +29,12 @@ module ViewComponent
29
29
  )
30
30
 
31
31
  slot_names.each do |slot_name|
32
- # Ensure slot_name is not already declared
32
+ # Ensure slot_name isn't already declared
33
33
  if self.slots.key?(slot_name)
34
34
  raise ArgumentError.new("#{slot_name} slot declared multiple times")
35
35
  end
36
36
 
37
- # Ensure slot name is not :content
37
+ # Ensure slot name isn't :content
38
38
  if slot_name == :content
39
39
  raise ArgumentError.new ":content is a reserved slot name. Please use another name, such as ':body'"
40
40
  end
@@ -105,7 +105,7 @@ module ViewComponent
105
105
  # <% end %>
106
106
  #
107
107
  def slot(slot_name, **args, &block)
108
- # Raise ArgumentError if `slot` does not exist
108
+ # Raise ArgumentError if `slot` doesn't exist
109
109
  unless slots.keys.include?(slot_name)
110
110
  raise ArgumentError.new "Unknown slot '#{slot_name}' - expected one of '#{slots.keys}'"
111
111
  end
@@ -140,7 +140,7 @@ module ViewComponent
140
140
  instance_variable_set(slot[:instance_variable_name], slot_instance)
141
141
  end
142
142
 
143
- # Return nil, as this method should not output anything to the view itself.
143
+ # Return nil, as this method shouldn't output anything to the view itself.
144
144
  nil
145
145
  end
146
146
  end
@@ -121,7 +121,7 @@ module ViewComponent
121
121
  singular_name = ActiveSupport::Inflector.singularize(slot_name)
122
122
 
123
123
  # Define setter for singular names
124
- # e.g. `renders_many :items` allows fetching all tabs with
124
+ # for example `renders_many :items` allows fetching all tabs with
125
125
  # `component.tabs` and setting a tab with `component.tab`
126
126
  define_method singular_name do |*args, &block|
127
127
  set_slot(slot_name, nil, *args, &block)
@@ -181,7 +181,7 @@ module ViewComponent
181
181
  # If callable is a string, we assume it's referencing an internal class
182
182
  slot[:renderable_class_name] = callable
183
183
  elsif callable.respond_to?(:call)
184
- # If slot does not respond to `render_in`, we assume it's a proc,
184
+ # If slot doesn't respond to `render_in`, we assume it's a proc,
185
185
  # define a method, and save a reference to it to call when setting
186
186
  method_name = :"_call_#{slot_name}"
187
187
  define_method method_name, &callable
@@ -256,7 +256,7 @@ module ViewComponent
256
256
  # 1. If this is a `content_area` style sub-component, we will render the
257
257
  # block via the `slot`
258
258
  #
259
- # 2. Since we have to pass block content to components when calling
259
+ # 2. Since we've to pass block content to components when calling
260
260
  # `render`, evaluating the block here would require us to call
261
261
  # `view_context.capture` twice, which is slower
262
262
  slot.__vc_content_block = block if block_given?
@@ -103,7 +103,7 @@ module ViewComponent
103
103
  @controller = old_controller
104
104
  end
105
105
 
106
- # Set the URL for the current request (such as when using request-dependent path helpers):
106
+ # Set the URL of the current request (such as when using request-dependent path helpers):
107
107
  #
108
108
  # ```ruby
109
109
  # with_request_url("/users/42") do
@@ -3,7 +3,7 @@
3
3
  module ViewComponent
4
4
  module VERSION
5
5
  MAJOR = 2
6
- MINOR = 44
6
+ MINOR = 45
7
7
  PATCH = 0
8
8
 
9
9
  STRING = [MAJOR, MINOR, PATCH].join(".")
@@ -19,4 +19,6 @@ module ViewComponent
19
19
  autoload :Translatable
20
20
  end
21
21
 
22
- require "view_component/engine" if defined?(Rails::Engine)
22
+ # In the case of manually loading, "view_component/engine" is loaded first,
23
+ # so there is no need to load it.
24
+ require "view_component/engine" if defined?(Rails::Engine) && !defined?(ViewComponent::Engine)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.44.0
4
+ version: 2.45.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub Open Source
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-18 00:00:00.000000000 Z
11
+ date: 2021-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport