rf-stylez 0.10.0 → 0.13.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75276532284a471db401f5b1afd5ca9ce927971857899840b38eea0346dcc75e
4
- data.tar.gz: bb2b7601c73cc43b05fc21da0d5872b132924df2bce1c9c59b2b3af9bc7abb80
3
+ metadata.gz: 54b5d943630d52ab7cf7511104196476c15f9f02e6f52defb435fd20e6ab743b
4
+ data.tar.gz: 8732cd5d8f52c6401be14b08bd935b9822731826306591b23e01e983d5750669
5
5
  SHA512:
6
- metadata.gz: 3eb5d2d908986b96907ad184a4604021ccae9433d5da36f96d5c83e2797eabe2b1dd6e721d053401901d26a5a8664b590972095a8352890ddd9e4027f8cb8567
7
- data.tar.gz: d47578a907de70a0e0e70edfe2a2042f63de05c672d1c829d88e35b7204af591540a61ca0cdfa8b18880fb8b23438e3039b4de305610e844bcc3f10e0b717bab
6
+ metadata.gz: 1235de1199e69b9dc116b9119ff2b8c95db7c7c4c93e02a03cca7f0356a56b6d8d33e4bdf2f29082f2b499d9e5fc9993c69b54536e0a8cd3731b469b52289b61
7
+ data.tar.gz: 5253a7bbbeb5457740e585992498dc443dd6133e68f189a2d9442464eeda006736d90f4f35fcab05d28194464d3336699949820b819cf33b1ac2e48b817f3637
@@ -0,0 +1,17 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: bundler
4
+ directory: "/"
5
+ schedule:
6
+ interval: daily
7
+ time: "13:00"
8
+ open-pull-requests-limit: 10
9
+ ignore:
10
+ - dependency-name: rubocop
11
+ versions:
12
+ - 1.10.0
13
+ - 1.12.0
14
+ - 1.9.0
15
+ - dependency-name: rubocop-rspec
16
+ versions:
17
+ - 2.1.0
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Rf
4
4
  module Stylez
5
- VERSION = '0.10.0'
5
+ VERSION = '0.13.0'
6
6
  end
7
7
  end
data/lib/rf/stylez.rb CHANGED
@@ -9,6 +9,7 @@ require 'rubocop/cop/lint/obscure'
9
9
  require 'rubocop/cop/lint/no_grape_api'
10
10
  require 'rubocop/cop/lint/use_positive_int32_validator'
11
11
  require 'rubocop/cop/lint/no_untyped_raise'
12
+ require 'rubocop/cop/lint/no_vcr_recording'
12
13
 
13
14
  module Rf
14
15
  module Stylez
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+ require 'unparser'
3
+
4
+ module RuboCop
5
+ module Cop
6
+ module Lint
7
+ # @example
8
+ # # bad
9
+ # vcr: { record_mode: :once, tag: :foo }
10
+ # vcr: { record_mode: :none }
11
+ #
12
+ # # good
13
+ # vcr: { tag: :foo }
14
+ # vcr: true
15
+ class NoVCRRecording < RuboCop::Cop::Base
16
+ extend AutoCorrector
17
+
18
+ MSG = 'Do not set :record option in VCR'.freeze
19
+
20
+ def_node_search :is_only_setting_record_option?, <<~PATTERN
21
+ (pair
22
+ (sym :vcr)
23
+ (hash
24
+ (pair
25
+ (sym :record)
26
+ ...
27
+ )
28
+ )
29
+ )
30
+ PATTERN
31
+ def_node_search :is_setting_record_option?, <<~PATTERN
32
+ (pair
33
+ (sym :vcr)
34
+ (hash
35
+ <
36
+ (pair
37
+ (sym :record)
38
+ ...
39
+ )
40
+ ...
41
+ >
42
+ )
43
+ )
44
+ PATTERN
45
+
46
+ def on_pair(node)
47
+ return unless is_only_setting_record_option?(node) || is_setting_record_option?(node)
48
+
49
+ add_offense(node) do |corrector|
50
+ if is_only_setting_record_option?(node)
51
+ corrector.replace(node, 'vcr: true')
52
+ elsif is_setting_record_option?(node)
53
+ corrector.replace(node, remove_record_option(node))
54
+ end
55
+ end
56
+ end
57
+
58
+ private
59
+
60
+ def remove_record_option(top_pair_node)
61
+ extend AST::Sexp
62
+
63
+ _vcr_key, hash = top_pair_node.children
64
+ other_options = hash.children.reject do |pair|
65
+ key, _value = pair.children
66
+ key == s(:sym, :record)
67
+ end
68
+
69
+ Unparser.unparse(s(:pair, s(:sym, :vcr), s(:hash, *other_options)))
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
data/rf-stylez.gemspec CHANGED
@@ -19,11 +19,12 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = ['rf-stylez']
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.add_runtime_dependency 'rubocop', '~> 1.1.0'
23
- spec.add_runtime_dependency 'rubocop-rails', '2.8.0'
24
- spec.add_runtime_dependency 'rubocop-rspec', '2.0.0.pre'
22
+ spec.add_runtime_dependency 'rubocop', '1.15.0'
23
+ spec.add_runtime_dependency 'rubocop-rails', '2.10.1'
24
+ spec.add_runtime_dependency 'rubocop-rspec', '2.3.0'
25
25
  spec.add_runtime_dependency 'get_env', '~> 0.2.0'
26
26
  spec.add_runtime_dependency 'semantic_versioning', '~> 0.2'
27
+ spec.add_runtime_dependency 'unparser', '~> 0.6'
27
28
 
28
29
  spec.add_development_dependency 'bundler', '~> 2.1'
29
30
  spec.add_development_dependency 'rake', '~> 13.0'
data/ruby/rubocop.yml CHANGED
@@ -34,6 +34,10 @@ Lint/UsePositiveInt32Validator:
34
34
  Enabled: true
35
35
  Lint/NoJSON:
36
36
  Enabled: true
37
+ Lint/NoVCRRecording:
38
+ Enabled: true
39
+ Include:
40
+ - spec/**/*
37
41
 
38
42
  # Good style cops
39
43
  Layout/BlockAlignment:
@@ -50,6 +54,7 @@ Layout/TrailingWhitespace:
50
54
  Enabled: true
51
55
  Layout/EmptyLineBetweenDefs:
52
56
  Enabled: true
57
+ EmptyLineBetweenClassDefs: false
53
58
  Layout/IndentationWidth:
54
59
  Enabled: true
55
60
  Layout/AccessModifierIndentation:
@@ -130,7 +135,18 @@ Style/MethodCallWithoutArgsParentheses:
130
135
  Style/InfiniteLoop:
131
136
  Enabled: true
132
137
  Style/StringLiterals:
133
- Enabled: true
138
+ Description: 'Checks if uses of quotes match the configured preference.'
139
+ StyleGuide: '#consistent-string-literals'
140
+ Enabled: true
141
+ VersionAdded: '0.9'
142
+ VersionChanged: '0.36'
143
+ EnforcedStyle: double_quotes
144
+ SupportedStyles:
145
+ - single_quotes
146
+ - double_quotes
147
+ # If `true`, strings which span multiple lines using `\` for continuation must
148
+ # use the same type of quotes on each line.
149
+ ConsistentQuotesInMultiline: true
134
150
  Style/AndOr:
135
151
  Enabled: true
136
152
  Style/Not:
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rf-stylez
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emanuel Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-06 00:00:00.000000000 Z
11
+ date: 2021-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.1.0
19
+ version: 1.15.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.1.0
26
+ version: 1.15.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop-rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.8.0
33
+ version: 2.10.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.8.0
40
+ version: 2.10.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rubocop-rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 2.0.0.pre
47
+ version: 2.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.0.pre
54
+ version: 2.3.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: get_env
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.2'
83
+ - !ruby/object:Gem::Dependency
84
+ name: unparser
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.6'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.6'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: bundler
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -159,6 +173,7 @@ extensions: []
159
173
  extra_rdoc_files: []
160
174
  files:
161
175
  - ".circleci/config.yml"
176
+ - ".github/dependabot.yml"
162
177
  - ".gitignore"
163
178
  - ".rspec"
164
179
  - ".rubocop.yml"
@@ -177,6 +192,7 @@ files:
177
192
  - lib/rubocop/cop/lint/no_http_party.rb
178
193
  - lib/rubocop/cop/lint/no_json.rb
179
194
  - lib/rubocop/cop/lint/no_untyped_raise.rb
195
+ - lib/rubocop/cop/lint/no_vcr_recording.rb
180
196
  - lib/rubocop/cop/lint/obscure.rb
181
197
  - lib/rubocop/cop/lint/use_positive_int32_validator.rb
182
198
  - rails/rubocop.yml