rubocop-airbnb 4.0.0 → 5.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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/config/default.yml +9 -8
  4. data/config/rubocop-performance.yml +3 -0
  5. data/config/rubocop-rails.yml +3 -0
  6. data/config/rubocop-rspec.yml +4 -9
  7. data/lib/rubocop/airbnb/version.rb +1 -1
  8. data/lib/rubocop/cop/airbnb/class_or_module_declared_in_wrong_file.rb +1 -1
  9. data/lib/rubocop/cop/airbnb/const_assigned_in_wrong_file.rb +1 -1
  10. data/lib/rubocop/cop/airbnb/continuation_slash.rb +1 -1
  11. data/lib/rubocop/cop/airbnb/default_scope.rb +1 -1
  12. data/lib/rubocop/cop/airbnb/factory_attr_references_class.rb +1 -1
  13. data/lib/rubocop/cop/airbnb/factory_class_use_string.rb +1 -1
  14. data/lib/rubocop/cop/airbnb/mass_assignment_accessible_modifier.rb +1 -1
  15. data/lib/rubocop/cop/airbnb/module_method_in_wrong_file.rb +1 -1
  16. data/lib/rubocop/cop/airbnb/no_timeout.rb +1 -1
  17. data/lib/rubocop/cop/airbnb/opt_arg_parameters.rb +1 -1
  18. data/lib/rubocop/cop/airbnb/phrase_bundle_keys.rb +1 -1
  19. data/lib/rubocop/cop/airbnb/risky_activerecord_invocation.rb +1 -1
  20. data/lib/rubocop/cop/airbnb/rspec_describe_or_context_under_namespace.rb +1 -1
  21. data/lib/rubocop/cop/airbnb/rspec_environment_modification.rb +1 -1
  22. data/lib/rubocop/cop/airbnb/simple_modifier_conditional.rb +1 -1
  23. data/lib/rubocop/cop/airbnb/simple_unless.rb +1 -1
  24. data/lib/rubocop/cop/airbnb/spec_constant_assignment.rb +3 -4
  25. data/lib/rubocop/cop/airbnb/unsafe_yaml_marshal.rb +1 -1
  26. data/rubocop-airbnb.gemspec +3 -3
  27. data/spec/rubocop/cop/airbnb/class_or_module_declared_in_wrong_file_spec.rb +69 -102
  28. data/spec/rubocop/cop/airbnb/const_assigned_in_wrong_file_spec.rb +58 -101
  29. data/spec/rubocop/cop/airbnb/continuation_slash_spec.rb +77 -112
  30. data/spec/rubocop/cop/airbnb/default_scope_spec.rb +24 -31
  31. data/spec/rubocop/cop/airbnb/factory_attr_references_class_spec.rb +81 -121
  32. data/spec/rubocop/cop/airbnb/factory_class_use_string_spec.rb +12 -20
  33. data/spec/rubocop/cop/airbnb/mass_assignment_accessible_modifier_spec.rb +17 -22
  34. data/spec/rubocop/cop/airbnb/module_method_in_wrong_file_spec.rb +75 -114
  35. data/spec/rubocop/cop/airbnb/no_timeout_spec.rb +16 -22
  36. data/spec/rubocop/cop/airbnb/opt_arg_parameter_spec.rb +46 -73
  37. data/spec/rubocop/cop/airbnb/phrase_bundle_keys_spec.rb +5 -20
  38. data/spec/rubocop/cop/airbnb/risky_activerecord_invocation_spec.rb +19 -33
  39. data/spec/rubocop/cop/airbnb/rspec_describe_or_context_under_namespace_spec.rb +109 -187
  40. data/spec/rubocop/cop/airbnb/rspec_environment_modification_spec.rb +31 -41
  41. data/spec/rubocop/cop/airbnb/simple_modifier_conditional_spec.rb +64 -88
  42. data/spec/rubocop/cop/airbnb/simple_unless_spec.rb +17 -27
  43. data/spec/rubocop/cop/airbnb/spec_constant_assignment_spec.rb +42 -60
  44. data/spec/rubocop/cop/airbnb/unsafe_yaml_marshal_spec.rb +24 -36
  45. data/spec/spec_helper.rb +2 -0
  46. metadata +8 -8
@@ -1,64 +1,54 @@
1
- describe RuboCop::Cop::Airbnb::RspecEnvironmentModification do
2
- subject(:cop) { described_class.new }
3
-
1
+ describe RuboCop::Cop::Airbnb::RspecEnvironmentModification, :config do
4
2
  before(:each) do
5
3
  allow(cop).to receive(:is_spec_file?).and_return(true)
6
4
  end
7
5
 
8
6
  it 'does not allow assignment of Rails.env' do
9
- source = [
10
- 'Rails.env = :production',
11
- ].join("\n")
12
- inspect_source(source)
13
- expect(cop.offenses.size).to eql(1)
7
+ expect_offense(<<~RUBY)
8
+ Rails.env = :production
9
+ ^^^^^^^^^^^^^^^^^^^^^^^ Do not stub or set Rails.env in specs. [...]
10
+ RUBY
14
11
  end
15
12
 
16
13
  it 'allows assignment of Rails.env when not in spec' do
17
14
  allow(cop).to receive(:is_spec_file?).and_return(false)
18
- source = [
19
- 'Rails.env = :production',
20
- ].join("\n")
21
- inspect_source(source)
22
- expect(cop.offenses).to be_empty
15
+ expect_no_offenses(<<~RUBY)
16
+ Rails.env = :production
17
+ RUBY
23
18
  end
24
19
 
25
20
  it 'rejects allow style stubbing of Rails.env' do
26
- source = [
27
- 'def some_method(a)',
28
- ' allow(Rails.env).to receive(:production?)',
29
- 'end',
30
- ].join("\n")
31
- inspect_source(source)
32
- expect(cop.offenses.size).to eql(1)
21
+ expect_offense(<<~RUBY)
22
+ def some_method(a)
23
+ allow(Rails.env).to receive(:production?)
24
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Do not stub or set Rails.env in specs. [...]
25
+ end
26
+ RUBY
33
27
  end
34
28
 
35
29
  it 'rejects expect style stubbing of Rails.env' do
36
- source = [
37
- 'def some_method(a)',
38
- ' expect(Rails.env).to receive(:production?)',
39
- 'end',
40
- ].join("\n")
41
- inspect_source(source)
42
- expect(cop.offenses.size).to eql(1)
30
+ expect_offense(<<~RUBY)
31
+ def some_method(a)
32
+ expect(Rails.env).to receive(:production?)
33
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Do not stub or set Rails.env in specs. [...]
34
+ end
35
+ RUBY
43
36
  end
44
37
 
45
38
  it 'rejects .stub stubbing of Rails.env' do
46
- source = [
47
- 'def some_method(a)',
48
- ' Rails.env.stub(:production)',
49
- 'end',
50
- ].join("\n")
51
- inspect_source(source)
52
- expect(cop.offenses.size).to eql(1)
39
+ expect_offense(<<~RUBY)
40
+ def some_method(a)
41
+ Rails.env.stub(:production)
42
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Do not stub or set Rails.env in specs. [...]
43
+ end
44
+ RUBY
53
45
  end
54
46
 
55
47
  it 'allows stub_env' do
56
- source = [
57
- 'def some_method(a)',
58
- ' stub_env(:production)',
59
- 'end',
60
- ].join("\n")
61
- inspect_source(source)
62
- expect(cop.offenses).to be_empty
48
+ expect_no_offenses(<<~RUBY)
49
+ def some_method(a)
50
+ stub_env(:production)
51
+ end
52
+ RUBY
63
53
  end
64
54
  end
@@ -1,122 +1,98 @@
1
- describe RuboCop::Cop::Airbnb::SimpleModifierConditional do
2
- subject(:cop) { described_class.new }
3
-
1
+ describe RuboCop::Cop::Airbnb::SimpleModifierConditional, :config do
4
2
  context 'multiple conditionals' do
5
3
  it 'rejects with modifier if with multiple conditionals' do
6
- source = [
7
- 'return true if some_method == 0 || another_method',
8
- ].join("\n")
9
-
10
- inspect_source(source)
11
- expect(cop.offenses.size).to eq(1)
4
+ expect_offense(<<~RUBY)
5
+ return true if some_method == 0 || another_method
6
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
7
+ RUBY
12
8
  end
13
9
 
14
10
  it 'rejects with modifier unless with multiple conditionals' do
15
- source = [
16
- 'return true unless true && false',
17
- ].join("\n")
18
-
19
- inspect_source(source)
20
- expect(cop.offenses.size).to eq(1)
11
+ expect_offense(<<~RUBY)
12
+ return true unless true && false
13
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
14
+ RUBY
21
15
  end
22
16
 
23
17
  it 'allows with modifier if operator conditional' do
24
- source = [
25
- 'return true if some_method == 0',
26
- ].join("\n")
27
-
28
- inspect_source(source)
29
- expect(cop.offenses).to be_empty
18
+ expect_no_offenses(<<~RUBY)
19
+ return true if some_method == 0
20
+ RUBY
30
21
  end
31
22
 
32
23
  it 'allows with modifier if with single conditional' do
33
- source = [
34
- 'return true if some_method == 0',
35
- 'return true if another_method',
36
- ].join("\n")
37
-
38
- inspect_source(source)
39
- expect(cop.offenses).to be_empty
24
+ expect_no_offenses(<<~RUBY)
25
+ return true if some_method == 0
26
+ return true if another_method
27
+ RUBY
40
28
  end
41
29
 
42
30
  it 'allows with modifier if and unless with single conditional ' do
43
- source = [
44
- 'return true if some_method',
45
- 'return true unless another_method > 5',
46
- ].join("\n")
47
-
48
- inspect_source(source)
49
- expect(cop.offenses).to be_empty
31
+ expect_no_offenses(<<~RUBY)
32
+ return true if some_method
33
+ return true unless another_method > 5
34
+ RUBY
50
35
  end
51
36
 
52
37
  it 'allows multiple conditionals in block form' do
53
- source = [
54
- 'if some_method == 0 && another_method > 5 || true || false',
55
- ' return true',
56
- 'end',
57
- ].join("\n")
58
-
59
- inspect_source(source)
60
- expect(cop.offenses).to be_empty
38
+ expect_no_offenses(<<~RUBY)
39
+ if some_method == 0 && another_method > 5 || true || false
40
+ return true
41
+ end
42
+ RUBY
61
43
  end
62
44
  end
63
45
 
64
46
  context 'multiple lines' do
65
47
  it 'rejects modifier conditionals that span multiple lines' do
66
- source = [
67
- 'return true if true ||',
68
- ' false',
69
- 'return true unless true ||',
70
- ' false',
71
- ].join("\n")
72
-
73
- inspect_source(source)
74
- expect(cop.offenses.size).to eq(2)
48
+ expect_offense(<<~RUBY)
49
+ return true if true ||
50
+ ^^^^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
51
+ false
52
+ return true unless true ||
53
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
54
+ false
55
+ RUBY
75
56
  end
76
57
 
77
58
  it 'rejects with modifier if with method that spans multiple lines' do
78
- source = [
79
- 'return true if some_method(param1,',
80
- ' param2,',
81
- ' param3)',
82
- 'return true unless some_method(param1,',
83
- ' param2,',
84
- ' param3)',
85
- ].join("\n")
86
-
87
- inspect_source(source)
88
- expect(cop.offenses.size).to eq(2)
59
+ expect_offense(<<~RUBY)
60
+ return true if some_method(param1,
61
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
62
+ param2,
63
+ param3)
64
+ return true unless some_method(param1,
65
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
66
+ param2,
67
+ param3)
68
+ RUBY
89
69
  end
90
70
 
91
71
  it 'rejects inline if/unless after a multiline statement' do
92
- source = [
93
- 'return some_method(',
94
- ' param1,',
95
- ' param2,',
96
- ' param3',
97
- ') if another_method == 0',
98
- 'return some_method(',
99
- ' param1,',
100
- ' param2,',
101
- ' param3',
102
- ') unless another_method == 0',
103
- ].join("\n")
104
-
105
- inspect_source(source)
106
- expect(cop.offenses.size).to eq(2)
72
+ expect_offense(<<~RUBY)
73
+ return some_method(
74
+ ^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
75
+ param1,
76
+ param2,
77
+ param3
78
+ ) if another_method == 0
79
+ return some_method(
80
+ ^^^^^^^^^^^^^^^^^^^ Modifier if/unless usage is okay when [...]
81
+ param1,
82
+ param2,
83
+ param3
84
+ ) unless another_method == 0
85
+ RUBY
107
86
  end
108
87
 
109
88
  it 'allows multline conditionals in block form' do
110
- source = [
111
- 'if some_method(param1,',
112
- ' param2,',
113
- ' parma3)',
114
- ' return true',
115
- 'end',
116
- ].join("\n")
117
-
118
- inspect_source(source)
119
- expect(cop.offenses).to be_empty
89
+ expect_no_offenses(<<~RUBY)
90
+ if some_method(param1,
91
+ param2,
92
+ parma3)
93
+ return true
94
+ end
95
+ RUBY
120
96
  end
121
97
  end
122
98
  end
@@ -1,36 +1,26 @@
1
- describe RuboCop::Cop::Airbnb::SimpleUnless do
2
- subject(:cop) { described_class.new }
3
-
1
+ describe RuboCop::Cop::Airbnb::SimpleUnless, :config do
4
2
  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)
3
+ expect_offense(<<~RUBY)
4
+ unless boolean_condition || another_method
5
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Unless usage is okay when there is only one conditional
6
+ return true
7
+ end
8
+ RUBY
13
9
  end
14
10
 
15
11
  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
12
+ expect_no_offenses(<<~RUBY)
13
+ if boolean_condition || another_method
14
+ return true
15
+ end
16
+ RUBY
24
17
  end
25
18
 
26
19
  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
20
+ expect_no_offenses(<<~RUBY)
21
+ unless boolean_condition
22
+ return true
23
+ end
24
+ RUBY
35
25
  end
36
26
  end
@@ -1,80 +1,62 @@
1
- describe RuboCop::Cop::Airbnb::SpecConstantAssignment do
2
- subject(:cop) { described_class.new }
3
-
1
+ describe RuboCop::Cop::Airbnb::SpecConstantAssignment, :config do
4
2
  it 'rejects constant definition inside of a describe block' do
5
- source = [
6
- 'describe Someclass do',
7
- ' CONSTANT = 5',
8
- 'end',
9
- ].join("\n")
10
-
11
- inspect_source(source)
12
- expect(cop.offenses.size).to eq(1)
3
+ expect_offense(<<~RUBY)
4
+ describe Someclass do
5
+ CONSTANT = 5
6
+ ^^^^^^^^^^^^ Defining constants inside of specs can cause spurious behavior. [...]
7
+ end
8
+ RUBY
13
9
  end
14
10
 
15
11
  it 'allows constant defined inside of a module' do
16
- source = [
17
- 'module Someclass',
18
- ' CONSTANT = 5',
19
- 'end',
20
- ].join("\n")
21
-
22
- inspect_source(source)
23
- expect(cop.offenses).to be_empty
12
+ expect_no_offenses(<<~RUBY)
13
+ module Someclass
14
+ CONSTANT = 5
15
+ end
16
+ RUBY
24
17
  end
25
18
 
26
- it 'allows constant defined in global space' do
27
- source = [
28
- 'CONSTANT = 5',
29
- ].join("\n")
30
-
31
- inspect_source(source)
32
- expect(cop.offenses.size).to eq(1)
19
+ it 'rejects constant defined in global space' do
20
+ expect_offense(<<~RUBY)
21
+ CONSTANT = 5
22
+ ^^^^^^^^^^^^ Defining constants inside of specs can cause spurious behavior. [...]
23
+ RUBY
33
24
  end
34
25
 
35
26
  it 'rejects constant assignment inside a before block' do
36
- source = [
37
- 'describe Someclass do',
38
- ' before { CONSTANT = 5 }',
39
- 'end',
40
- ].join("\n")
41
-
42
- inspect_source(source)
43
- expect(cop.offenses.size).to eq(1)
27
+ expect_offense(<<~RUBY)
28
+ describe Someclass do
29
+ before { CONSTANT = 5 }
30
+ ^^^^^^^^^^^^ Defining constants inside of specs can cause spurious behavior. [...]
31
+ end
32
+ RUBY
44
33
  end
45
34
 
46
35
  it 'rejects namespaced constant assignment inside a before block' do
47
- source = [
48
- 'describe Someclass do',
49
- ' before { MyModule::CONSTANT = 5 }',
50
- 'end',
51
- ].join("\n")
52
-
53
- inspect_source(source)
54
- expect(cop.offenses.size).to eq(1)
36
+ expect_offense(<<~RUBY)
37
+ describe Someclass do
38
+ before { MyModule::CONSTANT = 5 }
39
+ ^^^^^^^^^^^^^^^^^^^^^^ Defining constants inside of specs can cause spurious behavior. [...]
40
+ end
41
+ RUBY
55
42
  end
56
43
 
57
44
  it 'rejects constant assignment inside it block' do
58
- source = [
59
- 'describe Someclass do',
60
- ' it "tests stuff" do',
61
- ' CONSTANT = 5',
62
- ' end',
63
- 'end',
64
- ].join("\n")
65
-
66
- inspect_source(source)
67
- expect(cop.offenses.size).to eq(1)
45
+ expect_offense(<<~RUBY)
46
+ describe Someclass do
47
+ it "tests stuff" do
48
+ CONSTANT = 5
49
+ ^^^^^^^^^^^^ Defining constants inside of specs can cause spurious behavior. [...]
50
+ end
51
+ end
52
+ RUBY
68
53
  end
69
54
 
70
55
  it 'allows let statements that do not assign constants' do
71
- source = [
72
- 'describe Someclass do',
73
- ' let(:constant) { 5 }',
74
- 'end',
75
- ].join("\n")
76
-
77
- inspect_source(source)
78
- expect(cop.offenses).to be_empty
56
+ expect_no_offenses(<<~RUBY)
57
+ describe Someclass do
58
+ let(:constant) { 5 }
59
+ end
60
+ RUBY
79
61
  end
80
62
  end
@@ -1,50 +1,38 @@
1
- describe RuboCop::Cop::Airbnb::UnsafeYamlMarshal do
2
- subject(:cop) { described_class.new }
3
-
1
+ describe RuboCop::Cop::Airbnb::UnsafeYamlMarshal, :config do
4
2
  context 'send' do
5
3
  it 'rejects YAML.load' do
6
- source = [
7
- 'def some_method(a)',
8
- ' YAML.load(a)',
9
- 'end',
10
- ].join("\n")
11
- inspect_source(source)
12
- expect(cop.offenses.size).to eql(1)
13
- expect(cop.offenses.first.message).to match(/`safe_load`, `parse`, `parse_file`/)
4
+ expect_offense(<<~RUBY)
5
+ def some_method(a)
6
+ YAML.load(a)
7
+ ^^^^^^^^^^^^ Using `YAML.load` on untrusted input [...]
8
+ end
9
+ RUBY
14
10
  end
15
11
 
16
12
  it 'rejects Psych.load' do
17
- source = [
18
- 'def some_method(a)',
19
- ' Psych.load(a)',
20
- 'end',
21
- ].join("\n")
22
- inspect_source(source)
23
- expect(cop.offenses.size).to eql(1)
24
- expect(cop.offenses.first.message).to match(/`safe_load`, `parse`, `parse_file`/)
13
+ expect_offense(<<~RUBY)
14
+ def some_method(a)
15
+ Psych.load(a)
16
+ ^^^^^^^^^^^^^ Using `Psych.load` on untrusted input [...]
17
+ end
18
+ RUBY
25
19
  end
26
20
 
27
21
  it 'accepts YAML.safe_load' do
28
- source = [
29
- 'def some_method(a)',
30
- ' YAML.safe_load(a)',
31
- 'end',
32
- ].join("\n")
33
- inspect_source(source)
34
- expect(cop.offenses.size).to eql(0)
22
+ expect_no_offenses(<<~RUBY)
23
+ def some_method(a)
24
+ YAML.safe_load(a)
25
+ end
26
+ RUBY
35
27
  end
36
28
 
37
29
  it 'rejects on Marshal.load' do
38
- source = [
39
- 'def some_method(a)',
40
- ' Marshal.load(a)',
41
- 'end',
42
- ].join("\n")
43
- inspect_source(source)
44
- expect(cop.offenses.size).to eql(1)
45
- expect(cop.offenses.first.message).to match(
46
- /`Marshal.load` on untrusted input can lead to remote code execution/
47
- )
30
+ expect_offense(<<~RUBY)
31
+ def some_method(a)
32
+ Marshal.load(a)
33
+ ^^^^^^^^^^^^^^^ Using `Marshal.load` on untrusted input can lead to remote code execution. [...]
34
+ end
35
+ RUBY
48
36
  end
49
37
  end
50
38
  end
data/spec/spec_helper.rb CHANGED
@@ -13,6 +13,8 @@ spec_helper_glob = File.expand_path('{support,shared}/*.rb', SpecHelper::ROOT)
13
13
  Dir.glob(spec_helper_glob).map(&method(:require))
14
14
 
15
15
  RSpec.configure do |config|
16
+ config.include RuboCop::RSpec::ExpectOffense
17
+
16
18
  config.order = :random
17
19
 
18
20
  # Define spec metadata for all rspec cop spec files
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: 4.0.0
4
+ version: 5.0.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: 2021-09-21 00:00:00.000000000 Z
11
+ date: 2023-02-13 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.93.1
19
+ version: 1.22.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.93.1
26
+ version: 1.22.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubocop-performance
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.44.1
61
+ version: 2.0.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.44.1
68
+ version: 2.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -163,14 +163,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: '2.4'
166
+ version: '2.5'
167
167
  required_rubygems_version: !ruby/object:Gem::Requirement
168
168
  requirements:
169
169
  - - ">="
170
170
  - !ruby/object:Gem::Version
171
171
  version: '0'
172
172
  requirements: []
173
- rubygems_version: 3.0.3
173
+ rubygems_version: 3.0.3.1
174
174
  signing_key:
175
175
  specification_version: 4
176
176
  summary: Custom code style checking for Airbnb.