rubocop-airbnb 1.0.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +2 -2
- data/config/rubocop-airbnb.yml +4 -0
- data/config/rubocop-layout.yml +61 -24
- data/config/rubocop-lint.yml +24 -43
- data/config/rubocop-metrics.yml +2 -2
- data/config/rubocop-naming.yml +25 -8
- data/config/rubocop-performance.yml +0 -8
- data/config/rubocop-rails.yml +8 -2
- data/config/rubocop-security.yml +4 -0
- data/config/rubocop-style.yml +103 -79
- data/lib/rubocop/airbnb/version.rb +1 -1
- data/lib/rubocop/cop/airbnb/simple_unless.rb +19 -0
- data/rubocop-airbnb.gemspec +1 -1
- data/spec/rubocop/cop/airbnb/simple_unless_spec.rb +36 -0
- metadata +8 -5
@@ -0,0 +1,19 @@
|
|
1
|
+
module RuboCop
|
2
|
+
module Cop
|
3
|
+
module Airbnb
|
4
|
+
# Cop to tackle prevent unless statements with multiple conditions
|
5
|
+
# https://github.com/airbnb/ruby#unless-with-multiple-conditions
|
6
|
+
class SimpleUnless < Cop
|
7
|
+
MSG = 'Unless usage is okay when there is only one conditional'.freeze
|
8
|
+
|
9
|
+
def_node_matcher :multiple_conditionals?, '(if ({and or :^} ...) ...)'
|
10
|
+
|
11
|
+
def on_if(node)
|
12
|
+
return unless node.unless?
|
13
|
+
|
14
|
+
add_offense(node) if multiple_conditionals?(node)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/rubocop-airbnb.gemspec
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
describe RuboCop::Cop::Airbnb::SimpleUnless do
|
2
|
+
subject(:cop) { described_class.new }
|
3
|
+
|
4
|
+
it 'rejects unless with multiple conditionals' do
|
5
|
+
source = [
|
6
|
+
'unless boolean_condition || another_method',
|
7
|
+
' return true',
|
8
|
+
'end',
|
9
|
+
].join("\n")
|
10
|
+
|
11
|
+
inspect_source(source)
|
12
|
+
expect(cop.offenses.size).to eq(1)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'allows if with multiple conditionals' do
|
16
|
+
source = [
|
17
|
+
'if boolean_condition || another_method',
|
18
|
+
' return true',
|
19
|
+
'end',
|
20
|
+
].join("\n")
|
21
|
+
|
22
|
+
inspect_source(source)
|
23
|
+
expect(cop.offenses).to be_empty
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'allows with modifier if operator conditional' do
|
27
|
+
source = [
|
28
|
+
'unless boolean_condition',
|
29
|
+
' return true',
|
30
|
+
'end',
|
31
|
+
].join("\n")
|
32
|
+
|
33
|
+
inspect_source(source)
|
34
|
+
expect(cop.offenses).to be_empty
|
35
|
+
end
|
36
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubocop-airbnb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Airbnb Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.54.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: 0.
|
26
|
+
version: 0.54.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rubocop-rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,6 +101,7 @@ files:
|
|
101
101
|
- lib/rubocop/cop/airbnb/rspec_describe_or_context_under_namespace.rb
|
102
102
|
- lib/rubocop/cop/airbnb/rspec_environment_modification.rb
|
103
103
|
- lib/rubocop/cop/airbnb/simple_modifier_conditional.rb
|
104
|
+
- lib/rubocop/cop/airbnb/simple_unless.rb
|
104
105
|
- lib/rubocop/cop/airbnb/spec_constant_assignment.rb
|
105
106
|
- lib/rubocop/cop/airbnb/unsafe_yaml_marshal.rb
|
106
107
|
- rubocop-airbnb.gemspec
|
@@ -120,6 +121,7 @@ files:
|
|
120
121
|
- spec/rubocop/cop/airbnb/rspec_describe_or_context_under_namespace_spec.rb
|
121
122
|
- spec/rubocop/cop/airbnb/rspec_environment_modification_spec.rb
|
122
123
|
- spec/rubocop/cop/airbnb/simple_modifier_conditional_spec.rb
|
124
|
+
- spec/rubocop/cop/airbnb/simple_unless_spec.rb
|
123
125
|
- spec/rubocop/cop/airbnb/spec_constant_assignment_spec.rb
|
124
126
|
- spec/rubocop/cop/airbnb/unsafe_yaml_marshal_spec.rb
|
125
127
|
- spec/spec_helper.rb
|
@@ -143,8 +145,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
145
|
version: '0'
|
144
146
|
requirements: []
|
145
147
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
148
|
+
rubygems_version: 2.2.5
|
147
149
|
signing_key:
|
148
150
|
specification_version: 4
|
149
151
|
summary: Custom code style checking for Airbnb.
|
150
152
|
test_files: []
|
153
|
+
has_rdoc:
|