ut-rubocop-rails 0.0.1
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 +7 -0
- data/.gemspec +23 -0
- data/.gitignore +1 -0
- data/.rubocop.yml +1 -0
- data/Gemfile +3 -0
- data/README.markdown +47 -0
- data/default.yml +44 -0
- data/lib/ut/cops/manage_ability.rb +19 -0
- data/lib/ut/style_rails.rb +9 -0
- data/lib/ut/style_rails/version.rb +9 -0
- metadata +80 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dc06be5b3cf0abc983e40e2cbfe2547860b989078dd662f9af62d4fbd1f3e287
|
4
|
+
data.tar.gz: 45ebefd346e8ddde9fbe52e3aa8d0df8967b9294be626422b8feb73f9020de9f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a6928e080b479d5e5aa995e719a25dad86fa4c3c73aecbf269e93b296f564bd730e3b65e700a5fb4461a64e8e807bbecd4703667aa4deaa6789101868e5c4d76
|
7
|
+
data.tar.gz: a11fe3761951514841dcd6e7d10bd21b9c398f37e94cec9dbfc601d13875755a5815171dce526267f7f3e389f895a043f60b1bf0944ef8ea104f5151919b5259
|
data/.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "ut/style_rails/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ut-rubocop-rails"
|
8
|
+
spec.version = UT::StyleRails::Version::VERSION
|
9
|
+
spec.authors = ["Justin Aiken"]
|
10
|
+
spec.email = ["jaiken@usertesting.com"]
|
11
|
+
spec.description = %q{UT Rubocop Rails}
|
12
|
+
spec.summary = %q{UserTesting's rubocop rules for Rails}
|
13
|
+
spec.homepage = ""
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/).reject { |f| f.match(%r{^(spec|doc)/}) }
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "rubocop", "0.82.0"
|
22
|
+
spec.add_dependency "rubocop-rails", "2.0.1"
|
23
|
+
end
|
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Gemfile.lock
|
data/.rubocop.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
inherit_from: default.yml
|
data/Gemfile
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# UT Rubocop-Rails
|
2
|
+
|
3
|
+
This gem extends [ut-rubocop](https://github.com/usertesting/ut_rubocop) to add Rails specific cops.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add the gem to your `Gemfile` in the dev/test group:
|
8
|
+
|
9
|
+
You don't need to add `rubocop` itself, this takes care of that.
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
group :test, :development do
|
13
|
+
...
|
14
|
+
gem "ut-rubocop", require: false
|
15
|
+
gem "ut-rubocop-rails", require: false
|
16
|
+
```
|
17
|
+
|
18
|
+
In your `.rubocop.yml` file, add these lines near the top:
|
19
|
+
|
20
|
+
```yaml
|
21
|
+
inherit_gem:
|
22
|
+
ut-rubocop:
|
23
|
+
- default.yml
|
24
|
+
inherit_gem:
|
25
|
+
ut-rubocop-rails:
|
26
|
+
- default.yml
|
27
|
+
```
|
28
|
+
|
29
|
+
## Usage
|
30
|
+
|
31
|
+
`bundle exec rubocop`
|
32
|
+
|
33
|
+
## License
|
34
|
+
|
35
|
+
[MIT](LICENSE).
|
36
|
+
|
37
|
+
Library created by [UserTesting](https://usertesting.com)
|
38
|
+
|
39
|
+

|
40
|
+
|
41
|
+
## Contributing
|
42
|
+
|
43
|
+
1. Fork it ( https://github.com/usertesting/ut_rubocop_rails/fork )
|
44
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
45
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
46
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
47
|
+
5. Create a new Pull Request
|
data/default.yml
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require:
|
2
|
+
- rubocop-rails
|
3
|
+
|
4
|
+
AllCops:
|
5
|
+
DisabledByDefault: true
|
6
|
+
DisplayCopNames: true
|
7
|
+
DisplayStyleGuide: true
|
8
|
+
Exclude:
|
9
|
+
- 'app/assets/**/*'
|
10
|
+
- 'node_modules/**/*'
|
11
|
+
- 'vendor/**/*'
|
12
|
+
- 'gems/**/*'
|
13
|
+
|
14
|
+
# ------------------------------------ Rails --------------------------------------------
|
15
|
+
Rails/Exit:
|
16
|
+
Description: >-
|
17
|
+
Favor `fail`, `break`, `return`, etc. over `exit` in
|
18
|
+
application or library code outside of Rake files to avoid
|
19
|
+
exits during unit testing or running in production.
|
20
|
+
Enabled: true
|
21
|
+
|
22
|
+
Rails/Output:
|
23
|
+
Description: 'Checks for calls to puts, print, etc.'
|
24
|
+
Enabled: true
|
25
|
+
Exclude:
|
26
|
+
- db/migrate/*.rb
|
27
|
+
- lib/perform_deployment.rb
|
28
|
+
- lib/asset_manifest.rb
|
29
|
+
- lib/chores/log.rb
|
30
|
+
- lib/generators/chore/chore_generator.rb
|
31
|
+
|
32
|
+
Rails/PluralizationGrammar:
|
33
|
+
Description: 'Checks for incorrect grammar when using methods like `3.day.ago`.'
|
34
|
+
Enabled: true
|
35
|
+
|
36
|
+
Rails/ScopeArgs:
|
37
|
+
Description: 'Checks the arguments of ActiveRecord scopes.'
|
38
|
+
Enabled: true
|
39
|
+
|
40
|
+
Rails/UniqBeforePluck:
|
41
|
+
Description: 'Prefer the use of uniq or distinct before pluck.'
|
42
|
+
Enabled: true
|
43
|
+
|
44
|
+
# ------------------------------------ /Rails --------------------------------------------
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RuboCop
|
4
|
+
module Cop
|
5
|
+
module UT
|
6
|
+
class ManageAbility < ::RuboCop::Cop::Cop
|
7
|
+
|
8
|
+
MSG = "Do not use `:manage` when checking abilities"
|
9
|
+
|
10
|
+
def on_send(send_node)
|
11
|
+
return unless send_node.method?(:can?) || send_node.method?(:authorize!)
|
12
|
+
ability = send_node.first_argument
|
13
|
+
return unless ability.sym_type? && ability.source == ":manage"
|
14
|
+
add_offense send_node, location: send_node.first_argument.loc.expression
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ut-rubocop-rails
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Justin Aiken
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-08-18 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rubocop
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.82.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.82.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rubocop-rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.0.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.0.1
|
41
|
+
description: UT Rubocop Rails
|
42
|
+
email:
|
43
|
+
- jaiken@usertesting.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- ".gemspec"
|
49
|
+
- ".gitignore"
|
50
|
+
- ".rubocop.yml"
|
51
|
+
- Gemfile
|
52
|
+
- README.markdown
|
53
|
+
- default.yml
|
54
|
+
- lib/ut/cops/manage_ability.rb
|
55
|
+
- lib/ut/style_rails.rb
|
56
|
+
- lib/ut/style_rails/version.rb
|
57
|
+
homepage: ''
|
58
|
+
licenses:
|
59
|
+
- MIT
|
60
|
+
metadata: {}
|
61
|
+
post_install_message:
|
62
|
+
rdoc_options: []
|
63
|
+
require_paths:
|
64
|
+
- lib
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
requirements: []
|
76
|
+
rubygems_version: 3.0.6
|
77
|
+
signing_key:
|
78
|
+
specification_version: 4
|
79
|
+
summary: UserTesting's rubocop rules for Rails
|
80
|
+
test_files: []
|