rubocop 1.9.1 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (253) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -13
  3. data/assets/output.html.erb +1 -1
  4. data/config/default.yml +67 -17
  5. data/config/obsoletion.yml +4 -0
  6. data/lib/rubocop.rb +4 -0
  7. data/lib/rubocop/cli/command/execute_runner.rb +1 -1
  8. data/lib/rubocop/cli/command/suggest_extensions.rb +3 -2
  9. data/lib/rubocop/comment_config.rb +43 -94
  10. data/lib/rubocop/cop/bundler/duplicated_gem.rb +2 -1
  11. data/lib/rubocop/cop/bundler/gem_comment.rb +1 -0
  12. data/lib/rubocop/cop/bundler/insecure_protocol_source.rb +1 -0
  13. data/lib/rubocop/cop/bundler/ordered_gems.rb +1 -0
  14. data/lib/rubocop/cop/correctors/alignment_corrector.rb +3 -6
  15. data/lib/rubocop/cop/gemspec/date_assignment.rb +57 -0
  16. data/lib/rubocop/cop/gemspec/duplicated_assignment.rb +2 -0
  17. data/lib/rubocop/cop/gemspec/ordered_dependencies.rb +1 -0
  18. data/lib/rubocop/cop/gemspec/required_ruby_version.rb +2 -0
  19. data/lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb +2 -0
  20. data/lib/rubocop/cop/generator.rb +2 -2
  21. data/lib/rubocop/cop/internal_affairs.rb +1 -0
  22. data/lib/rubocop/cop/internal_affairs/example_description.rb +1 -0
  23. data/lib/rubocop/cop/internal_affairs/method_name_equal.rb +1 -0
  24. data/lib/rubocop/cop/internal_affairs/node_destructuring.rb +2 -0
  25. data/lib/rubocop/cop/internal_affairs/node_matcher_directive.rb +151 -0
  26. data/lib/rubocop/cop/internal_affairs/node_type_predicate.rb +1 -0
  27. data/lib/rubocop/cop/internal_affairs/offense_location_keyword.rb +2 -0
  28. data/lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb +1 -0
  29. data/lib/rubocop/cop/internal_affairs/redundant_let_rubocop_config_new.rb +1 -0
  30. data/lib/rubocop/cop/internal_affairs/redundant_location_argument.rb +1 -0
  31. data/lib/rubocop/cop/internal_affairs/redundant_message_argument.rb +3 -0
  32. data/lib/rubocop/cop/internal_affairs/style_detected_api_use.rb +4 -0
  33. data/lib/rubocop/cop/internal_affairs/useless_message_assertion.rb +2 -0
  34. data/lib/rubocop/cop/layout/access_modifier_indentation.rb +11 -8
  35. data/lib/rubocop/cop/layout/argument_alignment.rb +6 -5
  36. data/lib/rubocop/cop/layout/array_alignment.rb +7 -6
  37. data/lib/rubocop/cop/layout/assignment_indentation.rb +6 -3
  38. data/lib/rubocop/cop/layout/block_alignment.rb +1 -0
  39. data/lib/rubocop/cop/layout/block_end_newline.rb +4 -8
  40. data/lib/rubocop/cop/layout/class_structure.rb +1 -0
  41. data/lib/rubocop/cop/layout/closing_parenthesis_indentation.rb +14 -15
  42. data/lib/rubocop/cop/layout/comment_indentation.rb +16 -16
  43. data/lib/rubocop/cop/layout/else_alignment.rb +9 -6
  44. data/lib/rubocop/cop/layout/extra_spacing.rb +2 -2
  45. data/lib/rubocop/cop/layout/first_argument_indentation.rb +12 -6
  46. data/lib/rubocop/cop/layout/first_array_element_indentation.rb +9 -6
  47. data/lib/rubocop/cop/layout/first_hash_element_indentation.rb +22 -15
  48. data/lib/rubocop/cop/layout/first_parameter_indentation.rb +6 -5
  49. data/lib/rubocop/cop/layout/indentation_consistency.rb +9 -6
  50. data/lib/rubocop/cop/layout/indentation_style.rb +27 -30
  51. data/lib/rubocop/cop/layout/indentation_width.rb +20 -9
  52. data/lib/rubocop/cop/layout/multiline_assignment_layout.rb +26 -0
  53. data/lib/rubocop/cop/layout/multiline_method_call_indentation.rb +6 -5
  54. data/lib/rubocop/cop/layout/multiline_operation_indentation.rb +6 -5
  55. data/lib/rubocop/cop/layout/parameter_alignment.rb +6 -5
  56. data/lib/rubocop/cop/layout/space_before_block_braces.rb +1 -1
  57. data/lib/rubocop/cop/layout/space_before_brackets.rb +1 -1
  58. data/lib/rubocop/cop/layout/space_inside_block_braces.rb +1 -1
  59. data/lib/rubocop/cop/lint/big_decimal_new.rb +1 -0
  60. data/lib/rubocop/cop/lint/boolean_symbol.rb +1 -0
  61. data/lib/rubocop/cop/lint/constant_definition_in_block.rb +2 -0
  62. data/lib/rubocop/cop/lint/constant_resolution.rb +1 -0
  63. data/lib/rubocop/cop/lint/debugger.rb +60 -14
  64. data/lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb +14 -4
  65. data/lib/rubocop/cop/lint/duplicate_branch.rb +1 -1
  66. data/lib/rubocop/cop/lint/duplicate_methods.rb +3 -0
  67. data/lib/rubocop/cop/lint/duplicate_require.rb +3 -2
  68. data/lib/rubocop/cop/lint/each_with_object_argument.rb +1 -0
  69. data/lib/rubocop/cop/lint/else_layout.rb +1 -1
  70. data/lib/rubocop/cop/lint/erb_new_arguments.rb +1 -0
  71. data/lib/rubocop/cop/lint/format_parameter_mismatch.rb +1 -0
  72. data/lib/rubocop/cop/lint/hash_compare_by_identity.rb +1 -0
  73. data/lib/rubocop/cop/lint/ineffective_access_modifier.rb +1 -0
  74. data/lib/rubocop/cop/lint/inherit_exception.rb +1 -0
  75. data/lib/rubocop/cop/lint/multiple_comparison.rb +5 -4
  76. data/lib/rubocop/cop/lint/nested_method_definition.rb +3 -0
  77. data/lib/rubocop/cop/lint/next_without_accumulator.rb +1 -0
  78. data/lib/rubocop/cop/lint/non_deterministic_require_order.rb +7 -0
  79. data/lib/rubocop/cop/lint/non_local_exit_from_iterator.rb +3 -0
  80. data/lib/rubocop/cop/lint/number_conversion.rb +9 -0
  81. data/lib/rubocop/cop/lint/raise_exception.rb +2 -0
  82. data/lib/rubocop/cop/lint/rand_one.rb +1 -0
  83. data/lib/rubocop/cop/lint/redundant_cop_disable_directive.rb +1 -2
  84. data/lib/rubocop/cop/lint/redundant_require_statement.rb +1 -0
  85. data/lib/rubocop/cop/lint/redundant_safe_navigation.rb +1 -0
  86. data/lib/rubocop/cop/lint/redundant_splat_expansion.rb +7 -3
  87. data/lib/rubocop/cop/lint/redundant_string_coercion.rb +1 -0
  88. data/lib/rubocop/cop/lint/redundant_with_index.rb +1 -0
  89. data/lib/rubocop/cop/lint/redundant_with_object.rb +1 -0
  90. data/lib/rubocop/cop/lint/safe_navigation_chain.rb +1 -0
  91. data/lib/rubocop/cop/lint/safe_navigation_with_empty.rb +1 -0
  92. data/lib/rubocop/cop/lint/send_with_mixin_argument.rb +1 -0
  93. data/lib/rubocop/cop/lint/shadowed_argument.rb +1 -0
  94. data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -0
  95. data/lib/rubocop/cop/lint/struct_new_override.rb +1 -0
  96. data/lib/rubocop/cop/lint/suppressed_exception.rb +44 -1
  97. data/lib/rubocop/cop/lint/symbol_conversion.rb +89 -2
  98. data/lib/rubocop/cop/lint/to_enum_arguments.rb +3 -0
  99. data/lib/rubocop/cop/lint/unified_integer.rb +1 -0
  100. data/lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb +5 -0
  101. data/lib/rubocop/cop/lint/unreachable_code.rb +1 -0
  102. data/lib/rubocop/cop/lint/unreachable_loop.rb +1 -0
  103. data/lib/rubocop/cop/lint/unused_method_argument.rb +1 -0
  104. data/lib/rubocop/cop/lint/uri_escape_unescape.rb +1 -0
  105. data/lib/rubocop/cop/lint/useless_access_modifier.rb +4 -0
  106. data/lib/rubocop/cop/lint/useless_setter_call.rb +1 -0
  107. data/lib/rubocop/cop/lint/useless_times.rb +3 -0
  108. data/lib/rubocop/cop/metrics/module_length.rb +1 -0
  109. data/lib/rubocop/cop/metrics/parameter_lists.rb +1 -0
  110. data/lib/rubocop/cop/metrics/utils/code_length_calculator.rb +6 -4
  111. data/lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb +2 -0
  112. data/lib/rubocop/cop/mixin/alignment.rb +10 -3
  113. data/lib/rubocop/cop/mixin/comments_help.rb +5 -1
  114. data/lib/rubocop/cop/mixin/def_node.rb +1 -0
  115. data/lib/rubocop/cop/mixin/documentation_comment.rb +1 -1
  116. data/lib/rubocop/cop/mixin/empty_lines_around_body.rb +3 -0
  117. data/lib/rubocop/cop/mixin/empty_parameter.rb +1 -0
  118. data/lib/rubocop/cop/mixin/enforce_superclass.rb +2 -0
  119. data/lib/rubocop/cop/mixin/hash_transform_method.rb +1 -0
  120. data/lib/rubocop/cop/mixin/line_length_help.rb +11 -6
  121. data/lib/rubocop/cop/mixin/method_complexity.rb +1 -0
  122. data/lib/rubocop/cop/mixin/multiline_element_indentation.rb +3 -1
  123. data/lib/rubocop/cop/mixin/multiline_expression_indentation.rb +4 -3
  124. data/lib/rubocop/cop/mixin/negative_conditional.rb +3 -0
  125. data/lib/rubocop/cop/mixin/preferred_delimiters.rb +3 -3
  126. data/lib/rubocop/cop/mixin/rational_literal.rb +1 -0
  127. data/lib/rubocop/cop/mixin/safe_assignment.rb +5 -0
  128. data/lib/rubocop/cop/mixin/uncommunicative_name.rb +4 -6
  129. data/lib/rubocop/cop/mixin/visibility_help.rb +1 -0
  130. data/lib/rubocop/cop/naming/binary_operator_parameter_name.rb +1 -0
  131. data/lib/rubocop/cop/naming/constant_name.rb +2 -0
  132. data/lib/rubocop/cop/naming/memoized_instance_variable_name.rb +6 -0
  133. data/lib/rubocop/cop/naming/method_name.rb +3 -0
  134. data/lib/rubocop/cop/naming/predicate_name.rb +1 -0
  135. data/lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb +10 -0
  136. data/lib/rubocop/cop/registry.rb +10 -1
  137. data/lib/rubocop/cop/security/eval.rb +1 -0
  138. data/lib/rubocop/cop/security/json_load.rb +1 -0
  139. data/lib/rubocop/cop/security/marshal_load.rb +1 -0
  140. data/lib/rubocop/cop/security/open.rb +1 -0
  141. data/lib/rubocop/cop/security/yaml_load.rb +1 -0
  142. data/lib/rubocop/cop/style/access_modifier_declarations.rb +2 -1
  143. data/lib/rubocop/cop/style/alias.rb +1 -0
  144. data/lib/rubocop/cop/style/arguments_forwarding.rb +3 -0
  145. data/lib/rubocop/cop/style/array_coercion.rb +2 -0
  146. data/lib/rubocop/cop/style/array_join.rb +1 -0
  147. data/lib/rubocop/cop/style/attr.rb +1 -0
  148. data/lib/rubocop/cop/style/bisected_attr_accessor.rb +59 -71
  149. data/lib/rubocop/cop/style/bisected_attr_accessor/macro.rb +62 -0
  150. data/lib/rubocop/cop/style/case_equality.rb +2 -1
  151. data/lib/rubocop/cop/style/case_like_if.rb +15 -4
  152. data/lib/rubocop/cop/style/class_equality_comparison.rb +3 -0
  153. data/lib/rubocop/cop/style/collection_compact.rb +2 -0
  154. data/lib/rubocop/cop/style/colon_method_call.rb +1 -0
  155. data/lib/rubocop/cop/style/command_literal.rb +1 -1
  156. data/lib/rubocop/cop/style/conditional_assignment.rb +2 -0
  157. data/lib/rubocop/cop/style/constant_visibility.rb +28 -0
  158. data/lib/rubocop/cop/style/date_time.rb +3 -0
  159. data/lib/rubocop/cop/style/dir.rb +1 -0
  160. data/lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb +2 -2
  161. data/lib/rubocop/cop/style/documentation.rb +30 -3
  162. data/lib/rubocop/cop/style/documentation_method.rb +1 -0
  163. data/lib/rubocop/cop/style/double_negation.rb +3 -2
  164. data/lib/rubocop/cop/style/each_for_simple_loop.rb +1 -0
  165. data/lib/rubocop/cop/style/each_with_object.rb +1 -0
  166. data/lib/rubocop/cop/style/empty_literal.rb +9 -0
  167. data/lib/rubocop/cop/style/endless_method.rb +1 -0
  168. data/lib/rubocop/cop/style/eval_with_location.rb +89 -27
  169. data/lib/rubocop/cop/style/even_odd.rb +1 -0
  170. data/lib/rubocop/cop/style/expand_path_arguments.rb +3 -0
  171. data/lib/rubocop/cop/style/explicit_block_argument.rb +2 -1
  172. data/lib/rubocop/cop/style/exponential_notation.rb +6 -7
  173. data/lib/rubocop/cop/style/float_division.rb +4 -0
  174. data/lib/rubocop/cop/style/format_string.rb +2 -0
  175. data/lib/rubocop/cop/style/format_string_token.rb +1 -0
  176. data/lib/rubocop/cop/style/global_std_stream.rb +1 -0
  177. data/lib/rubocop/cop/style/hash_conversion.rb +105 -0
  178. data/lib/rubocop/cop/style/hash_each_methods.rb +1 -0
  179. data/lib/rubocop/cop/style/hash_except.rb +1 -0
  180. data/lib/rubocop/cop/style/hash_like_case.rb +1 -0
  181. data/lib/rubocop/cop/style/hash_syntax.rb +16 -15
  182. data/lib/rubocop/cop/style/hash_transform_keys.rb +4 -0
  183. data/lib/rubocop/cop/style/hash_transform_values.rb +4 -0
  184. data/lib/rubocop/cop/style/if_with_boolean_literal_branches.rb +2 -0
  185. data/lib/rubocop/cop/style/implicit_runtime_error.rb +1 -0
  186. data/lib/rubocop/cop/style/inverse_methods.rb +2 -0
  187. data/lib/rubocop/cop/style/method_call_with_args_parentheses.rb +40 -0
  188. data/lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb +20 -2
  189. data/lib/rubocop/cop/style/min_max.rb +1 -0
  190. data/lib/rubocop/cop/style/mixin_usage.rb +2 -0
  191. data/lib/rubocop/cop/style/module_function.rb +5 -0
  192. data/lib/rubocop/cop/style/multiple_comparison.rb +21 -2
  193. data/lib/rubocop/cop/style/mutable_constant.rb +3 -0
  194. data/lib/rubocop/cop/style/negated_if_else_condition.rb +16 -2
  195. data/lib/rubocop/cop/style/nil_comparison.rb +3 -0
  196. data/lib/rubocop/cop/style/nil_lambda.rb +1 -0
  197. data/lib/rubocop/cop/style/non_nil_check.rb +7 -0
  198. data/lib/rubocop/cop/style/numeric_predicate.rb +3 -0
  199. data/lib/rubocop/cop/style/option_hash.rb +1 -0
  200. data/lib/rubocop/cop/style/or_assignment.rb +2 -0
  201. data/lib/rubocop/cop/style/parallel_assignment.rb +6 -0
  202. data/lib/rubocop/cop/style/parentheses_around_condition.rb +1 -0
  203. data/lib/rubocop/cop/style/proc.rb +1 -0
  204. data/lib/rubocop/cop/style/random_with_offset.rb +5 -0
  205. data/lib/rubocop/cop/style/redundant_assignment.rb +1 -0
  206. data/lib/rubocop/cop/style/redundant_begin.rb +33 -4
  207. data/lib/rubocop/cop/style/redundant_conditional.rb +2 -0
  208. data/lib/rubocop/cop/style/redundant_exception.rb +2 -0
  209. data/lib/rubocop/cop/style/redundant_fetch_block.rb +2 -0
  210. data/lib/rubocop/cop/style/redundant_file_extension_in_require.rb +1 -0
  211. data/lib/rubocop/cop/style/redundant_freeze.rb +1 -0
  212. data/lib/rubocop/cop/style/redundant_parentheses.rb +13 -0
  213. data/lib/rubocop/cop/style/redundant_return.rb +4 -0
  214. data/lib/rubocop/cop/style/redundant_self.rb +7 -3
  215. data/lib/rubocop/cop/style/redundant_self_assignment.rb +2 -0
  216. data/lib/rubocop/cop/style/redundant_sort.rb +1 -0
  217. data/lib/rubocop/cop/style/redundant_sort_by.rb +1 -0
  218. data/lib/rubocop/cop/style/regexp_literal.rb +1 -1
  219. data/lib/rubocop/cop/style/rescue_modifier.rb +17 -14
  220. data/lib/rubocop/cop/style/rescue_standard_error.rb +2 -0
  221. data/lib/rubocop/cop/style/return_nil.rb +6 -0
  222. data/lib/rubocop/cop/style/safe_navigation.rb +2 -0
  223. data/lib/rubocop/cop/style/sample.rb +1 -0
  224. data/lib/rubocop/cop/style/signal_exception.rb +3 -0
  225. data/lib/rubocop/cop/style/single_argument_dig.rb +1 -0
  226. data/lib/rubocop/cop/style/slicing_with_range.rb +1 -0
  227. data/lib/rubocop/cop/style/sole_nested_conditional.rb +16 -0
  228. data/lib/rubocop/cop/style/special_global_vars.rb +3 -3
  229. data/lib/rubocop/cop/style/stderr_puts.rb +1 -0
  230. data/lib/rubocop/cop/style/string_chars.rb +38 -0
  231. data/lib/rubocop/cop/style/string_concatenation.rb +1 -0
  232. data/lib/rubocop/cop/style/string_hash_keys.rb +2 -0
  233. data/lib/rubocop/cop/style/strip.rb +1 -0
  234. data/lib/rubocop/cop/style/struct_inheritance.rb +3 -0
  235. data/lib/rubocop/cop/style/symbol_proc.rb +25 -1
  236. data/lib/rubocop/cop/style/ternary_parentheses.rb +1 -0
  237. data/lib/rubocop/cop/style/trailing_body_on_method_definition.rb +5 -0
  238. data/lib/rubocop/cop/style/trailing_method_end_statement.rb +1 -1
  239. data/lib/rubocop/cop/style/trivial_accessors.rb +1 -0
  240. data/lib/rubocop/cop/style/unless_logical_operators.rb +105 -0
  241. data/lib/rubocop/cop/style/unpack_first.rb +1 -0
  242. data/lib/rubocop/cop/style/yoda_condition.rb +1 -0
  243. data/lib/rubocop/cop/style/zero_length_predicate.rb +5 -0
  244. data/lib/rubocop/directive_comment.rb +64 -9
  245. data/lib/rubocop/ext/regexp_parser.rb +3 -6
  246. data/lib/rubocop/formatter/offense_count_formatter.rb +1 -1
  247. data/lib/rubocop/formatter/worst_offenders_formatter.rb +1 -1
  248. data/lib/rubocop/magic_comment.rb +1 -1
  249. data/lib/rubocop/name_similarity.rb +1 -1
  250. data/lib/rubocop/target_finder.rb +1 -0
  251. data/lib/rubocop/target_ruby.rb +21 -13
  252. data/lib/rubocop/version.rb +1 -1
  253. metadata +13 -7
@@ -51,7 +51,7 @@ module RuboCop
51
51
  # rubocop:enable Metrics/AbcSize
52
52
 
53
53
  def ordered_offense_counts(offense_counts)
54
- Hash[offense_counts.sort_by { |k, v| [-v, k] }]
54
+ offense_counts.sort_by { |k, v| [-v, k] }.to_h
55
55
  end
56
56
 
57
57
  def total_offense_count(offense_counts)
@@ -47,7 +47,7 @@ module RuboCop
47
47
  end
48
48
 
49
49
  def valid_shareable_constant_value?
50
- %w[none literal experimental_everything experimental_copy].include?(shareable_constant_values)
50
+ %w[none literal experimental_everything experimental_copy].include?(shareable_constant_value)
51
51
  end
52
52
 
53
53
  # Was a magic comment for the frozen string literal found?
@@ -16,7 +16,7 @@ module RuboCop
16
16
  # DidYouMean::SpellChecker is not available in all versions of Ruby, and
17
17
  # even on versions where it *is* available (>= 2.3), it is not always
18
18
  # required correctly. So we do a feature check first.
19
- # See: https://github.com/rubocop-hq/rubocop/issues/7979
19
+ # See: https://github.com/rubocop/rubocop/issues/7979
20
20
  return [] unless defined?(DidYouMean::SpellChecker)
21
21
 
22
22
  names = names.dup
@@ -96,6 +96,7 @@ module RuboCop
96
96
  end
97
97
 
98
98
  def wanted_dir_patterns(base_dir, exclude_pattern, flags)
99
+ base_dir = base_dir.gsub('/{}/', '/\{}/')
99
100
  dirs = Dir.glob(File.join(base_dir.gsub('/**/', '/\**/'), '*/'), flags)
100
101
  .reject do |dir|
101
102
  dir.end_with?('/./', '/../') || File.fnmatch?(exclude_pattern, dir, flags)
@@ -147,10 +147,12 @@ module RuboCop
147
147
 
148
148
  GEMSPEC_EXTENSION = '.gemspec'
149
149
 
150
+ # @!method required_ruby_version(node)
150
151
  def_node_search :required_ruby_version, <<~PATTERN
151
152
  (send _ :required_ruby_version= $_)
152
153
  PATTERN
153
154
 
155
+ # @!method gem_requirement?(node)
154
156
  def_node_matcher :gem_requirement?, <<~PATTERN
155
157
  (send (const(const _ :Gem):Requirement) :new $str)
156
158
  PATTERN
@@ -165,14 +167,10 @@ module RuboCop
165
167
  file = gemspec_filepath
166
168
  return unless file && File.file?(file)
167
169
 
168
- version = version_from_gemspec_file(file)
169
- return if version.nil?
170
+ right_hand_side = version_from_gemspec_file(file)
171
+ return if right_hand_side.nil?
170
172
 
171
- requirement = version.children.last
172
- return version_from_array(version) if version.array_type?
173
- return version_from_array(requirement) if gem_requirement? version
174
-
175
- version_from_str(version.str_content)
173
+ find_minimal_known_ruby(right_hand_side)
176
174
  end
177
175
 
178
176
  def gemspec_filename
@@ -192,15 +190,25 @@ module RuboCop
192
190
  required_ruby_version(processed_source.ast).first
193
191
  end
194
192
 
193
+ def version_from_right_hand_side(right_hand_side)
194
+ if right_hand_side.array_type?
195
+ version_from_array(right_hand_side)
196
+ elsif gem_requirement?(right_hand_side)
197
+ right_hand_side.children.last.value
198
+ else
199
+ right_hand_side.value
200
+ end
201
+ end
202
+
195
203
  def version_from_array(array)
196
- versions = array.children.map { |v| version_from_str(v.is_a?(String) ? v : v.str_content) }
197
- versions.compact.min
204
+ array.children.map(&:value)
198
205
  end
199
206
 
200
- def version_from_str(str)
201
- str.match(/^(?:>=|<=)?\s*(?<version>\d+(?:\.\d+)*)/) do |md|
202
- md[:version].to_f
203
- end
207
+ def find_minimal_known_ruby(right_hand_side)
208
+ version = version_from_right_hand_side(right_hand_side)
209
+ requirement = Gem::Requirement.new(version)
210
+
211
+ KNOWN_RUBIES.detect { |v| requirement.satisfied_by?(Gem::Version.new("#{v}.99")) }
204
212
  end
205
213
  end
206
214
 
@@ -3,7 +3,7 @@
3
3
  module RuboCop
4
4
  # This module holds the RuboCop version information.
5
5
  module Version
6
- STRING = '1.9.1'
6
+ STRING = '1.12.0'
7
7
 
8
8
  MSG = '%<version>s (using Parser %<parser_version>s, '\
9
9
  'rubocop-ast %<rubocop_ast_version>s, ' \
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.1
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2021-02-01 00:00:00.000000000 Z
13
+ date: 2021-03-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: parallel
@@ -244,6 +244,7 @@ files:
244
244
  - lib/rubocop/cop/documentation.rb
245
245
  - lib/rubocop/cop/exclude_limit.rb
246
246
  - lib/rubocop/cop/force.rb
247
+ - lib/rubocop/cop/gemspec/date_assignment.rb
247
248
  - lib/rubocop/cop/gemspec/duplicated_assignment.rb
248
249
  - lib/rubocop/cop/gemspec/ordered_dependencies.rb
249
250
  - lib/rubocop/cop/gemspec/required_ruby_version.rb
@@ -257,6 +258,7 @@ files:
257
258
  - lib/rubocop/cop/internal_affairs/example_description.rb
258
259
  - lib/rubocop/cop/internal_affairs/method_name_equal.rb
259
260
  - lib/rubocop/cop/internal_affairs/node_destructuring.rb
261
+ - lib/rubocop/cop/internal_affairs/node_matcher_directive.rb
260
262
  - lib/rubocop/cop/internal_affairs/node_type_predicate.rb
261
263
  - lib/rubocop/cop/internal_affairs/offense_location_keyword.rb
262
264
  - lib/rubocop/cop/internal_affairs/redundant_described_class_as_subject.rb
@@ -599,6 +601,7 @@ files:
599
601
  - lib/rubocop/cop/style/bare_percent_literals.rb
600
602
  - lib/rubocop/cop/style/begin_block.rb
601
603
  - lib/rubocop/cop/style/bisected_attr_accessor.rb
604
+ - lib/rubocop/cop/style/bisected_attr_accessor/macro.rb
602
605
  - lib/rubocop/cop/style/block_comments.rb
603
606
  - lib/rubocop/cop/style/block_delimiters.rb
604
607
  - lib/rubocop/cop/style/case_equality.rb
@@ -655,6 +658,7 @@ files:
655
658
  - lib/rubocop/cop/style/global_vars.rb
656
659
  - lib/rubocop/cop/style/guard_clause.rb
657
660
  - lib/rubocop/cop/style/hash_as_last_array_item.rb
661
+ - lib/rubocop/cop/style/hash_conversion.rb
658
662
  - lib/rubocop/cop/style/hash_each_methods.rb
659
663
  - lib/rubocop/cop/style/hash_except.rb
660
664
  - lib/rubocop/cop/style/hash_like_case.rb
@@ -765,6 +769,7 @@ files:
765
769
  - lib/rubocop/cop/style/stabby_lambda_parentheses.rb
766
770
  - lib/rubocop/cop/style/static_class.rb
767
771
  - lib/rubocop/cop/style/stderr_puts.rb
772
+ - lib/rubocop/cop/style/string_chars.rb
768
773
  - lib/rubocop/cop/style/string_concatenation.rb
769
774
  - lib/rubocop/cop/style/string_hash_keys.rb
770
775
  - lib/rubocop/cop/style/string_literals.rb
@@ -788,6 +793,7 @@ files:
788
793
  - lib/rubocop/cop/style/trailing_underscore_variable.rb
789
794
  - lib/rubocop/cop/style/trivial_accessors.rb
790
795
  - lib/rubocop/cop/style/unless_else.rb
796
+ - lib/rubocop/cop/style/unless_logical_operators.rb
791
797
  - lib/rubocop/cop/style/unpack_first.rb
792
798
  - lib/rubocop/cop/style/variable_interpolation.rb
793
799
  - lib/rubocop/cop/style/when_then.rb
@@ -859,15 +865,15 @@ files:
859
865
  - lib/rubocop/version.rb
860
866
  - lib/rubocop/warning.rb
861
867
  - lib/rubocop/yaml_duplication_checker.rb
862
- homepage: https://github.com/rubocop-hq/rubocop
868
+ homepage: https://github.com/rubocop/rubocop
863
869
  licenses:
864
870
  - MIT
865
871
  metadata:
866
872
  homepage_uri: https://rubocop.org/
867
- changelog_uri: https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md
868
- source_code_uri: https://github.com/rubocop-hq/rubocop/
869
- documentation_uri: https://docs.rubocop.org/rubocop/1.9/
870
- bug_tracker_uri: https://github.com/rubocop-hq/rubocop/issues
873
+ changelog_uri: https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md
874
+ source_code_uri: https://github.com/rubocop/rubocop/
875
+ documentation_uri: https://docs.rubocop.org/rubocop/1.12/
876
+ bug_tracker_uri: https://github.com/rubocop/rubocop/issues
871
877
  post_install_message:
872
878
  rdoc_options: []
873
879
  require_paths: