view_component 2.33.0 → 2.34.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/app/views/test_mailer/test_email.html.erb +1 -0
- data/lib/view_component.rb +1 -0
- data/lib/view_component/base.rb +9 -2
- data/lib/view_component/engine.rb +12 -1
- data/lib/view_component/instrumentation.rb +17 -0
- data/lib/view_component/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8ec532b985935e7b718bb74aa51eaaa5e5f26ea0df8936e0c131231c9e9c37ed
|
|
4
|
+
data.tar.gz: c0cde4fa2a1b4d2c0110085b8c3c1b4705117f9ffe20775a096c5c3b20aa0728
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 37cfdfd8cbf06773a015c13ed6f8c079f9d269045ba8ab1981e56d90cccf841152a8c9ab018b66c5289b8a1bbe5e4c7d1c8a0645e70578b1e97d9da098fe95cd
|
|
7
|
+
data.tar.gz: fe210839c3be3a8eb83e2bac1655f3ab5c5dc8d49727a413ba5ac46eeb0b4bb41e32f18c67b295bfe927cfc207dcc9df7f0c71f6ebc7f6064ea1c7c9fef6ddb7
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
## main
|
|
4
4
|
|
|
5
|
+
## 2.34.0
|
|
6
|
+
|
|
7
|
+
* Add the ability to enable ActiveSupport notifications (`!render.view_component` event) with `config.view_component.instrumentation_enabled`.
|
|
8
|
+
|
|
9
|
+
*Svyatoslav Kryukov*
|
|
10
|
+
|
|
11
|
+
* Add [Generators](https://viewcomponent.org/guide/generators.html) page to documentation.
|
|
12
|
+
|
|
13
|
+
*Hans Lemuet*
|
|
14
|
+
|
|
15
|
+
* Fix bug where ViewComponents did not work in ActionMailers.
|
|
16
|
+
|
|
17
|
+
*dark-panda*
|
|
18
|
+
|
|
5
19
|
## 2.33.0
|
|
6
20
|
|
|
7
21
|
* Add support for `_iteration` parameter when rendering in a collection
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= render MailerComponent.new %>
|
data/lib/view_component.rb
CHANGED
data/lib/view_component/base.rb
CHANGED
|
@@ -136,6 +136,7 @@ module ViewComponent
|
|
|
136
136
|
# This prevents an exception when rendering a partial inside of a component that has also been rendered outside
|
|
137
137
|
# of the component. This is due to the partials compiled template method existing in the parent `view_context`,
|
|
138
138
|
# and not the component's `view_context`.
|
|
139
|
+
#
|
|
139
140
|
# @private
|
|
140
141
|
def render(options = {}, args = {}, &block)
|
|
141
142
|
if options.is_a? ViewComponent::Base
|
|
@@ -162,6 +163,7 @@ module ViewComponent
|
|
|
162
163
|
end
|
|
163
164
|
|
|
164
165
|
# Exposes .virtual_path as an instance method
|
|
166
|
+
#
|
|
165
167
|
# @private
|
|
166
168
|
def virtual_path
|
|
167
169
|
self.class.virtual_path
|
|
@@ -174,6 +176,7 @@ module ViewComponent
|
|
|
174
176
|
end
|
|
175
177
|
|
|
176
178
|
# For caching, such as #cache_if
|
|
179
|
+
#
|
|
177
180
|
# @private
|
|
178
181
|
def format
|
|
179
182
|
# Ruby 2.6 throws a warning without checking `defined?`, 2.7 does not
|
|
@@ -183,6 +186,7 @@ module ViewComponent
|
|
|
183
186
|
end
|
|
184
187
|
|
|
185
188
|
# Assign the provided content to the content area accessor
|
|
189
|
+
#
|
|
186
190
|
# @private
|
|
187
191
|
def with(area, content = nil, &block)
|
|
188
192
|
unless content_areas.include?(area)
|
|
@@ -197,7 +201,10 @@ module ViewComponent
|
|
|
197
201
|
nil
|
|
198
202
|
end
|
|
199
203
|
|
|
200
|
-
#
|
|
204
|
+
# Use the provided variant instead of the one determined by the current request.
|
|
205
|
+
#
|
|
206
|
+
# @param variant [Symbol] The variant to be used by the component.
|
|
207
|
+
# @return [self]
|
|
201
208
|
def with_variant(variant)
|
|
202
209
|
@variant = variant
|
|
203
210
|
|
|
@@ -208,7 +215,7 @@ module ViewComponent
|
|
|
208
215
|
#
|
|
209
216
|
# @return [ActionDispatch::Request]
|
|
210
217
|
def request
|
|
211
|
-
@request ||= controller.request
|
|
218
|
+
@request ||= controller.request if controller.respond_to?(:request)
|
|
212
219
|
end
|
|
213
220
|
|
|
214
221
|
private
|
|
@@ -13,6 +13,7 @@ module ViewComponent
|
|
|
13
13
|
|
|
14
14
|
options.render_monkey_patch_enabled = true if options.render_monkey_patch_enabled.nil?
|
|
15
15
|
options.show_previews = Rails.env.development? || Rails.env.test? if options.show_previews.nil?
|
|
16
|
+
options.instrumentation_enabled = false if options.instrumentation_enabled.nil?
|
|
16
17
|
options.preview_route ||= ViewComponent::Base.preview_route
|
|
17
18
|
options.preview_controller ||= ViewComponent::Base.preview_controller
|
|
18
19
|
|
|
@@ -30,7 +31,17 @@ module ViewComponent
|
|
|
30
31
|
end
|
|
31
32
|
|
|
32
33
|
ActiveSupport.on_load(:view_component) do
|
|
33
|
-
options.each { |k, v| send("#{k}=", v) }
|
|
34
|
+
options.each { |k, v| send("#{k}=", v) if respond_to?("#{k}=") }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
initializer "view_component.enable_instrumentation" do |app|
|
|
39
|
+
ActiveSupport.on_load(:view_component) do
|
|
40
|
+
if app.config.view_component.instrumentation_enabled.present?
|
|
41
|
+
# :nocov:
|
|
42
|
+
ViewComponent::Base.prepend(ViewComponent::Instrumentation)
|
|
43
|
+
# :nocov:
|
|
44
|
+
end
|
|
34
45
|
end
|
|
35
46
|
end
|
|
36
47
|
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "active_support/notifications"
|
|
4
|
+
|
|
5
|
+
module ViewComponent # :nodoc:
|
|
6
|
+
module Instrumentation
|
|
7
|
+
def self.included(mod)
|
|
8
|
+
mod.prepend(self)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def render_in(view_context, &block)
|
|
12
|
+
ActiveSupport::Notifications.instrument("!render.view_component", name: self.class.name, identifier: self.class.identifier) do
|
|
13
|
+
super(view_context, &block)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
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.
|
|
4
|
+
version: 2.34.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-06-
|
|
11
|
+
date: 2021-06-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -237,6 +237,7 @@ files:
|
|
|
237
237
|
- LICENSE.txt
|
|
238
238
|
- README.md
|
|
239
239
|
- app/controllers/view_components_controller.rb
|
|
240
|
+
- app/views/test_mailer/test_email.html.erb
|
|
240
241
|
- app/views/view_components/index.html.erb
|
|
241
242
|
- app/views/view_components/preview.html.erb
|
|
242
243
|
- app/views/view_components/previews.html.erb
|
|
@@ -262,6 +263,7 @@ files:
|
|
|
262
263
|
- lib/view_component/compiler.rb
|
|
263
264
|
- lib/view_component/component_error.rb
|
|
264
265
|
- lib/view_component/engine.rb
|
|
266
|
+
- lib/view_component/instrumentation.rb
|
|
265
267
|
- lib/view_component/preview.rb
|
|
266
268
|
- lib/view_component/preview_template_error.rb
|
|
267
269
|
- lib/view_component/previewable.rb
|