rubocop-airbnb 1.0.0 → 1.3.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/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:
|