rubocop-rails 2.8.0 → 2.10.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.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +18 -2
  4. data/config/default.yml +101 -5
  5. data/config/obsoletion.yml +7 -0
  6. data/lib/rubocop/cop/mixin/active_record_helper.rb +16 -3
  7. data/lib/rubocop/cop/mixin/enforce_superclass.rb +40 -0
  8. data/lib/rubocop/cop/mixin/index_method.rb +8 -11
  9. data/lib/rubocop/cop/rails/action_filter.rb +10 -14
  10. data/lib/rubocop/cop/rails/active_record_aliases.rb +13 -17
  11. data/lib/rubocop/cop/rails/active_record_callbacks_order.rb +17 -12
  12. data/lib/rubocop/cop/rails/active_record_override.rb +1 -1
  13. data/lib/rubocop/cop/rails/active_support_aliases.rb +12 -21
  14. data/lib/rubocop/cop/rails/after_commit_override.rb +9 -2
  15. data/lib/rubocop/cop/rails/application_controller.rb +3 -7
  16. data/lib/rubocop/cop/rails/application_job.rb +2 -1
  17. data/lib/rubocop/cop/rails/application_mailer.rb +2 -7
  18. data/lib/rubocop/cop/rails/application_record.rb +2 -7
  19. data/lib/rubocop/cop/rails/arel_star.rb +41 -0
  20. data/lib/rubocop/cop/rails/assert_not.rb +8 -10
  21. data/lib/rubocop/cop/rails/attribute_default_block_value.rb +90 -0
  22. data/lib/rubocop/cop/rails/belongs_to.rb +10 -19
  23. data/lib/rubocop/cop/rails/blank.rb +31 -27
  24. data/lib/rubocop/cop/rails/bulk_change_table.rb +1 -1
  25. data/lib/rubocop/cop/rails/content_tag.rb +33 -18
  26. data/lib/rubocop/cop/rails/create_table_with_timestamps.rb +2 -1
  27. data/lib/rubocop/cop/rails/date.rb +10 -11
  28. data/lib/rubocop/cop/rails/default_scope.rb +11 -4
  29. data/lib/rubocop/cop/rails/delegate.rb +9 -9
  30. data/lib/rubocop/cop/rails/delegate_allow_blank.rb +7 -8
  31. data/lib/rubocop/cop/rails/dynamic_find_by.rb +15 -12
  32. data/lib/rubocop/cop/rails/enum_hash.rb +11 -10
  33. data/lib/rubocop/cop/rails/enum_uniqueness.rb +2 -1
  34. data/lib/rubocop/cop/rails/environment_comparison.rb +18 -14
  35. data/lib/rubocop/cop/rails/environment_variable_access.rb +67 -0
  36. data/lib/rubocop/cop/rails/exit.rb +4 -10
  37. data/lib/rubocop/cop/rails/file_path.rb +6 -7
  38. data/lib/rubocop/cop/rails/find_by.rb +13 -13
  39. data/lib/rubocop/cop/rails/find_by_id.rb +12 -21
  40. data/lib/rubocop/cop/rails/find_each.rb +19 -18
  41. data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +3 -2
  42. data/lib/rubocop/cop/rails/has_many_or_has_one_dependent.rb +37 -6
  43. data/lib/rubocop/cop/rails/helper_instance_variable.rb +29 -3
  44. data/lib/rubocop/cop/rails/http_positional_arguments.rb +32 -21
  45. data/lib/rubocop/cop/rails/http_status.rb +7 -9
  46. data/lib/rubocop/cop/rails/ignored_skip_action_filter_option.rb +8 -6
  47. data/lib/rubocop/cop/rails/index_by.rb +3 -2
  48. data/lib/rubocop/cop/rails/index_with.rb +3 -2
  49. data/lib/rubocop/cop/rails/inquiry.rb +4 -3
  50. data/lib/rubocop/cop/rails/inverse_of.rb +3 -2
  51. data/lib/rubocop/cop/rails/lexically_scoped_action_filter.rb +17 -15
  52. data/lib/rubocop/cop/rails/link_to_blank.rb +25 -23
  53. data/lib/rubocop/cop/rails/mailer_name.rb +19 -13
  54. data/lib/rubocop/cop/rails/match_route.rb +14 -13
  55. data/lib/rubocop/cop/rails/negate_include.rb +10 -8
  56. data/lib/rubocop/cop/rails/not_null_column.rb +2 -1
  57. data/lib/rubocop/cop/rails/order_by_id.rb +1 -2
  58. data/lib/rubocop/cop/rails/output.rb +5 -2
  59. data/lib/rubocop/cop/rails/output_safety.rb +3 -2
  60. data/lib/rubocop/cop/rails/pick.rb +14 -12
  61. data/lib/rubocop/cop/rails/pluck.rb +6 -9
  62. data/lib/rubocop/cop/rails/pluck_id.rb +4 -6
  63. data/lib/rubocop/cop/rails/pluck_in_where.rb +7 -7
  64. data/lib/rubocop/cop/rails/pluralization_grammar.rb +10 -14
  65. data/lib/rubocop/cop/rails/presence.rb +12 -13
  66. data/lib/rubocop/cop/rails/present.rb +30 -24
  67. data/lib/rubocop/cop/rails/rake_environment.rb +8 -10
  68. data/lib/rubocop/cop/rails/read_write_attribute.rb +12 -11
  69. data/lib/rubocop/cop/rails/redundant_allow_nil.rb +29 -31
  70. data/lib/rubocop/cop/rails/redundant_foreign_key.rb +9 -12
  71. data/lib/rubocop/cop/rails/redundant_receiver_in_with_options.rb +11 -10
  72. data/lib/rubocop/cop/rails/reflection_class_name.rb +17 -3
  73. data/lib/rubocop/cop/rails/refute_methods.rb +9 -10
  74. data/lib/rubocop/cop/rails/relative_date_constant.rb +30 -21
  75. data/lib/rubocop/cop/rails/render_inline.rb +2 -1
  76. data/lib/rubocop/cop/rails/render_plain_text.rb +9 -14
  77. data/lib/rubocop/cop/rails/request_referer.rb +7 -7
  78. data/lib/rubocop/cop/rails/require_dependency.rb +38 -0
  79. data/lib/rubocop/cop/rails/reversible_migration.rb +4 -8
  80. data/lib/rubocop/cop/rails/reversible_migration_method_definition.rb +75 -0
  81. data/lib/rubocop/cop/rails/safe_navigation.rb +30 -11
  82. data/lib/rubocop/cop/rails/safe_navigation_with_blank.rb +5 -10
  83. data/lib/rubocop/cop/rails/save_bang.rb +17 -20
  84. data/lib/rubocop/cop/rails/scope_args.rb +2 -1
  85. data/lib/rubocop/cop/rails/short_i18n.rb +7 -9
  86. data/lib/rubocop/cop/rails/skips_model_validations.rb +4 -4
  87. data/lib/rubocop/cop/rails/squished_sql_heredocs.rb +5 -6
  88. data/lib/rubocop/cop/rails/time_zone.rb +35 -25
  89. data/lib/rubocop/cop/rails/time_zone_assignment.rb +37 -0
  90. data/lib/rubocop/cop/rails/uniq_before_pluck.rb +4 -6
  91. data/lib/rubocop/cop/rails/unique_validation_without_index.rb +4 -2
  92. data/lib/rubocop/cop/rails/unknown_env.rb +3 -3
  93. data/lib/rubocop/cop/rails/validation.rb +15 -14
  94. data/lib/rubocop/cop/rails/where_equals.rb +98 -0
  95. data/lib/rubocop/cop/rails/where_exists.rb +19 -13
  96. data/lib/rubocop/cop/rails/where_not.rb +14 -19
  97. data/lib/rubocop/cop/rails_cops.rb +8 -0
  98. data/lib/rubocop/rails.rb +2 -0
  99. data/lib/rubocop/rails/schema_loader.rb +4 -4
  100. data/lib/rubocop/rails/schema_loader/schema.rb +2 -4
  101. data/lib/rubocop/rails/version.rb +5 -1
  102. metadata +29 -14
@@ -11,6 +11,17 @@ module RuboCop
11
11
  # When EnforcedStyle is 'where' then the cop enforces
12
12
  # `where(...).exists?` over `exists?(...)`.
13
13
  #
14
+ # This cop is unsafe for auto-correction because the behavior may change on the following case:
15
+ #
16
+ # [source,ruby]
17
+ # ----
18
+ # Author.includes(:articles).where(articles: {id: id}).exists?
19
+ # #=> Perform `eager_load` behavior (`LEFT JOIN` query) and get result.
20
+ #
21
+ # Author.includes(:articles).exists?(articles: {id: id})
22
+ # #=> Perform `preload` behavior and `ActiveRecord::StatementInvalid` error occurs.
23
+ # ----
24
+ #
14
25
  # @example EnforcedStyle: exists (default)
15
26
  # # bad
16
27
  # User.where(name: 'john').exists?
@@ -36,10 +47,12 @@ module RuboCop
36
47
  # User.where('name = ?', 'john').exists?
37
48
  # user.posts.where(published: true).exists?
38
49
  # User.where('length(name) > 10').exists?
39
- class WhereExists < Cop
50
+ class WhereExists < Base
40
51
  include ConfigurableEnforcedStyle
52
+ extend AutoCorrector
41
53
 
42
54
  MSG = 'Prefer `%<good_method>s` over `%<bad_method>s`.'
55
+ RESTRICT_ON_SEND = %i[exists?].freeze
43
56
 
44
57
  def_node_matcher :where_exists_call?, <<~PATTERN
45
58
  (send (send _ :where $...) :exists?)
@@ -54,19 +67,12 @@ module RuboCop
54
67
  return unless convertable_args?(args)
55
68
 
56
69
  range = correction_range(node)
57
- message = format(MSG, good_method: build_good_method(args), bad_method: range.source)
58
- add_offense(node, location: range, message: message)
59
- end
60
- end
61
-
62
- def autocorrect(node)
63
- args = find_offenses(node)
70
+ good_method = build_good_method(args)
71
+ message = format(MSG, good_method: good_method, bad_method: range.source)
64
72
 
65
- lambda do |corrector|
66
- corrector.replace(
67
- correction_range(node),
68
- build_good_method(args)
69
- )
73
+ add_offense(range, message: message) do |corrector|
74
+ corrector.replace(range, good_method)
75
+ end
70
76
  end
71
77
  end
72
78
 
@@ -10,19 +10,25 @@ module RuboCop
10
10
  # # bad
11
11
  # User.where('name != ?', 'Gabe')
12
12
  # User.where('name != :name', name: 'Gabe')
13
+ # User.where('name <> ?', 'Gabe')
14
+ # User.where('name <> :name', name: 'Gabe')
13
15
  # User.where('name IS NOT NULL')
14
16
  # User.where('name NOT IN (?)', ['john', 'jane'])
15
17
  # User.where('name NOT IN (:names)', names: ['john', 'jane'])
18
+ # User.where('users.name != :name', name: 'Gabe')
16
19
  #
17
20
  # # good
18
21
  # User.where.not(name: 'Gabe')
19
22
  # User.where.not(name: nil)
20
23
  # User.where.not(name: ['john', 'jane'])
24
+ # User.where.not(users: { name: 'Gabe' })
21
25
  #
22
- class WhereNot < Cop
26
+ class WhereNot < Base
23
27
  include RangeHelp
28
+ extend AutoCorrector
24
29
 
25
30
  MSG = 'Use `%<good_method>s` instead of manually constructing negated SQL in `where`.'
31
+ RESTRICT_ON_SEND = %i[where].freeze
26
32
 
27
33
  def_node_matcher :where_method_call?, <<~PATTERN
28
34
  {
@@ -43,28 +49,15 @@ module RuboCop
43
49
  good_method = build_good_method(*column_and_value)
44
50
  message = format(MSG, good_method: good_method)
45
51
 
46
- add_offense(node, location: range, message: message)
47
- end
48
- end
49
-
50
- def autocorrect(node)
51
- where_method_call?(node) do |template_node, value_node|
52
- value_node = value_node.first
53
-
54
- lambda do |corrector|
55
- range = offense_range(node)
56
-
57
- column, value = *extract_column_and_value(template_node, value_node)
58
- replacement = build_good_method(column, value)
59
-
60
- corrector.replace(range, replacement)
52
+ add_offense(range, message: message) do |corrector|
53
+ corrector.replace(range, good_method)
61
54
  end
62
55
  end
63
56
  end
64
57
 
65
- NOT_EQ_ANONYMOUS_RE = /\A([\w.]+)\s+!=\s+\?\z/.freeze # column != ?
58
+ NOT_EQ_ANONYMOUS_RE = /\A([\w.]+)\s+(?:!=|<>)\s+\?\z/.freeze # column != ?, column <> ?
66
59
  NOT_IN_ANONYMOUS_RE = /\A([\w.]+)\s+NOT\s+IN\s+\(\?\)\z/i.freeze # column NOT IN (?)
67
- NOT_EQ_NAMED_RE = /\A([\w.]+)\s+!=\s+:(\w+)\z/.freeze # column != :column
60
+ NOT_EQ_NAMED_RE = /\A([\w.]+)\s+(?:!=|<>)\s+:(\w+)\z/.freeze # column != :column, column <> :column
68
61
  NOT_IN_NAMED_RE = /\A([\w.]+)\s+NOT\s+IN\s+\(:(\w+)\)\z/i.freeze # column NOT IN (:column)
69
62
  IS_NOT_NULL_RE = /\A([\w.]+)\s+IS\s+NOT\s+NULL\z/i.freeze # column IS NOT NULL
70
63
 
@@ -95,7 +88,9 @@ module RuboCop
95
88
 
96
89
  def build_good_method(column, value)
97
90
  if column.include?('.')
98
- "where.not('#{column}' => #{value})"
91
+ table, column = column.split('.')
92
+
93
+ "where.not(#{table}: { #{column}: #{value} })"
99
94
  else
100
95
  "where.not(#{column}: #{value})"
101
96
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'mixin/active_record_helper'
4
+ require_relative 'mixin/enforce_superclass'
4
5
  require_relative 'mixin/index_method'
5
6
  require_relative 'mixin/target_rails_version'
6
7
 
@@ -14,7 +15,9 @@ require_relative 'rails/application_controller'
14
15
  require_relative 'rails/application_job'
15
16
  require_relative 'rails/application_mailer'
16
17
  require_relative 'rails/application_record'
18
+ require_relative 'rails/arel_star'
17
19
  require_relative 'rails/assert_not'
20
+ require_relative 'rails/attribute_default_block_value'
18
21
  require_relative 'rails/belongs_to'
19
22
  require_relative 'rails/blank'
20
23
  require_relative 'rails/bulk_change_table'
@@ -28,6 +31,7 @@ require_relative 'rails/dynamic_find_by'
28
31
  require_relative 'rails/enum_hash'
29
32
  require_relative 'rails/enum_uniqueness'
30
33
  require_relative 'rails/environment_comparison'
34
+ require_relative 'rails/environment_variable_access'
31
35
  require_relative 'rails/exit'
32
36
  require_relative 'rails/file_path'
33
37
  require_relative 'rails/find_by'
@@ -70,7 +74,9 @@ require_relative 'rails/relative_date_constant'
70
74
  require_relative 'rails/render_inline'
71
75
  require_relative 'rails/render_plain_text'
72
76
  require_relative 'rails/request_referer'
77
+ require_relative 'rails/require_dependency'
73
78
  require_relative 'rails/reversible_migration'
79
+ require_relative 'rails/reversible_migration_method_definition'
74
80
  require_relative 'rails/safe_navigation'
75
81
  require_relative 'rails/safe_navigation_with_blank'
76
82
  require_relative 'rails/save_bang'
@@ -79,9 +85,11 @@ require_relative 'rails/short_i18n'
79
85
  require_relative 'rails/skips_model_validations'
80
86
  require_relative 'rails/squished_sql_heredocs'
81
87
  require_relative 'rails/time_zone'
88
+ require_relative 'rails/time_zone_assignment'
82
89
  require_relative 'rails/uniq_before_pluck'
83
90
  require_relative 'rails/unique_validation_without_index'
84
91
  require_relative 'rails/unknown_env'
85
92
  require_relative 'rails/validation'
93
+ require_relative 'rails/where_equals'
86
94
  require_relative 'rails/where_exists'
87
95
  require_relative 'rails/where_not'
data/lib/rubocop/rails.rb CHANGED
@@ -8,5 +8,7 @@ module RuboCop
8
8
  CONFIG = YAML.safe_load(CONFIG_DEFAULT.read).freeze
9
9
 
10
10
  private_constant(:CONFIG_DEFAULT, :PROJECT_ROOT)
11
+
12
+ ::RuboCop::ConfigObsoletion.files << PROJECT_ROOT.join('config', 'obsoletion.yml')
11
13
  end
12
14
  end
@@ -13,15 +13,15 @@ module RuboCop
13
13
  #
14
14
  # @return [Schema, nil]
15
15
  def load(target_ruby_version)
16
- return @schema if defined?(@schema)
16
+ return @load if defined?(@load)
17
17
 
18
- @schema = load!(target_ruby_version)
18
+ @load = load!(target_ruby_version)
19
19
  end
20
20
 
21
21
  def reset!
22
- return unless instance_variable_defined?(:@schema)
22
+ return unless instance_variable_defined?(:@load)
23
23
 
24
- remove_instance_variable(:@schema)
24
+ remove_instance_variable(:@load)
25
25
  end
26
26
 
27
27
  def db_schema_path
@@ -98,7 +98,7 @@ module RuboCop
98
98
  end
99
99
 
100
100
  def each_content(node, &block)
101
- return enum_for(__method__, node) unless block_given?
101
+ return enum_for(__method__, node) unless block
102
102
 
103
103
  case node.body&.type
104
104
  when :begin
@@ -128,9 +128,7 @@ module RuboCop
128
128
  return unless pairs.hash_type?
129
129
 
130
130
  pairs.each_pair do |k, v|
131
- if k.value == :null
132
- @not_null = v.true_type? ? false : true
133
- end
131
+ @not_null = !v.true_type? if k.value == :null
134
132
  end
135
133
  end
136
134
  end
@@ -4,7 +4,11 @@ module RuboCop
4
4
  module Rails
5
5
  # This module holds the RuboCop Rails version information.
6
6
  module Version
7
- STRING = '2.8.0'
7
+ STRING = '2.10.1'
8
+
9
+ def self.document_version
10
+ STRING.match('\d+\.\d+').to_s
11
+ end
8
12
  end
9
13
  end
10
14
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
8
8
  - Jonas Arvidsson
9
9
  - Yuji Nakayama
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-09-04 00:00:00.000000000 Z
13
+ date: 2021-05-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -46,14 +46,20 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 0.87.0
49
+ version: 1.7.0
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '2.0'
50
53
  type: :runtime
51
54
  prerelease: false
52
55
  version_requirements: !ruby/object:Gem::Requirement
53
56
  requirements:
54
57
  - - ">="
55
58
  - !ruby/object:Gem::Version
56
- version: 0.87.0
59
+ version: 1.7.0
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.0'
57
63
  description: |
58
64
  Automatic Rails code style checking tool.
59
65
  A RuboCop extension focused on enforcing Rails best practices and coding conventions.
@@ -68,8 +74,10 @@ files:
68
74
  - README.md
69
75
  - bin/setup
70
76
  - config/default.yml
77
+ - config/obsoletion.yml
71
78
  - lib/rubocop-rails.rb
72
79
  - lib/rubocop/cop/mixin/active_record_helper.rb
80
+ - lib/rubocop/cop/mixin/enforce_superclass.rb
73
81
  - lib/rubocop/cop/mixin/index_method.rb
74
82
  - lib/rubocop/cop/mixin/target_rails_version.rb
75
83
  - lib/rubocop/cop/rails/action_filter.rb
@@ -82,7 +90,9 @@ files:
82
90
  - lib/rubocop/cop/rails/application_job.rb
83
91
  - lib/rubocop/cop/rails/application_mailer.rb
84
92
  - lib/rubocop/cop/rails/application_record.rb
93
+ - lib/rubocop/cop/rails/arel_star.rb
85
94
  - lib/rubocop/cop/rails/assert_not.rb
95
+ - lib/rubocop/cop/rails/attribute_default_block_value.rb
86
96
  - lib/rubocop/cop/rails/belongs_to.rb
87
97
  - lib/rubocop/cop/rails/blank.rb
88
98
  - lib/rubocop/cop/rails/bulk_change_table.rb
@@ -96,6 +106,7 @@ files:
96
106
  - lib/rubocop/cop/rails/enum_hash.rb
97
107
  - lib/rubocop/cop/rails/enum_uniqueness.rb
98
108
  - lib/rubocop/cop/rails/environment_comparison.rb
109
+ - lib/rubocop/cop/rails/environment_variable_access.rb
99
110
  - lib/rubocop/cop/rails/exit.rb
100
111
  - lib/rubocop/cop/rails/file_path.rb
101
112
  - lib/rubocop/cop/rails/find_by.rb
@@ -138,7 +149,9 @@ files:
138
149
  - lib/rubocop/cop/rails/render_inline.rb
139
150
  - lib/rubocop/cop/rails/render_plain_text.rb
140
151
  - lib/rubocop/cop/rails/request_referer.rb
152
+ - lib/rubocop/cop/rails/require_dependency.rb
141
153
  - lib/rubocop/cop/rails/reversible_migration.rb
154
+ - lib/rubocop/cop/rails/reversible_migration_method_definition.rb
142
155
  - lib/rubocop/cop/rails/safe_navigation.rb
143
156
  - lib/rubocop/cop/rails/safe_navigation_with_blank.rb
144
157
  - lib/rubocop/cop/rails/save_bang.rb
@@ -147,10 +160,12 @@ files:
147
160
  - lib/rubocop/cop/rails/skips_model_validations.rb
148
161
  - lib/rubocop/cop/rails/squished_sql_heredocs.rb
149
162
  - lib/rubocop/cop/rails/time_zone.rb
163
+ - lib/rubocop/cop/rails/time_zone_assignment.rb
150
164
  - lib/rubocop/cop/rails/uniq_before_pluck.rb
151
165
  - lib/rubocop/cop/rails/unique_validation_without_index.rb
152
166
  - lib/rubocop/cop/rails/unknown_env.rb
153
167
  - lib/rubocop/cop/rails/validation.rb
168
+ - lib/rubocop/cop/rails/where_equals.rb
154
169
  - lib/rubocop/cop/rails/where_exists.rb
155
170
  - lib/rubocop/cop/rails/where_not.rb
156
171
  - lib/rubocop/cop/rails_cops.rb
@@ -159,16 +174,16 @@ files:
159
174
  - lib/rubocop/rails/schema_loader.rb
160
175
  - lib/rubocop/rails/schema_loader/schema.rb
161
176
  - lib/rubocop/rails/version.rb
162
- homepage: https://github.com/rubocop-hq/rubocop-rails
177
+ homepage: https://github.com/rubocop/rubocop-rails
163
178
  licenses:
164
179
  - MIT
165
180
  metadata:
166
181
  homepage_uri: https://docs.rubocop.org/rubocop-rails/
167
- changelog_uri: https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md
168
- source_code_uri: https://github.com/rubocop-hq/rubocop-rails/
169
- documentation_uri: https://docs.rubocop.org/rubocop-rails/
170
- bug_tracker_uri: https://github.com/rubocop-hq/rubocop-rails/issues
171
- post_install_message:
182
+ changelog_uri: https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md
183
+ source_code_uri: https://github.com/rubocop/rubocop-rails/
184
+ documentation_uri: https://docs.rubocop.org/rubocop-rails/2.10/
185
+ bug_tracker_uri: https://github.com/rubocop/rubocop-rails/issues
186
+ post_install_message:
172
187
  rdoc_options: []
173
188
  require_paths:
174
189
  - lib
@@ -176,15 +191,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
191
  requirements:
177
192
  - - ">="
178
193
  - !ruby/object:Gem::Version
179
- version: 2.4.0
194
+ version: 2.5.0
180
195
  required_rubygems_version: !ruby/object:Gem::Requirement
181
196
  requirements:
182
197
  - - ">="
183
198
  - !ruby/object:Gem::Version
184
199
  version: '0'
185
200
  requirements: []
186
- rubygems_version: 3.1.4
187
- signing_key:
201
+ rubygems_version: 3.2.16
202
+ signing_key:
188
203
  specification_version: 4
189
204
  summary: Automatic Rails code style checking tool.
190
205
  test_files: []