rubocul 2.0.1 → 4.0.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/README.md +8 -7
- data/lib/rubocop/cop/cul/capybara_screenshots.rb +24 -0
- data/lib/rubocop/cop/cul_cops.rb +3 -0
- data/lib/rubocop/cul.rb +4 -0
- data/rubocul.gemspec +8 -3
- data/rubocul_default.yml +50 -16
- data/rubocul_rules_bundler.yml +9 -0
- data/rubocul_rules_graphql.yml +2 -0
- data/rubocul_rules_performance.yml +2 -0
- data/rubocul_rules_rails.yml +8 -0
- data/rubocul_rules_rspec.yml +2 -0
- data/rubocul_rules_security.yml +3 -0
- data/spec/rubocop/cop/cul/capybara_screenshots_spec.rb +25 -0
- metadata +90 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42e8f4ad2c719d37160b8dd9f14c7fbbf2a3f4fac6b2c11f3a9b31f4ae04940b
|
4
|
+
data.tar.gz: ed2cb2718291193ec8eea912aedc00f78ddfd15241a828f934a57f25fe5566cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90bd6f30944251d6a6f8178e5542299752b94fd7b6900eb2fd8ddde95fef7837e76c1565e2536e0740b94168e52673d32c766d6b70299e732395372ba60bb991
|
7
|
+
data.tar.gz: 77b4f3d4a23fc7055d1df9856efbd42aa7043c16b8be720db5eee9df32b05dc88ae9236b34756911a235d2810bd77d90f186de45dea2972ddbeec69618bb1473
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ RuboCop defaults for Columbia University Libraries projects.
|
|
7
7
|
Add this line to your Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem 'rubocul', '~>
|
10
|
+
gem 'rubocul', '~> 4.0'
|
11
11
|
```
|
12
12
|
|
13
13
|
And then execute:
|
@@ -21,8 +21,8 @@ inherit_gem:
|
|
21
21
|
rubocul: rubocul_default.yml
|
22
22
|
|
23
23
|
AllCops:
|
24
|
-
TargetRubyVersion:
|
25
|
-
TargetRailsVersion:
|
24
|
+
TargetRubyVersion: 3.1.0 # Update to your version of ruby
|
25
|
+
TargetRailsVersion: 7.0.1 # Update to your version of rails
|
26
26
|
```
|
27
27
|
|
28
28
|
## .rubocop_todo.yml
|
@@ -31,10 +31,11 @@ Understandably, it can be difficult to address all rubocop issues when adding ru
|
|
31
31
|
```
|
32
32
|
rubocop --auto-gen-config --auto-gen-only-exclude --exclude-limit 10000
|
33
33
|
```
|
34
|
-
## Versioning & Dependencies
|
35
|
-
|
36
|
-
This project depends on `bixby`, which depends on `rubocop` and `rubocop-rspec`. `bixby` supports versions its dependent gems pessimistically. Therefore we also support version of `bixby` pessimistically. Once we get a release candidate we will match major version numbers with `bixby` major version numbers.
|
37
34
|
|
38
35
|
## Configuration Suggestion
|
39
36
|
|
40
|
-
If
|
37
|
+
If you'd like to propose a change to our configuration, please open a github pull request with the change (in rubocop_default, or the appropriate rubocup_rules_* file) with an explanation of why it would be useful.
|
38
|
+
|
39
|
+
## Testing
|
40
|
+
|
41
|
+
Note that testing of custom rubocop rules is not currently set up for this gem, but is planned for the future. We have a test in the spec directory that we'll eventually want to run once tests are ready to go.
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module CUL
|
6
|
+
# Do not commit specs that call `page.save_screenshot`
|
7
|
+
class CapybaraScreenshots < RuboCop::Cop::Cop
|
8
|
+
MSG = 'Remove debugging/instrumentation such as `page#save_screenshot` before committing.'
|
9
|
+
# This cop uses a node matcher for matching node pattern.
|
10
|
+
# See https://github.com/rubocop/rubocop-ast/blob/master/docs/modules/ROOT/pages/node_pattern.adoc
|
11
|
+
#
|
12
|
+
# For example
|
13
|
+
def_node_matcher :called_forbidden_method?, <<-PATTERN
|
14
|
+
(send (send nil? :page) :save_screenshot)
|
15
|
+
PATTERN
|
16
|
+
|
17
|
+
def on_send(node)
|
18
|
+
return unless called_forbidden_method?(node)
|
19
|
+
add_offense(node, location: :expression, message: MSG)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/rubocop/cul.rb
ADDED
data/rubocul.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = 'rubocul'
|
3
|
-
spec.version = '
|
4
|
-
spec.authors = ["
|
3
|
+
spec.version = '4.0.0'
|
4
|
+
spec.authors = ["Eric O'Hanlon", "Ben Armintor", "Carla Galarza"]
|
5
5
|
|
6
6
|
spec.summary = 'A style configuration for Rubocop'
|
7
7
|
spec.description = 'Recommended Rubocop configuration for Ruby projects created by the Columbia University Libraries'
|
@@ -12,5 +12,10 @@ Gem::Specification.new do |spec|
|
|
12
12
|
|
13
13
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
14
14
|
|
15
|
-
spec.add_dependency '
|
15
|
+
spec.add_dependency 'rubocop', '~> 1.25.1'
|
16
|
+
spec.add_dependency 'rubocop-ast'
|
17
|
+
spec.add_dependency 'rubocop-performance'
|
18
|
+
spec.add_dependency 'rubocop-rails'
|
19
|
+
spec.add_dependency 'rubocop-rspec'
|
20
|
+
spec.add_dependency 'rubocop-graphql'
|
16
21
|
end
|
data/rubocul_default.yml
CHANGED
@@ -1,35 +1,69 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
inherit_mode:
|
5
|
-
merge:
|
6
|
-
- Exclude
|
1
|
+
require:
|
2
|
+
- rubocop-performance
|
3
|
+
- ./lib/rubocop/cul.rb
|
7
4
|
|
8
5
|
AllCops:
|
6
|
+
TargetRubyVersion: 2.7
|
7
|
+
# Disable any new "pending" cops that are introduced in a minor version update of rubocop.
|
8
|
+
# We only want to opt into these explicitly, or accept them when we update to a new MAJOR
|
9
|
+
# version of rubocop. See: https://docs.rubocop.org/rubocop/versioning.html#pending-cops
|
10
|
+
NewCops: disable
|
11
|
+
# DisabledByDefault: true
|
12
|
+
DisplayCopNames: true
|
9
13
|
Exclude:
|
10
|
-
- '
|
14
|
+
- 'db/**/*'
|
15
|
+
- 'script/**/*'
|
16
|
+
- 'bin/**/*'
|
17
|
+
- 'tmp/**/*'
|
18
|
+
- 'vendor/**/*'
|
11
19
|
- 'node_modules/**/*'
|
20
|
+
- 'app/javascript/**/*'
|
12
21
|
|
13
|
-
|
14
|
-
|
15
|
-
|
22
|
+
inherit_from:
|
23
|
+
- rubocul_rules_bundler.yml
|
24
|
+
- rubocul_rules_performance.yml
|
25
|
+
- rubocul_rules_rails.yml
|
26
|
+
- rubocul_rules_rspec.yml
|
27
|
+
- rubocul_rules_security.yml
|
16
28
|
|
17
|
-
|
18
|
-
|
19
|
-
|
29
|
+
Layout/HashAlignment:
|
30
|
+
SupportedHashRocketStyles:
|
31
|
+
- key
|
32
|
+
- table
|
33
|
+
SupportedColonStyles:
|
34
|
+
- key
|
35
|
+
- table
|
20
36
|
|
21
|
-
|
37
|
+
Style/RedundantSelf:
|
22
38
|
Enabled: false
|
23
39
|
|
40
|
+
Style/HashSyntax:
|
41
|
+
# We may change this at some point, but it'll take some getting used to. To be safe, we're
|
42
|
+
# forcing explicit hash literal values for now.
|
43
|
+
EnforcedShorthandSyntax: never
|
44
|
+
|
45
|
+
Layout/FirstHashElementIndentation:
|
46
|
+
EnforcedStyle: consistent
|
47
|
+
|
24
48
|
Style/BlockDelimiters:
|
25
49
|
EnforcedStyle: braces_for_chaining
|
26
50
|
|
27
|
-
Style/
|
51
|
+
Style/ClassAndModuleChildren:
|
52
|
+
Enabled: false
|
53
|
+
|
54
|
+
Style/WordArray:
|
55
|
+
Enabled: false
|
56
|
+
|
57
|
+
Style/SymbolArray:
|
58
|
+
Enabled: false
|
59
|
+
|
60
|
+
RSpec/ExpectInHook:
|
28
61
|
Enabled: false
|
29
62
|
|
30
63
|
Metrics/BlockLength:
|
31
64
|
Exclude:
|
32
65
|
- 'spec/**/*'
|
33
66
|
|
34
|
-
|
67
|
+
# TODO: Decide how we feel about this later
|
68
|
+
Naming/VariableNumber:
|
35
69
|
Enabled: false
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
require 'rubocop'
|
3
|
+
require 'rubocop/cul'
|
4
|
+
|
5
|
+
RSpec.describe RuboCop::Cop::CUL::CapybaraScreenshots do
|
6
|
+
subject(:cop) { described_class.new(config) }
|
7
|
+
|
8
|
+
let(:config) { RuboCop::Config.new }
|
9
|
+
|
10
|
+
# TODO: Write test code
|
11
|
+
#
|
12
|
+
# For example
|
13
|
+
it 'registers an offense when using calling `page#save_screenshot`' do
|
14
|
+
expect_offense(<<-RUBY.strip_indent)
|
15
|
+
page.save_screenshot
|
16
|
+
^^^^^^^^^^^^^^^^^^^^ Remove debugging/instrumentation such as `page#save_screenshot` before committing.
|
17
|
+
RUBY
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'does not register an offense when using `page#good_method`' do
|
21
|
+
expect_no_offenses(<<-RUBY.strip_indent)
|
22
|
+
page.good_method
|
23
|
+
RUBY
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocul
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Carla Galarza
|
8
7
|
- Eric O'Hanlon
|
8
|
+
- Ben Armintor
|
9
|
+
- Carla Galarza
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2022-02-25 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: bundler
|
@@ -26,19 +27,89 @@ dependencies:
|
|
26
27
|
- !ruby/object:Gem::Version
|
27
28
|
version: '2.0'
|
28
29
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
30
|
+
name: rubocop
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - "~>"
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.25.1
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.25.1
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rubocop-ast
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: rubocop-performance
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :runtime
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: rubocop-rails
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rubocop-rspec
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: rubocop-graphql
|
30
101
|
requirement: !ruby/object:Gem::Requirement
|
31
102
|
requirements:
|
32
|
-
- -
|
103
|
+
- - ">="
|
33
104
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
105
|
+
version: '0'
|
35
106
|
type: :runtime
|
36
107
|
prerelease: false
|
37
108
|
version_requirements: !ruby/object:Gem::Requirement
|
38
109
|
requirements:
|
39
|
-
- -
|
110
|
+
- - ">="
|
40
111
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
112
|
+
version: '0'
|
42
113
|
description: Recommended Rubocop configuration for Ruby projects created by the Columbia
|
43
114
|
University Libraries
|
44
115
|
email:
|
@@ -51,8 +122,18 @@ files:
|
|
51
122
|
- LICENSE
|
52
123
|
- README.md
|
53
124
|
- Rakefile
|
125
|
+
- lib/rubocop/cop/cul/capybara_screenshots.rb
|
126
|
+
- lib/rubocop/cop/cul_cops.rb
|
127
|
+
- lib/rubocop/cul.rb
|
54
128
|
- rubocul.gemspec
|
55
129
|
- rubocul_default.yml
|
130
|
+
- rubocul_rules_bundler.yml
|
131
|
+
- rubocul_rules_graphql.yml
|
132
|
+
- rubocul_rules_performance.yml
|
133
|
+
- rubocul_rules_rails.yml
|
134
|
+
- rubocul_rules_rspec.yml
|
135
|
+
- rubocul_rules_security.yml
|
136
|
+
- spec/rubocop/cop/cul/capybara_screenshots_spec.rb
|
56
137
|
homepage: http://github.com/cul/rubocul
|
57
138
|
licenses: []
|
58
139
|
metadata: {}
|
@@ -71,7 +152,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
152
|
- !ruby/object:Gem::Version
|
72
153
|
version: '0'
|
73
154
|
requirements: []
|
74
|
-
rubygems_version: 3.
|
155
|
+
rubygems_version: 3.3.5
|
75
156
|
signing_key:
|
76
157
|
specification_version: 4
|
77
158
|
summary: A style configuration for Rubocop
|