rf-stylez 0.9.0 → 0.12.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: 1debb30a0fbf3232b0d661e2d6e47c72b39264ba6627f9c3d7c7b89269e9e79b
4
- data.tar.gz: 8f7c9fe8ac3cde07f4653bc1df0bf2d4cd58eaaad3173175751bbc8ebff69a01
3
+ metadata.gz: 379e37d37df24166deb38eef0b97d0373a6734aeb738b8bfb80637bf118bc012
4
+ data.tar.gz: b6b1d14e28ae49b27e9e25f766d729b8bddea43b5227010b129690bbb58e19db
5
5
  SHA512:
6
- metadata.gz: 12d3c4338a04e335e3bcbab330b0b926b1d251c087429f7eea7fb41e77f3d74393666407481886c9d1a4a03961fa20db26f22f089d872a9ef6a9bab61ef63900
7
- data.tar.gz: d8381c807f8ea8f0e12723c83a5dc4a348533a9378c3149a7e20414bc8be0ece64dd279e2c7f1999d108928033f80ec714055a4d348ba2548eddb1cee9364ce9
6
+ metadata.gz: 6cba253d02a644530d184380ba14d9bc716190866c8e891f547bd791d08d016b8ecbe82ff6bf366a89af79fac879c71b6d58643b8eb4fe1968c793c6bc29bd93
7
+ data.tar.gz: 2dbb03b8a502241e7ff0494414753281bf5a5d8352c9e781a3803fcecefdb3a3addf94e399939f0946681cfa904a41f6fca1c104920a827304ba171cfa82801c
@@ -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.9.0'
5
+ VERSION = '0.12.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', '>= 0.81', '< 1.2'
23
- spec.add_runtime_dependency 'rubocop-rails', '>= 2.5', '< 2.9'
24
- spec.add_runtime_dependency 'rubocop-rspec', '>= 1.39', '< 1.45'
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:
metadata CHANGED
@@ -1,75 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rf-stylez
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.12.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-04 00:00:00.000000000 Z
11
+ date: 2021-08-23 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
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0.81'
20
- - - "<"
17
+ - - '='
21
18
  - !ruby/object:Gem::Version
22
- version: '1.2'
19
+ version: 1.15.0
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
24
+ - - '='
28
25
  - !ruby/object:Gem::Version
29
- version: '0.81'
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: '1.2'
26
+ version: 1.15.0
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: rubocop-rails
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '2.5'
40
- - - "<"
31
+ - - '='
41
32
  - !ruby/object:Gem::Version
42
- version: '2.9'
33
+ version: 2.10.1
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '2.5'
50
- - - "<"
38
+ - - '='
51
39
  - !ruby/object:Gem::Version
52
- version: '2.9'
40
+ version: 2.10.1
53
41
  - !ruby/object:Gem::Dependency
54
42
  name: rubocop-rspec
55
43
  requirement: !ruby/object:Gem::Requirement
56
44
  requirements:
57
- - - ">="
45
+ - - '='
58
46
  - !ruby/object:Gem::Version
59
- version: '1.39'
60
- - - "<"
61
- - !ruby/object:Gem::Version
62
- version: '1.45'
47
+ version: 2.3.0
63
48
  type: :runtime
64
49
  prerelease: false
65
50
  version_requirements: !ruby/object:Gem::Requirement
66
51
  requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: '1.39'
70
- - - "<"
52
+ - - '='
71
53
  - !ruby/object:Gem::Version
72
- version: '1.45'
54
+ version: 2.3.0
73
55
  - !ruby/object:Gem::Dependency
74
56
  name: get_env
75
57
  requirement: !ruby/object:Gem::Requirement
@@ -98,6 +80,20 @@ dependencies:
98
80
  - - "~>"
99
81
  - !ruby/object:Gem::Version
100
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'
101
97
  - !ruby/object:Gem::Dependency
102
98
  name: bundler
103
99
  requirement: !ruby/object:Gem::Requirement
@@ -177,6 +173,7 @@ extensions: []
177
173
  extra_rdoc_files: []
178
174
  files:
179
175
  - ".circleci/config.yml"
176
+ - ".github/dependabot.yml"
180
177
  - ".gitignore"
181
178
  - ".rspec"
182
179
  - ".rubocop.yml"
@@ -195,6 +192,7 @@ files:
195
192
  - lib/rubocop/cop/lint/no_http_party.rb
196
193
  - lib/rubocop/cop/lint/no_json.rb
197
194
  - lib/rubocop/cop/lint/no_untyped_raise.rb
195
+ - lib/rubocop/cop/lint/no_vcr_recording.rb
198
196
  - lib/rubocop/cop/lint/obscure.rb
199
197
  - lib/rubocop/cop/lint/use_positive_int32_validator.rb
200
198
  - rails/rubocop.yml