rubocop-factory_bot 2.25.0 → 2.26.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 +11 -0
- data/config/default.yml +2 -1
- data/lib/rubocop/cop/factory_bot/association_style.rb +1 -0
- data/lib/rubocop/cop/factory_bot/create_list.rb +3 -3
- data/lib/rubocop/cop/factory_bot/id_sequence.rb +4 -1
- data/lib/rubocop/factory_bot/cop/generator.rb +25 -0
- data/lib/rubocop/factory_bot/version.rb +1 -1
- metadata +10 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f13120d5e06606e2f01a7521724acfcb9d79989c5dcd5725cfb9dc509f4b9244
|
4
|
+
data.tar.gz: a6dc74ea1bed0ae4b52a7449c2e94d11a6d404803f8eaf57b1ff4bb934a7869e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: feb49a6ac85e680b9517a54937e96c0d246723082d92f1f995f90735a2b6af34bff9c8681517e164969aacc84cae22a0f1289723428050787e4096c11ba2d735
|
7
|
+
data.tar.gz: 151c71b63326bcd320be0db9a78a92cff0718214e41a03c349f2c178fdf3c3609a57f911658397934848b58d934b48f85ee12032daff500db8b0b67f2f0ace02
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
|
3
3
|
## Master (Unreleased)
|
4
4
|
|
5
|
+
## 2.26.0 (2024-06-08)
|
6
|
+
|
7
|
+
- Fix a false positive for `FactoryBot/AssociationStyle` when using nested factories with traits. ([@jaydorsey])
|
8
|
+
- Support `AutoCorrect: contextual` option for LSP. ([@ydah])
|
9
|
+
|
10
|
+
## 2.25.1 (2024-01-08)
|
11
|
+
|
12
|
+
- Fix a false positive for `FactoryBot/CreateList` when create call does have method calls and repeat multiple times with other argument. ([@ydah])
|
13
|
+
- Fix an error occurred for `FactoryBot/IdSequence` when `sequence` with non-symbol argument or without argument. ([@ydah])
|
14
|
+
|
5
15
|
## 2.25.0 (2024-01-04)
|
6
16
|
|
7
17
|
- Fix a false positive for `FactoryBot/FactoryNameStyle` when namespaced models. ([@ydah])
|
@@ -83,6 +93,7 @@
|
|
83
93
|
[@ddieulivol]: https://github.com/ddieulivol
|
84
94
|
[@dmitrytsepelev]: https://github.com/dmitrytsepelev
|
85
95
|
[@harrylewis]: https://github.com/harrylewis
|
96
|
+
[@jaydorsey]: https://github.com/jaydorsey
|
86
97
|
[@jfragoulis]: https://github.com/jfragoulis
|
87
98
|
[@jonatas]: https://github.com/jonatas
|
88
99
|
[@leoarnold]: https://github.com/leoarnold
|
data/config/default.yml
CHANGED
@@ -49,6 +49,7 @@ FactoryBot/ConsistentParenthesesStyle:
|
|
49
49
|
FactoryBot/CreateList:
|
50
50
|
Description: Checks for create_list usage.
|
51
51
|
Enabled: true
|
52
|
+
AutoCorrect: contextual
|
52
53
|
Include:
|
53
54
|
- "**/*_spec.rb"
|
54
55
|
- "**/spec/**/*"
|
@@ -61,7 +62,7 @@ FactoryBot/CreateList:
|
|
61
62
|
ExplicitOnly: false
|
62
63
|
SafeAutoCorrect: false
|
63
64
|
VersionAdded: '1.25'
|
64
|
-
VersionChanged: '2.
|
65
|
+
VersionChanged: '2.26'
|
65
66
|
Reference: https://www.rubydoc.info/gems/rubocop-factory_bot/RuboCop/Cop/FactoryBot/CreateList
|
66
67
|
|
67
68
|
FactoryBot/ExcessiveCreateList:
|
@@ -69,7 +69,7 @@ module RuboCop
|
|
69
69
|
RESTRICT_ON_SEND = %i[create_list].freeze
|
70
70
|
|
71
71
|
# @!method repeat_count(node)
|
72
|
-
def_node_matcher :repeat_count,
|
72
|
+
def_node_matcher :repeat_count, <<~PATTERN
|
73
73
|
(block
|
74
74
|
{
|
75
75
|
(send (const {nil? cbase} :Array) :new (int $_)) # Array.new(3) { create(:user) }
|
@@ -90,7 +90,7 @@ module RuboCop
|
|
90
90
|
|
91
91
|
# @!method arguments_include_method_call?(node)
|
92
92
|
def_node_matcher :arguments_include_method_call?, <<~PATTERN
|
93
|
-
(send #factory_call? :create sym `(send ...))
|
93
|
+
(send #factory_call? :create sym ... `(send ...))
|
94
94
|
PATTERN
|
95
95
|
|
96
96
|
# @!method factory_call(node)
|
@@ -104,7 +104,7 @@ module RuboCop
|
|
104
104
|
PATTERN
|
105
105
|
|
106
106
|
# @!method factory_calls_in_array?(node)
|
107
|
-
def_node_search :factory_calls_in_array?,
|
107
|
+
def_node_search :factory_calls_in_array?, <<~PATTERN
|
108
108
|
(array #factory_call+)
|
109
109
|
PATTERN
|
110
110
|
|
@@ -19,12 +19,15 @@ module RuboCop
|
|
19
19
|
class IdSequence < ::RuboCop::Cop::Base
|
20
20
|
extend AutoCorrector
|
21
21
|
include RangeHelp
|
22
|
+
include RuboCop::FactoryBot::Language
|
22
23
|
|
23
24
|
MSG = 'Do not create a sequence for an id attribute'
|
24
25
|
RESTRICT_ON_SEND = %i[sequence].freeze
|
25
26
|
|
26
27
|
def on_send(node)
|
27
|
-
return unless node.
|
28
|
+
return unless node.receiver.nil? || factory_bot?(node.receiver)
|
29
|
+
return unless node.first_argument&.sym_type? &&
|
30
|
+
node.first_argument.value == :id
|
28
31
|
|
29
32
|
add_offense(node) do |corrector|
|
30
33
|
range_to_remove = range_by_whole_lines(
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module FactoryBot
|
5
|
+
module Cop
|
6
|
+
# Source and spec generator for new cops
|
7
|
+
#
|
8
|
+
# This generator will take a cop name and generate a source file
|
9
|
+
# and spec file when given a valid qualified cop name.
|
10
|
+
# @api private
|
11
|
+
class Generator < RuboCop::Cop::Generator
|
12
|
+
def todo
|
13
|
+
<<~TODO
|
14
|
+
Do 4 steps:
|
15
|
+
1. Modify the description of #{badge} in config/default.yml
|
16
|
+
2. Implement your new cop in the generated file!
|
17
|
+
3. Add an entry about new cop to CHANGELOG.md
|
18
|
+
4. Commit your new cop with a message such as
|
19
|
+
e.g. "Add new `#{badge}` cop"
|
20
|
+
TODO
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-factory_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.26.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Backus
|
@@ -9,10 +9,10 @@ authors:
|
|
9
9
|
- Phil Pirozhkov
|
10
10
|
- Maxim Krizhanovsky
|
11
11
|
- Andrew Bromwich
|
12
|
-
autorequire:
|
12
|
+
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2024-
|
15
|
+
date: 2024-06-08 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rubocop
|
@@ -20,18 +20,18 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "~>"
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: '1.
|
23
|
+
version: '1.41'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - "~>"
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: '1.
|
30
|
+
version: '1.41'
|
31
31
|
description: |
|
32
32
|
Code style checking for factory_bot files.
|
33
33
|
A plugin for the RuboCop code style enforcing & linting tool.
|
34
|
-
email:
|
34
|
+
email:
|
35
35
|
executables: []
|
36
36
|
extensions: []
|
37
37
|
extra_rdoc_files:
|
@@ -58,6 +58,7 @@ files:
|
|
58
58
|
- lib/rubocop/cop/factory_bot/syntax_methods.rb
|
59
59
|
- lib/rubocop/cop/factory_bot_cops.rb
|
60
60
|
- lib/rubocop/factory_bot/config_formatter.rb
|
61
|
+
- lib/rubocop/factory_bot/cop/generator.rb
|
61
62
|
- lib/rubocop/factory_bot/description_extractor.rb
|
62
63
|
- lib/rubocop/factory_bot/factory_bot.rb
|
63
64
|
- lib/rubocop/factory_bot/language.rb
|
@@ -69,7 +70,7 @@ metadata:
|
|
69
70
|
changelog_uri: https://github.com/rubocop/rubocop-factory_bot/blob/master/CHANGELOG.md
|
70
71
|
documentation_uri: https://docs.rubocop.org/rubocop-factory_bot/
|
71
72
|
rubygems_mfa_required: 'true'
|
72
|
-
post_install_message:
|
73
|
+
post_install_message:
|
73
74
|
rdoc_options: []
|
74
75
|
require_paths:
|
75
76
|
- lib
|
@@ -84,8 +85,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
85
|
- !ruby/object:Gem::Version
|
85
86
|
version: '0'
|
86
87
|
requirements: []
|
87
|
-
rubygems_version: 3.
|
88
|
-
signing_key:
|
88
|
+
rubygems_version: 3.5.9
|
89
|
+
signing_key:
|
89
90
|
specification_version: 4
|
90
91
|
summary: Code style checking for factory_bot files
|
91
92
|
test_files: []
|