view_component 3.10.0 → 3.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/docs/CHANGELOG.md +50 -0
- data/lib/rails/generators/rspec/component_generator.rb +15 -3
- data/lib/view_component/base.rb +4 -1
- data/lib/view_component/config.rb +13 -0
- data/lib/view_component/slotable.rb +1 -1
- data/lib/view_component/test_helpers.rb +2 -0
- data/lib/view_component/version.rb +1 -1
- metadata +143 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9624272c360c4807dd67cd51f1ac1c1ffa9eab79cfb77994768ef32c8cb6af0
|
4
|
+
data.tar.gz: f393224b193af373eef5333a35fc20ac8ca8d5501716d0c3a58aeea0ad56de61
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfa57ba053fac0733672492bee096d2b009dea6e5931e38ecb300d7eabe4d90a73966d81373dc7bbc1f61bcf074fc2e803611eb6602554b649b9f54a9a4ea471
|
7
|
+
data.tar.gz: c8bf7fbbc161ce4030e7529bd7c5c7053d3c16f6c7f92a2816abce0727ceeacbce12d6b757faa107b3e24b92f6c423875afce3c50008d049aca45716c5be2dff
|
data/docs/CHANGELOG.md
CHANGED
@@ -10,6 +10,56 @@ nav_order: 5
|
|
10
10
|
|
11
11
|
## main
|
12
12
|
|
13
|
+
## 3.12.0
|
14
|
+
|
15
|
+
* Remove offline links from resources.
|
16
|
+
|
17
|
+
*Paulo Henrique Meneses*
|
18
|
+
|
19
|
+
* Fix templates not being correctly populated when caller location label has a prefix.
|
20
|
+
|
21
|
+
On the upstream version of Ruby, method owners are now included in backtraces as prefixes. This caused the call stack filtering to not work as intended and thus `source_location` to be incorrect for child ViewComponents, consequently not populating templates correctly.
|
22
|
+
|
23
|
+
*Allan Pires, Jason Kim*
|
24
|
+
|
25
|
+
* Use component path for generating RSpec files.
|
26
|
+
|
27
|
+
When generating new RSpec files for components, the generator will use the `view_component_path` value in the config to decide where to put the new spec file. For instance, if the `view_component_path` option has been changed to `app/views/components`, the generator will put the spec file in `spec/views/components`. **If the `view_component_path` doesn't start with `app/`, then the generator will fall back to `spec/components/`.**
|
28
|
+
|
29
|
+
This feature is enabled via the `config.view_component.generate.use_component_path_for_rspec_tests` option, defaulting to `false`. The default will change to `true` in ViewComponent v4.
|
30
|
+
|
31
|
+
*William Mathewson*
|
32
|
+
|
33
|
+
## 3.11.0
|
34
|
+
|
35
|
+
* Fix running non-integration tests under Rails main.
|
36
|
+
|
37
|
+
*Cameron Dutro*
|
38
|
+
|
39
|
+
* Better name and link for Avo.
|
40
|
+
|
41
|
+
*Adrian Marin*
|
42
|
+
|
43
|
+
* Document using rack-mini-profiler with ViewComponent.
|
44
|
+
|
45
|
+
*Thomas Carr*
|
46
|
+
|
47
|
+
* Move dependencies to gemspec.
|
48
|
+
|
49
|
+
*Joel Hawksley*
|
50
|
+
|
51
|
+
* Include ViewComponent::UseHelpers by default.
|
52
|
+
|
53
|
+
*Reegan Viljoen*
|
54
|
+
|
55
|
+
* Bump `puma` in Gemfile.lock.
|
56
|
+
|
57
|
+
*Cameron Dutro*
|
58
|
+
|
59
|
+
* Add Keenly to users list.
|
60
|
+
|
61
|
+
*Vinoth*
|
62
|
+
|
13
63
|
## 3.10.0
|
14
64
|
|
15
65
|
* Fix html escaping in `#call` for non-strings.
|
@@ -1,18 +1,30 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "rails/generators/abstract_generator"
|
4
|
+
|
3
5
|
module Rspec
|
4
6
|
module Generators
|
5
7
|
class ComponentGenerator < ::Rails::Generators::NamedBase
|
8
|
+
include ViewComponent::AbstractGenerator
|
9
|
+
|
6
10
|
source_root File.expand_path("templates", __dir__)
|
7
11
|
|
8
12
|
def create_test_file
|
9
|
-
template "component_spec.rb", File.join(
|
13
|
+
template "component_spec.rb", File.join(spec_component_path, class_path, "#{file_name}_component_spec.rb")
|
10
14
|
end
|
11
15
|
|
12
16
|
private
|
13
17
|
|
14
|
-
def
|
15
|
-
|
18
|
+
def spec_component_path
|
19
|
+
return "spec/components" unless ViewComponent::Base.config.generate.use_component_path_for_rspec_tests
|
20
|
+
|
21
|
+
configured_component_path = component_path
|
22
|
+
if configured_component_path.start_with?("app#{File::SEPARATOR}")
|
23
|
+
_app, *rest_of_path = Pathname.new(configured_component_path).each_filename.to_a
|
24
|
+
File.join("spec", *rest_of_path)
|
25
|
+
else
|
26
|
+
"spec/components"
|
27
|
+
end
|
16
28
|
end
|
17
29
|
end
|
18
30
|
end
|
data/lib/view_component/base.rb
CHANGED
@@ -28,6 +28,7 @@ module ViewComponent
|
|
28
28
|
end
|
29
29
|
|
30
30
|
include ViewComponent::InlineTemplate
|
31
|
+
include ViewComponent::UseHelpers
|
31
32
|
include ViewComponent::Slotable
|
32
33
|
include ViewComponent::Translatable
|
33
34
|
include ViewComponent::WithContentHelper
|
@@ -536,7 +537,9 @@ module ViewComponent
|
|
536
537
|
# Derive the source location of the component Ruby file from the call stack.
|
537
538
|
# We need to ignore `inherited` frames here as they indicate that `inherited`
|
538
539
|
# has been re-defined by the consuming application, likely in ApplicationComponent.
|
539
|
-
|
540
|
+
# We use `base_label` method here instead of `label` to avoid cases where the method
|
541
|
+
# owner is included in a prefix like `ApplicationComponent.inherited`.
|
542
|
+
child.source_location = caller_locations(1, 10).reject { |l| l.base_label == "inherited" }[0].path
|
540
543
|
|
541
544
|
# If Rails application is loaded, removes the first part of the path and the extension.
|
542
545
|
if defined?(Rails) && Rails.application
|
@@ -79,6 +79,19 @@ module ViewComponent
|
|
79
79
|
# Defaults to `""`. If this is blank, the generator will use
|
80
80
|
# `ViewComponent.config.preview_paths` if defined,
|
81
81
|
# `"test/components/previews"` otherwise
|
82
|
+
#
|
83
|
+
# #### `#use_component_path_for_rspec_tests`
|
84
|
+
#
|
85
|
+
# Whether to use the `config.view_component_path` when generating new
|
86
|
+
# RSpec component tests:
|
87
|
+
#
|
88
|
+
# config.view_component.generate.use_component_path_for_rspec_tests = true
|
89
|
+
#
|
90
|
+
# When set to `true`, the generator will use the `view_component_path` to
|
91
|
+
# decide where to generate the new RSpec component test.
|
92
|
+
# For example, if the `view_component_path` is
|
93
|
+
# `app/views/components`, then the generator will create a new spec file
|
94
|
+
# in `spec/views/components/` rather than the default `spec/components/`.
|
82
95
|
|
83
96
|
# @!attribute preview_controller
|
84
97
|
# @return [String]
|
@@ -366,7 +366,7 @@ module ViewComponent
|
|
366
366
|
# 1. If this is a `content_area` style sub-component, we will render the
|
367
367
|
# block via the `slot`
|
368
368
|
#
|
369
|
-
# 2. Since we
|
369
|
+
# 2. Since we have to pass block content to components when calling
|
370
370
|
# `render`, evaluating the block here would require us to call
|
371
371
|
# `view_context.capture` twice, which is slower
|
372
372
|
slot.__vc_content_block = block if block
|
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: 3.
|
4
|
+
version: 3.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ViewComponent Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -114,6 +114,48 @@ dependencies:
|
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '2'
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: capybara
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '3'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '3'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: cuprite
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0.15'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0.15'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: debug
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
117
159
|
- !ruby/object:Gem::Dependency
|
118
160
|
name: erb_lint
|
119
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,6 +240,20 @@ dependencies:
|
|
198
240
|
- - "~>"
|
199
241
|
- !ruby/object:Gem::Version
|
200
242
|
version: '0.13'
|
243
|
+
- !ruby/object:Gem::Dependency
|
244
|
+
name: puma
|
245
|
+
requirement: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - "~>"
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '6'
|
250
|
+
type: :development
|
251
|
+
prerelease: false
|
252
|
+
version_requirements: !ruby/object:Gem::Requirement
|
253
|
+
requirements:
|
254
|
+
- - "~>"
|
255
|
+
- !ruby/object:Gem::Version
|
256
|
+
version: '6'
|
201
257
|
- !ruby/object:Gem::Dependency
|
202
258
|
name: rake
|
203
259
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,6 +268,20 @@ dependencies:
|
|
212
268
|
- - "~>"
|
213
269
|
- !ruby/object:Gem::Version
|
214
270
|
version: '13.0'
|
271
|
+
- !ruby/object:Gem::Dependency
|
272
|
+
name: rspec-rails
|
273
|
+
requirement: !ruby/object:Gem::Requirement
|
274
|
+
requirements:
|
275
|
+
- - "~>"
|
276
|
+
- !ruby/object:Gem::Version
|
277
|
+
version: '5'
|
278
|
+
type: :development
|
279
|
+
prerelease: false
|
280
|
+
version_requirements: !ruby/object:Gem::Requirement
|
281
|
+
requirements:
|
282
|
+
- - "~>"
|
283
|
+
- !ruby/object:Gem::Version
|
284
|
+
version: '5'
|
215
285
|
- !ruby/object:Gem::Dependency
|
216
286
|
name: rubocop-md
|
217
287
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,6 +296,20 @@ dependencies:
|
|
226
296
|
- - "~>"
|
227
297
|
- !ruby/object:Gem::Version
|
228
298
|
version: '1'
|
299
|
+
- !ruby/object:Gem::Dependency
|
300
|
+
name: selenium-webdriver
|
301
|
+
requirement: !ruby/object:Gem::Requirement
|
302
|
+
requirements:
|
303
|
+
- - '='
|
304
|
+
- !ruby/object:Gem::Version
|
305
|
+
version: 4.9.0
|
306
|
+
type: :development
|
307
|
+
prerelease: false
|
308
|
+
version_requirements: !ruby/object:Gem::Requirement
|
309
|
+
requirements:
|
310
|
+
- - '='
|
311
|
+
- !ruby/object:Gem::Version
|
312
|
+
version: 4.9.0
|
229
313
|
- !ruby/object:Gem::Dependency
|
230
314
|
name: standard
|
231
315
|
requirement: !ruby/object:Gem::Requirement
|
@@ -296,6 +380,20 @@ dependencies:
|
|
296
380
|
- - "~>"
|
297
381
|
- !ruby/object:Gem::Version
|
298
382
|
version: 3.4.2
|
383
|
+
- !ruby/object:Gem::Dependency
|
384
|
+
name: warning
|
385
|
+
requirement: !ruby/object:Gem::Requirement
|
386
|
+
requirements:
|
387
|
+
- - ">="
|
388
|
+
- !ruby/object:Gem::Version
|
389
|
+
version: '0'
|
390
|
+
type: :development
|
391
|
+
prerelease: false
|
392
|
+
version_requirements: !ruby/object:Gem::Requirement
|
393
|
+
requirements:
|
394
|
+
- - ">="
|
395
|
+
- !ruby/object:Gem::Version
|
396
|
+
version: '0'
|
299
397
|
- !ruby/object:Gem::Dependency
|
300
398
|
name: yard
|
301
399
|
requirement: !ruby/object:Gem::Requirement
|
@@ -324,6 +422,48 @@ dependencies:
|
|
324
422
|
- - "~>"
|
325
423
|
- !ruby/object:Gem::Version
|
326
424
|
version: 0.0.1
|
425
|
+
- !ruby/object:Gem::Dependency
|
426
|
+
name: net-imap
|
427
|
+
requirement: !ruby/object:Gem::Requirement
|
428
|
+
requirements:
|
429
|
+
- - ">="
|
430
|
+
- !ruby/object:Gem::Version
|
431
|
+
version: '0'
|
432
|
+
type: :development
|
433
|
+
prerelease: false
|
434
|
+
version_requirements: !ruby/object:Gem::Requirement
|
435
|
+
requirements:
|
436
|
+
- - ">="
|
437
|
+
- !ruby/object:Gem::Version
|
438
|
+
version: '0'
|
439
|
+
- !ruby/object:Gem::Dependency
|
440
|
+
name: net-pop
|
441
|
+
requirement: !ruby/object:Gem::Requirement
|
442
|
+
requirements:
|
443
|
+
- - ">="
|
444
|
+
- !ruby/object:Gem::Version
|
445
|
+
version: '0'
|
446
|
+
type: :development
|
447
|
+
prerelease: false
|
448
|
+
version_requirements: !ruby/object:Gem::Requirement
|
449
|
+
requirements:
|
450
|
+
- - ">="
|
451
|
+
- !ruby/object:Gem::Version
|
452
|
+
version: '0'
|
453
|
+
- !ruby/object:Gem::Dependency
|
454
|
+
name: net-smtp
|
455
|
+
requirement: !ruby/object:Gem::Requirement
|
456
|
+
requirements:
|
457
|
+
- - ">="
|
458
|
+
- !ruby/object:Gem::Version
|
459
|
+
version: '0'
|
460
|
+
type: :development
|
461
|
+
prerelease: false
|
462
|
+
version_requirements: !ruby/object:Gem::Requirement
|
463
|
+
requirements:
|
464
|
+
- - ">="
|
465
|
+
- !ruby/object:Gem::Version
|
466
|
+
version: '0'
|
327
467
|
description:
|
328
468
|
email:
|
329
469
|
executables: []
|
@@ -421,7 +561,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
421
561
|
- !ruby/object:Gem::Version
|
422
562
|
version: '0'
|
423
563
|
requirements: []
|
424
|
-
rubygems_version: 3.5.
|
564
|
+
rubygems_version: 3.5.4
|
425
565
|
signing_key:
|
426
566
|
specification_version: 4
|
427
567
|
summary: A framework for building reusable, testable & encapsulated view components
|