rubocop 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rubocop might be problematic. Click here for more details.

Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/CHANGELOG.md +42 -0
  4. data/README.md +59 -54
  5. data/config/default.yml +124 -95
  6. data/config/disabled.yml +4 -0
  7. data/config/enabled.yml +286 -264
  8. data/lib/rubocop.rb +10 -3
  9. data/lib/rubocop/cli.rb +10 -171
  10. data/lib/rubocop/cop/cop.rb +14 -11
  11. data/lib/rubocop/cop/lint/debugger.rb +35 -0
  12. data/lib/rubocop/cop/lint/syntax.rb +34 -0
  13. data/lib/rubocop/cop/offence.rb +15 -23
  14. data/lib/rubocop/cop/style/align_array.rb +1 -10
  15. data/lib/rubocop/cop/style/align_hash.rb +14 -2
  16. data/lib/rubocop/cop/style/align_parameters.rb +1 -11
  17. data/lib/rubocop/cop/style/and_or.rb +13 -11
  18. data/lib/rubocop/cop/style/attr.rb +1 -1
  19. data/lib/rubocop/cop/style/autocorrect_alignment.rb +31 -6
  20. data/lib/rubocop/cop/style/blocks.rb +14 -6
  21. data/lib/rubocop/cop/style/character_literal.rb +1 -1
  22. data/lib/rubocop/cop/style/class_length.rb +38 -0
  23. data/lib/rubocop/cop/style/collection_methods.rb +1 -1
  24. data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
  25. data/lib/rubocop/cop/style/configurable_naming.rb +47 -0
  26. data/lib/rubocop/cop/style/def_parentheses.rb +2 -2
  27. data/lib/rubocop/cop/style/empty_literal.rb +1 -1
  28. data/lib/rubocop/cop/style/even_odd.rb +7 -3
  29. data/lib/rubocop/cop/style/hash_methods.rb +1 -1
  30. data/lib/rubocop/cop/style/hash_syntax.rb +36 -7
  31. data/lib/rubocop/cop/style/lambda_call.rb +36 -11
  32. data/lib/rubocop/cop/style/method_call_parentheses.rb +1 -1
  33. data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +41 -0
  34. data/lib/rubocop/cop/style/method_length.rb +2 -13
  35. data/lib/rubocop/cop/style/method_name.rb +42 -0
  36. data/lib/rubocop/cop/style/numeric_literals.rb +4 -0
  37. data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
  38. data/lib/rubocop/cop/style/raise_args.rb +60 -0
  39. data/lib/rubocop/cop/style/redundant_exception.rb +32 -0
  40. data/lib/rubocop/cop/style/redundant_return.rb +14 -5
  41. data/lib/rubocop/cop/style/redundant_self.rb +1 -1
  42. data/lib/rubocop/cop/style/semicolon.rb +13 -4
  43. data/lib/rubocop/cop/style/signal_exception.rb +63 -14
  44. data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
  45. data/lib/rubocop/cop/style/string_help.rb +4 -1
  46. data/lib/rubocop/cop/style/string_literals.rb +34 -11
  47. data/lib/rubocop/cop/style/surrounding_space.rb +64 -17
  48. data/lib/rubocop/cop/style/tab.rb +1 -1
  49. data/lib/rubocop/cop/style/variable_name.rb +44 -0
  50. data/lib/rubocop/cop/style/when_then.rb +1 -1
  51. data/lib/rubocop/cop/style/while_until_do.rb +1 -1
  52. data/lib/rubocop/cop/team.rb +4 -7
  53. data/lib/rubocop/cop/util.rb +12 -0
  54. data/lib/rubocop/formatter/clang_style_formatter.rb +1 -1
  55. data/lib/rubocop/formatter/emacs_style_formatter.rb +5 -2
  56. data/lib/rubocop/formatter/json_formatter.rb +1 -0
  57. data/lib/rubocop/formatter/progress_formatter.rb +9 -13
  58. data/lib/rubocop/formatter/simple_text_formatter.rb +63 -15
  59. data/lib/rubocop/options.rb +184 -0
  60. data/lib/rubocop/processed_source.rb +4 -0
  61. data/lib/rubocop/version.rb +1 -1
  62. data/rubocop.gemspec +1 -1
  63. data/spec/rubocop/cli_spec.rb +870 -1001
  64. data/spec/rubocop/config_spec.rb +13 -13
  65. data/spec/rubocop/config_store_spec.rb +38 -37
  66. data/spec/rubocop/cop/commissioner_spec.rb +42 -46
  67. data/spec/rubocop/cop/cop_spec.rb +72 -77
  68. data/spec/rubocop/cop/corrector_spec.rb +51 -55
  69. data/spec/rubocop/cop/lint/assignment_in_condition_spec.rb +100 -106
  70. data/spec/rubocop/cop/lint/block_alignment_spec.rb +403 -409
  71. data/spec/rubocop/cop/lint/debugger_spec.rb +39 -0
  72. data/spec/rubocop/cop/lint/empty_ensure_spec.rb +19 -25
  73. data/spec/rubocop/cop/lint/end_alignment_spec.rb +50 -56
  74. data/spec/rubocop/cop/lint/end_in_method_spec.rb +20 -26
  75. data/spec/rubocop/cop/lint/ensure_return_spec.rb +30 -36
  76. data/spec/rubocop/cop/lint/eval_spec.rb +25 -31
  77. data/spec/rubocop/cop/lint/handle_exceptions_spec.rb +22 -28
  78. data/spec/rubocop/cop/lint/literal_in_condition_spec.rb +51 -57
  79. data/spec/rubocop/cop/lint/loop_spec.rb +17 -23
  80. data/spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb +51 -57
  81. data/spec/rubocop/cop/lint/rescue_exception_spec.rb +105 -111
  82. data/spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb +230 -236
  83. data/spec/rubocop/cop/lint/syntax_spec.rb +33 -0
  84. data/spec/rubocop/cop/lint/unreachable_code_spec.rb +51 -57
  85. data/spec/rubocop/cop/lint/useless_assignment_spec.rb +1544 -1550
  86. data/spec/rubocop/cop/lint/useless_comparison_spec.rb +21 -27
  87. data/spec/rubocop/cop/lint/useless_setter_call_spec.rb +119 -125
  88. data/spec/rubocop/cop/lint/void_spec.rb +50 -56
  89. data/spec/rubocop/cop/offence_spec.rb +101 -131
  90. data/spec/rubocop/cop/rails/has_and_belongs_to_many_spec.rb +6 -12
  91. data/spec/rubocop/cop/rails/read_attribute_spec.rb +6 -12
  92. data/spec/rubocop/cop/rails/validation_spec.rb +13 -19
  93. data/spec/rubocop/cop/style/access_control_spec.rb +146 -152
  94. data/spec/rubocop/cop/style/alias_spec.rb +30 -36
  95. data/spec/rubocop/cop/style/align_array_spec.rb +57 -56
  96. data/spec/rubocop/cop/style/align_hash_spec.rb +256 -237
  97. data/spec/rubocop/cop/style/align_parameters_spec.rb +216 -202
  98. data/spec/rubocop/cop/style/and_or_spec.rb +51 -55
  99. data/spec/rubocop/cop/style/ascii_comments_spec.rb +14 -20
  100. data/spec/rubocop/cop/style/ascii_identifiers_spec.rb +26 -32
  101. data/spec/rubocop/cop/style/attr_spec.rb +11 -17
  102. data/spec/rubocop/cop/style/begin_block_spec.rb +6 -12
  103. data/spec/rubocop/cop/style/block_comments_spec.rb +13 -19
  104. data/spec/rubocop/cop/style/block_nesting_spec.rb +134 -140
  105. data/spec/rubocop/cop/style/blocks_spec.rb +81 -84
  106. data/spec/rubocop/cop/style/case_equality_spec.rb +5 -11
  107. data/spec/rubocop/cop/style/case_indentation_spec.rb +71 -77
  108. data/spec/rubocop/cop/style/character_literal_spec.rb +31 -37
  109. data/spec/rubocop/cop/style/class_and_module_camel_case_spec.rb +31 -37
  110. data/spec/rubocop/cop/style/class_length_spec.rb +65 -0
  111. data/spec/rubocop/cop/style/class_methods_spec.rb +35 -41
  112. data/spec/rubocop/cop/style/class_vars_spec.rb +11 -17
  113. data/spec/rubocop/cop/style/collection_methods_spec.rb +41 -47
  114. data/spec/rubocop/cop/style/colon_method_call_spec.rb +45 -51
  115. data/spec/rubocop/cop/style/comment_annotation_spec.rb +79 -85
  116. data/spec/rubocop/cop/style/constant_name_spec.rb +45 -51
  117. data/spec/rubocop/cop/style/def_with_parentheses_spec.rb +28 -34
  118. data/spec/rubocop/cop/style/def_without_parentheses_spec.rb +23 -29
  119. data/spec/rubocop/cop/style/documentation_spec.rb +60 -66
  120. data/spec/rubocop/cop/style/dot_position_spec.rb +50 -56
  121. data/spec/rubocop/cop/style/empty_line_between_defs_spec.rb +109 -110
  122. data/spec/rubocop/cop/style/empty_lines_spec.rb +28 -34
  123. data/spec/rubocop/cop/style/empty_literal_spec.rb +80 -86
  124. data/spec/rubocop/cop/style/encoding_spec.rb +50 -56
  125. data/spec/rubocop/cop/style/end_block_spec.rb +6 -12
  126. data/spec/rubocop/cop/style/end_of_line_spec.rb +13 -19
  127. data/spec/rubocop/cop/style/even_odd_spec.rb +69 -41
  128. data/spec/rubocop/cop/style/favor_join_spec.rb +21 -27
  129. data/spec/rubocop/cop/style/favor_modifier_spec.rb +180 -176
  130. data/spec/rubocop/cop/style/favor_sprintf_spec.rb +41 -47
  131. data/spec/rubocop/cop/style/favor_unless_over_negated_if_spec.rb +63 -69
  132. data/spec/rubocop/cop/style/favor_until_over_negated_while_spec.rb +32 -38
  133. data/spec/rubocop/cop/style/final_newline_spec.rb +16 -22
  134. data/spec/rubocop/cop/style/for_spec.rb +18 -24
  135. data/spec/rubocop/cop/style/global_vars_spec.rb +23 -29
  136. data/spec/rubocop/cop/style/hash_methods_spec.rb +39 -45
  137. data/spec/rubocop/cop/style/hash_syntax_spec.rb +93 -65
  138. data/spec/rubocop/cop/style/if_with_semicolon_spec.rb +11 -17
  139. data/spec/rubocop/cop/style/indentation_width_spec.rb +377 -383
  140. data/spec/rubocop/cop/style/lambda_call_spec.rb +40 -22
  141. data/spec/rubocop/cop/style/lambda_spec.rb +30 -34
  142. data/spec/rubocop/cop/style/leading_comment_space_spec.rb +44 -50
  143. data/spec/rubocop/cop/style/line_length_spec.rb +11 -17
  144. data/spec/rubocop/cop/style/method_call_parentheses_spec.rb +14 -20
  145. data/spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb +60 -0
  146. data/spec/rubocop/cop/style/method_length_spec.rb +127 -133
  147. data/spec/rubocop/cop/style/method_name_spec.rb +103 -0
  148. data/spec/rubocop/cop/style/module_function_spec.rb +16 -22
  149. data/spec/rubocop/cop/style/multiline_block_chain_spec.rb +64 -70
  150. data/spec/rubocop/cop/style/multiline_if_then_spec.rb +74 -80
  151. data/spec/rubocop/cop/style/nil_comparison_spec.rb +20 -26
  152. data/spec/rubocop/cop/style/not_spec.rb +13 -19
  153. data/spec/rubocop/cop/style/numeric_literals_spec.rb +36 -35
  154. data/spec/rubocop/cop/style/one_line_conditional_spec.rb +5 -11
  155. data/spec/rubocop/cop/style/op_method_spec.rb +61 -67
  156. data/spec/rubocop/cop/style/parameter_lists_spec.rb +31 -37
  157. data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +62 -68
  158. data/spec/rubocop/cop/style/perl_backrefs_spec.rb +9 -15
  159. data/spec/rubocop/cop/style/proc_spec.rb +13 -19
  160. data/spec/rubocop/cop/style/raise_args_spec.rb +55 -0
  161. data/spec/rubocop/cop/style/reduce_arguments_spec.rb +49 -55
  162. data/spec/rubocop/cop/style/redundant_begin_spec.rb +47 -53
  163. data/spec/rubocop/cop/style/redundant_exception_spec.rb +27 -0
  164. data/spec/rubocop/cop/style/redundant_return_spec.rb +164 -72
  165. data/spec/rubocop/cop/style/redundant_self_spec.rb +109 -115
  166. data/spec/rubocop/cop/style/regexp_literal_spec.rb +57 -63
  167. data/spec/rubocop/cop/style/rescue_modifier_spec.rb +99 -105
  168. data/spec/rubocop/cop/style/semicolon_spec.rb +95 -90
  169. data/spec/rubocop/cop/style/signal_exception_spec.rb +248 -95
  170. data/spec/rubocop/cop/style/single_line_methods_spec.rb +45 -51
  171. data/spec/rubocop/cop/style/space_after_colon_spec.rb +14 -20
  172. data/spec/rubocop/cop/style/space_after_comma_spec.rb +16 -22
  173. data/spec/rubocop/cop/style/space_after_control_keyword_spec.rb +48 -54
  174. data/spec/rubocop/cop/style/space_after_method_name_spec.rb +49 -55
  175. data/spec/rubocop/cop/style/space_after_semicolon_spec.rb +10 -16
  176. data/spec/rubocop/cop/style/space_around_block_braces_spec.rb +118 -50
  177. data/spec/rubocop/cop/style/space_around_equals_in_default_parameter_spec.rb +18 -24
  178. data/spec/rubocop/cop/style/space_around_operators_spec.rb +204 -210
  179. data/spec/rubocop/cop/style/space_before_modifier_keyword_spec.rb +36 -42
  180. data/spec/rubocop/cop/style/space_inside_brackets_spec.rb +39 -45
  181. data/spec/rubocop/cop/style/space_inside_hash_literal_braces_spec.rb +62 -68
  182. data/spec/rubocop/cop/style/space_inside_parens_spec.rb +18 -24
  183. data/spec/rubocop/cop/style/special_global_vars_spec.rb +40 -46
  184. data/spec/rubocop/cop/style/string_literals_spec.rb +148 -70
  185. data/spec/rubocop/cop/style/symbol_array_spec.rb +28 -34
  186. data/spec/rubocop/cop/style/symbol_name_spec.rb +132 -138
  187. data/spec/rubocop/cop/style/tab_spec.rb +9 -15
  188. data/spec/rubocop/cop/style/ternary_operator_spec.rb +25 -31
  189. data/spec/rubocop/cop/style/trailing_blank_lines_spec.rb +10 -16
  190. data/spec/rubocop/cop/style/trailing_whitespace_spec.rb +14 -20
  191. data/spec/rubocop/cop/style/trivial_accessors_spec.rb +374 -380
  192. data/spec/rubocop/cop/style/unless_else_spec.rb +17 -23
  193. data/spec/rubocop/cop/style/variable_interpolation_spec.rb +36 -42
  194. data/spec/rubocop/cop/style/variable_name_spec.rb +83 -0
  195. data/spec/rubocop/cop/style/when_then_spec.rb +31 -37
  196. data/spec/rubocop/cop/style/while_until_do_spec.rb +47 -53
  197. data/spec/rubocop/cop/style/word_array_spec.rb +49 -55
  198. data/spec/rubocop/cop/team_spec.rb +125 -127
  199. data/spec/rubocop/cop/variable_inspector/assignment_spec.rb +176 -180
  200. data/spec/rubocop/cop/variable_inspector/locatable_spec.rb +580 -586
  201. data/spec/rubocop/cop/variable_inspector/scope_spec.rb +140 -146
  202. data/spec/rubocop/cop/variable_inspector/variable_spec.rb +52 -58
  203. data/spec/rubocop/cop/variable_inspector/variable_table_spec.rb +217 -223
  204. data/spec/rubocop/cop/variable_inspector_spec.rb +15 -19
  205. data/spec/rubocop/formatter/clang_style_formatter_spec.rb +35 -36
  206. data/spec/rubocop/formatter/disabled_config_formatter_spec.rb +2 -2
  207. data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +24 -1
  208. data/spec/rubocop/formatter/file_list_formatter_spec.rb +1 -1
  209. data/spec/rubocop/formatter/formatter_set_spec.rb +3 -3
  210. data/spec/rubocop/formatter/json_formatter_spec.rb +7 -2
  211. data/spec/rubocop/formatter/offence_count_formatter_spec.rb +1 -1
  212. data/spec/rubocop/formatter/progress_formatter_spec.rb +1 -1
  213. data/spec/rubocop/formatter/simple_text_formatter_spec.rb +55 -6
  214. data/spec/rubocop/options_spec.rb +233 -0
  215. data/spec/rubocop/processed_source_spec.rb +85 -42
  216. data/spec/rubocop/source_parser_spec.rb +108 -110
  217. data/spec/rubocop/target_finder_spec.rb +125 -127
  218. data/spec/rubocop/token_spec.rb +15 -17
  219. metadata +32 -8
  220. data/lib/rubocop/backports/bsearch.rb +0 -39
  221. data/lib/rubocop/cop/style/method_and_variable_snake_case.rb +0 -77
  222. data/spec/rubocop/cop/style/method_and_variable_snake_case_spec.rb +0 -102
@@ -2,26 +2,24 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- module Rubocop
6
- describe Token do
7
- describe '.from_parser_token' do
8
- subject(:token) { Token.from_parser_token(parser_token) }
9
- let(:parser_token) { [type, [text, range]] }
10
- let(:type) { :kDEF } # rubocop:disable SymbolName
11
- let(:text) { 'def' }
12
- let(:range) { double('range') }
5
+ describe Rubocop::Token do
6
+ describe '.from_parser_token' do
7
+ subject(:token) { described_class.from_parser_token(parser_token) }
8
+ let(:parser_token) { [type, [text, range]] }
9
+ let(:type) { :kDEF } # rubocop:disable SymbolName
10
+ let(:text) { 'def' }
11
+ let(:range) { double('range') }
13
12
 
14
- it "sets parser token's type to rubocop token's type" do
15
- expect(token.type).to eq(type)
16
- end
13
+ it "sets parser token's type to rubocop token's type" do
14
+ expect(token.type).to eq(type)
15
+ end
17
16
 
18
- it "sets parser token's text to rubocop token's text" do
19
- expect(token.text).to eq(text)
20
- end
17
+ it "sets parser token's text to rubocop token's text" do
18
+ expect(token.text).to eq(text)
19
+ end
21
20
 
22
- it "sets parser token's range to rubocop token's pos" do
23
- expect(token.pos).to eq(range)
24
- end
21
+ it "sets parser token's range to rubocop token's pos" do
22
+ expect(token.pos).to eq(range)
25
23
  end
26
24
  end
27
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubocop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bozhidar Batsov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-19 00:00:00.000000000 Z
11
+ date: 2013-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: 2.0.0.pre6
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: 2.0.0.pre6
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: powerpack
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -149,7 +149,6 @@ files:
149
149
  - config/disabled.yml
150
150
  - config/enabled.yml
151
151
  - lib/rubocop.rb
152
- - lib/rubocop/backports/bsearch.rb
153
152
  - lib/rubocop/cli.rb
154
153
  - lib/rubocop/config.rb
155
154
  - lib/rubocop/config_store.rb
@@ -158,6 +157,7 @@ files:
158
157
  - lib/rubocop/cop/corrector.rb
159
158
  - lib/rubocop/cop/lint/assignment_in_condition.rb
160
159
  - lib/rubocop/cop/lint/block_alignment.rb
160
+ - lib/rubocop/cop/lint/debugger.rb
161
161
  - lib/rubocop/cop/lint/empty_ensure.rb
162
162
  - lib/rubocop/cop/lint/end_alignment.rb
163
163
  - lib/rubocop/cop/lint/end_in_method.rb
@@ -169,6 +169,7 @@ files:
169
169
  - lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb
170
170
  - lib/rubocop/cop/lint/rescue_exception.rb
171
171
  - lib/rubocop/cop/lint/shadowing_outer_local_variable.rb
172
+ - lib/rubocop/cop/lint/syntax.rb
172
173
  - lib/rubocop/cop/lint/unreachable_code.rb
173
174
  - lib/rubocop/cop/lint/useless_assignment.rb
174
175
  - lib/rubocop/cop/lint/useless_comparison.rb
@@ -196,11 +197,13 @@ files:
196
197
  - lib/rubocop/cop/style/case_indentation.rb
197
198
  - lib/rubocop/cop/style/character_literal.rb
198
199
  - lib/rubocop/cop/style/class_and_module_camel_case.rb
200
+ - lib/rubocop/cop/style/class_length.rb
199
201
  - lib/rubocop/cop/style/class_methods.rb
200
202
  - lib/rubocop/cop/style/class_vars.rb
201
203
  - lib/rubocop/cop/style/collection_methods.rb
202
204
  - lib/rubocop/cop/style/colon_method_call.rb
203
205
  - lib/rubocop/cop/style/comment_annotation.rb
206
+ - lib/rubocop/cop/style/configurable_naming.rb
204
207
  - lib/rubocop/cop/style/constant_name.rb
205
208
  - lib/rubocop/cop/style/def_parentheses.rb
206
209
  - lib/rubocop/cop/style/documentation.rb
@@ -228,9 +231,10 @@ files:
228
231
  - lib/rubocop/cop/style/lambda_call.rb
229
232
  - lib/rubocop/cop/style/leading_comment_space.rb
230
233
  - lib/rubocop/cop/style/line_length.rb
231
- - lib/rubocop/cop/style/method_and_variable_snake_case.rb
232
234
  - lib/rubocop/cop/style/method_call_parentheses.rb
235
+ - lib/rubocop/cop/style/method_called_on_do_end_block.rb
233
236
  - lib/rubocop/cop/style/method_length.rb
237
+ - lib/rubocop/cop/style/method_name.rb
234
238
  - lib/rubocop/cop/style/module_function.rb
235
239
  - lib/rubocop/cop/style/multiline_block_chain.rb
236
240
  - lib/rubocop/cop/style/multiline_if_then.rb
@@ -243,8 +247,10 @@ files:
243
247
  - lib/rubocop/cop/style/parentheses_around_condition.rb
244
248
  - lib/rubocop/cop/style/perl_backrefs.rb
245
249
  - lib/rubocop/cop/style/proc.rb
250
+ - lib/rubocop/cop/style/raise_args.rb
246
251
  - lib/rubocop/cop/style/reduce_arguments.rb
247
252
  - lib/rubocop/cop/style/redundant_begin.rb
253
+ - lib/rubocop/cop/style/redundant_exception.rb
248
254
  - lib/rubocop/cop/style/redundant_return.rb
249
255
  - lib/rubocop/cop/style/redundant_self.rb
250
256
  - lib/rubocop/cop/style/regexp_literal.rb
@@ -269,6 +275,7 @@ files:
269
275
  - lib/rubocop/cop/style/trivial_accessors.rb
270
276
  - lib/rubocop/cop/style/unless_else.rb
271
277
  - lib/rubocop/cop/style/variable_interpolation.rb
278
+ - lib/rubocop/cop/style/variable_name.rb
272
279
  - lib/rubocop/cop/style/when_then.rb
273
280
  - lib/rubocop/cop/style/while_until_do.rb
274
281
  - lib/rubocop/cop/style/word_array.rb
@@ -291,6 +298,7 @@ files:
291
298
  - lib/rubocop/formatter/offence_count_formatter.rb
292
299
  - lib/rubocop/formatter/progress_formatter.rb
293
300
  - lib/rubocop/formatter/simple_text_formatter.rb
301
+ - lib/rubocop/options.rb
294
302
  - lib/rubocop/processed_source.rb
295
303
  - lib/rubocop/rake_task.rb
296
304
  - lib/rubocop/source_parser.rb
@@ -308,6 +316,7 @@ files:
308
316
  - spec/rubocop/cop/corrector_spec.rb
309
317
  - spec/rubocop/cop/lint/assignment_in_condition_spec.rb
310
318
  - spec/rubocop/cop/lint/block_alignment_spec.rb
319
+ - spec/rubocop/cop/lint/debugger_spec.rb
311
320
  - spec/rubocop/cop/lint/empty_ensure_spec.rb
312
321
  - spec/rubocop/cop/lint/end_alignment_spec.rb
313
322
  - spec/rubocop/cop/lint/end_in_method_spec.rb
@@ -319,6 +328,7 @@ files:
319
328
  - spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb
320
329
  - spec/rubocop/cop/lint/rescue_exception_spec.rb
321
330
  - spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb
331
+ - spec/rubocop/cop/lint/syntax_spec.rb
322
332
  - spec/rubocop/cop/lint/unreachable_code_spec.rb
323
333
  - spec/rubocop/cop/lint/useless_assignment_spec.rb
324
334
  - spec/rubocop/cop/lint/useless_comparison_spec.rb
@@ -345,6 +355,7 @@ files:
345
355
  - spec/rubocop/cop/style/case_indentation_spec.rb
346
356
  - spec/rubocop/cop/style/character_literal_spec.rb
347
357
  - spec/rubocop/cop/style/class_and_module_camel_case_spec.rb
358
+ - spec/rubocop/cop/style/class_length_spec.rb
348
359
  - spec/rubocop/cop/style/class_methods_spec.rb
349
360
  - spec/rubocop/cop/style/class_vars_spec.rb
350
361
  - spec/rubocop/cop/style/collection_methods_spec.rb
@@ -378,9 +389,10 @@ files:
378
389
  - spec/rubocop/cop/style/lambda_spec.rb
379
390
  - spec/rubocop/cop/style/leading_comment_space_spec.rb
380
391
  - spec/rubocop/cop/style/line_length_spec.rb
381
- - spec/rubocop/cop/style/method_and_variable_snake_case_spec.rb
382
392
  - spec/rubocop/cop/style/method_call_parentheses_spec.rb
393
+ - spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb
383
394
  - spec/rubocop/cop/style/method_length_spec.rb
395
+ - spec/rubocop/cop/style/method_name_spec.rb
384
396
  - spec/rubocop/cop/style/module_function_spec.rb
385
397
  - spec/rubocop/cop/style/multiline_block_chain_spec.rb
386
398
  - spec/rubocop/cop/style/multiline_if_then_spec.rb
@@ -393,8 +405,10 @@ files:
393
405
  - spec/rubocop/cop/style/parentheses_around_condition_spec.rb
394
406
  - spec/rubocop/cop/style/perl_backrefs_spec.rb
395
407
  - spec/rubocop/cop/style/proc_spec.rb
408
+ - spec/rubocop/cop/style/raise_args_spec.rb
396
409
  - spec/rubocop/cop/style/reduce_arguments_spec.rb
397
410
  - spec/rubocop/cop/style/redundant_begin_spec.rb
411
+ - spec/rubocop/cop/style/redundant_exception_spec.rb
398
412
  - spec/rubocop/cop/style/redundant_return_spec.rb
399
413
  - spec/rubocop/cop/style/redundant_self_spec.rb
400
414
  - spec/rubocop/cop/style/regexp_literal_spec.rb
@@ -425,6 +439,7 @@ files:
425
439
  - spec/rubocop/cop/style/trivial_accessors_spec.rb
426
440
  - spec/rubocop/cop/style/unless_else_spec.rb
427
441
  - spec/rubocop/cop/style/variable_interpolation_spec.rb
442
+ - spec/rubocop/cop/style/variable_name_spec.rb
428
443
  - spec/rubocop/cop/style/when_then_spec.rb
429
444
  - spec/rubocop/cop/style/while_until_do_spec.rb
430
445
  - spec/rubocop/cop/style/word_array_spec.rb
@@ -445,6 +460,7 @@ files:
445
460
  - spec/rubocop/formatter/offence_count_formatter_spec.rb
446
461
  - spec/rubocop/formatter/progress_formatter_spec.rb
447
462
  - spec/rubocop/formatter/simple_text_formatter_spec.rb
463
+ - spec/rubocop/options_spec.rb
448
464
  - spec/rubocop/processed_source_spec.rb
449
465
  - spec/rubocop/source_parser_spec.rb
450
466
  - spec/rubocop/target_finder_spec.rb
@@ -491,6 +507,7 @@ test_files:
491
507
  - spec/rubocop/cop/corrector_spec.rb
492
508
  - spec/rubocop/cop/lint/assignment_in_condition_spec.rb
493
509
  - spec/rubocop/cop/lint/block_alignment_spec.rb
510
+ - spec/rubocop/cop/lint/debugger_spec.rb
494
511
  - spec/rubocop/cop/lint/empty_ensure_spec.rb
495
512
  - spec/rubocop/cop/lint/end_alignment_spec.rb
496
513
  - spec/rubocop/cop/lint/end_in_method_spec.rb
@@ -502,6 +519,7 @@ test_files:
502
519
  - spec/rubocop/cop/lint/parentheses_as_grouped_expression_spec.rb
503
520
  - spec/rubocop/cop/lint/rescue_exception_spec.rb
504
521
  - spec/rubocop/cop/lint/shadowing_outer_local_variable_spec.rb
522
+ - spec/rubocop/cop/lint/syntax_spec.rb
505
523
  - spec/rubocop/cop/lint/unreachable_code_spec.rb
506
524
  - spec/rubocop/cop/lint/useless_assignment_spec.rb
507
525
  - spec/rubocop/cop/lint/useless_comparison_spec.rb
@@ -528,6 +546,7 @@ test_files:
528
546
  - spec/rubocop/cop/style/case_indentation_spec.rb
529
547
  - spec/rubocop/cop/style/character_literal_spec.rb
530
548
  - spec/rubocop/cop/style/class_and_module_camel_case_spec.rb
549
+ - spec/rubocop/cop/style/class_length_spec.rb
531
550
  - spec/rubocop/cop/style/class_methods_spec.rb
532
551
  - spec/rubocop/cop/style/class_vars_spec.rb
533
552
  - spec/rubocop/cop/style/collection_methods_spec.rb
@@ -561,9 +580,10 @@ test_files:
561
580
  - spec/rubocop/cop/style/lambda_spec.rb
562
581
  - spec/rubocop/cop/style/leading_comment_space_spec.rb
563
582
  - spec/rubocop/cop/style/line_length_spec.rb
564
- - spec/rubocop/cop/style/method_and_variable_snake_case_spec.rb
565
583
  - spec/rubocop/cop/style/method_call_parentheses_spec.rb
584
+ - spec/rubocop/cop/style/method_called_on_do_end_block_spec.rb
566
585
  - spec/rubocop/cop/style/method_length_spec.rb
586
+ - spec/rubocop/cop/style/method_name_spec.rb
567
587
  - spec/rubocop/cop/style/module_function_spec.rb
568
588
  - spec/rubocop/cop/style/multiline_block_chain_spec.rb
569
589
  - spec/rubocop/cop/style/multiline_if_then_spec.rb
@@ -576,8 +596,10 @@ test_files:
576
596
  - spec/rubocop/cop/style/parentheses_around_condition_spec.rb
577
597
  - spec/rubocop/cop/style/perl_backrefs_spec.rb
578
598
  - spec/rubocop/cop/style/proc_spec.rb
599
+ - spec/rubocop/cop/style/raise_args_spec.rb
579
600
  - spec/rubocop/cop/style/reduce_arguments_spec.rb
580
601
  - spec/rubocop/cop/style/redundant_begin_spec.rb
602
+ - spec/rubocop/cop/style/redundant_exception_spec.rb
581
603
  - spec/rubocop/cop/style/redundant_return_spec.rb
582
604
  - spec/rubocop/cop/style/redundant_self_spec.rb
583
605
  - spec/rubocop/cop/style/regexp_literal_spec.rb
@@ -608,6 +630,7 @@ test_files:
608
630
  - spec/rubocop/cop/style/trivial_accessors_spec.rb
609
631
  - spec/rubocop/cop/style/unless_else_spec.rb
610
632
  - spec/rubocop/cop/style/variable_interpolation_spec.rb
633
+ - spec/rubocop/cop/style/variable_name_spec.rb
611
634
  - spec/rubocop/cop/style/when_then_spec.rb
612
635
  - spec/rubocop/cop/style/while_until_do_spec.rb
613
636
  - spec/rubocop/cop/style/word_array_spec.rb
@@ -628,6 +651,7 @@ test_files:
628
651
  - spec/rubocop/formatter/offence_count_formatter_spec.rb
629
652
  - spec/rubocop/formatter/progress_formatter_spec.rb
630
653
  - spec/rubocop/formatter/simple_text_formatter_spec.rb
654
+ - spec/rubocop/options_spec.rb
631
655
  - spec/rubocop/processed_source_spec.rb
632
656
  - spec/rubocop/source_parser_spec.rb
633
657
  - spec/rubocop/target_finder_spec.rb
@@ -1,39 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # rubocop:disable LineLength
4
- # rubocop:disable BlockNesting
5
-
6
- unless Array.method_defined? :bsearch
7
- # Backport of Array#bsearch from Ruby 2.0.
8
- # Needed to boost Parser's performance under Ruby 1.9.
9
- class Array
10
- def bsearch
11
- return to_enum(__method__) unless block_given?
12
- from = 0
13
- to = size - 1
14
- satisfied = nil
15
- while from <= to
16
- midpoint = (from + to).div(2)
17
- result = yield(cur = self[midpoint])
18
- case result
19
- when Numeric
20
- return cur if result == 0
21
- result = result < 0
22
- when true
23
- satisfied = cur
24
- when nil, false
25
- # nothing to do
26
- else
27
- fail TypeError, "wrong argument type #{result.class} (must be numeric, true, false or nil)"
28
- end
29
-
30
- if result
31
- to = midpoint - 1
32
- else
33
- from = midpoint + 1
34
- end
35
- end
36
- satisfied
37
- end
38
- end
39
- end
@@ -1,77 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Rubocop
4
- module Cop
5
- module Style
6
- # This cop makes sure that all methods and variables use
7
- # snake_case for their names. Some special arrangements have to be
8
- # made for operator methods.
9
- class MethodAndVariableSnakeCase < Cop
10
- MSG = 'Use snake_case for methods and variables.'
11
- SNAKE_CASE = /^@?[\da-z_]+[!?=]?$/
12
-
13
- def investigate(processed_source)
14
- ast = processed_source.ast
15
- return unless ast
16
- on_node([:def, :defs, :lvasgn, :ivasgn, :send], ast) do |n|
17
- range = case n.type
18
- when :def then name_of_instance_method(n)
19
- when :defs then name_of_singleton_method(n)
20
- when :lvasgn, :ivasgn then name_of_variable(n)
21
- when :send then name_of_setter(n)
22
- end
23
-
24
- next unless range
25
- name = range.source.to_sym
26
- next if name =~ SNAKE_CASE || OPERATOR_METHODS.include?(name)
27
-
28
- convention(n, range)
29
- end
30
- end
31
-
32
- def name_of_instance_method(def_node)
33
- expr = def_node.loc.expression
34
- match = /^def(\s+)([\w]+[!?=]?\b)/.match(expr.source)
35
- return unless match
36
- space, method_name = match.captures
37
- begin_pos = expr.begin_pos + 'def'.length + space.length
38
- Parser::Source::Range.new(expr.source_buffer, begin_pos,
39
- begin_pos + method_name.length)
40
- end
41
-
42
- def name_of_singleton_method(defs_node)
43
- scope, method_name, _args, _body = *defs_node
44
- after_dot(defs_node, method_name.length,
45
- "def\s+" + Regexp.escape(scope.loc.expression.source))
46
- end
47
-
48
- def name_of_variable(vasgn_node)
49
- expr = vasgn_node.loc.expression
50
- name = vasgn_node.children.first
51
- Parser::Source::Range.new(expr.source_buffer, expr.begin_pos,
52
- expr.begin_pos + name.length)
53
- end
54
-
55
- def name_of_setter(send_node)
56
- receiver, method_name = *send_node
57
- return unless receiver && receiver.type == :self
58
- return unless method_name.to_s.end_with?('=')
59
- after_dot(send_node, method_name.length - '='.length,
60
- Regexp.escape(receiver.loc.expression.source))
61
- end
62
-
63
- # Returns a range containing the method name after the given regexp and
64
- # a dot.
65
- def after_dot(node, method_name_length, regexp)
66
- expr = node.loc.expression
67
- match = /\A#{regexp}\s*\.\s*/.match(expr.source)
68
- return unless match
69
- offset = match[0].length
70
- begin_pos = expr.begin_pos + offset
71
- Parser::Source::Range.new(expr.source_buffer, begin_pos,
72
- begin_pos + method_name_length)
73
- end
74
- end
75
- end
76
- end
77
- end
@@ -1,102 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- module Rubocop
6
- module Cop
7
- module Style
8
- describe MethodAndVariableSnakeCase do
9
- subject(:cop) { described_class.new }
10
-
11
- it 'registers an offence for camel case in instance method name' do
12
- inspect_source(cop, ['def myMethod',
13
- ' # ...',
14
- 'end'])
15
- expect(cop.offences).to have(1).item
16
- expect(cop.highlights).to eq(['myMethod'])
17
- end
18
-
19
- it 'registers an offence for camel case in singleton method name' do
20
- inspect_source(cop, ['def self.myMethod',
21
- ' # ...',
22
- 'end'])
23
- expect(cop.offences).to have(1).item
24
- expect(cop.highlights).to eq(['myMethod'])
25
- end
26
-
27
- it 'registers an offence for camel case in local variable name' do
28
- inspect_source(cop, 'myLocal = 1')
29
- expect(cop.offences).to have(1).item
30
- expect(cop.highlights).to eq(['myLocal'])
31
- end
32
-
33
- it 'registers an offence for camel case in instance variable name' do
34
- inspect_source(cop, '@myAttribute = 3')
35
- expect(cop.offences).to have(1).item
36
- expect(cop.highlights).to eq(['@myAttribute'])
37
- end
38
-
39
- it 'registers an offence for camel case in setter name' do
40
- inspect_source(cop, 'self.mySetter = 2')
41
- expect(cop.offences).to have(1).item
42
- expect(cop.highlights).to eq(['mySetter'])
43
- end
44
-
45
- it 'registers an offence for capitalized camel case' do
46
- inspect_source(cop, ['def MyMethod',
47
- 'end'])
48
- expect(cop.offences).to have(1).item
49
- expect(cop.highlights).to eq(['MyMethod'])
50
- end
51
-
52
- it 'accepts snake case in names' do
53
- inspect_source(cop, ['def my_method',
54
- ' my_local_html = 1',
55
- ' self.my_setter = 2',
56
- ' @my_attribute = 3',
57
- 'end'])
58
- expect(cop.offences).to be_empty
59
- end
60
-
61
- it 'registers an offence for mixed snake case and camel case' do
62
- inspect_source(cop, ['def visit_Arel_Nodes_SelectStatement',
63
- 'end'])
64
- expect(cop.offences).to have(1).item
65
- expect(cop.highlights).to eq(['visit_Arel_Nodes_SelectStatement'])
66
- end
67
-
68
- it 'accepts screaming snake case globals' do
69
- inspect_source(cop, '$MY_GLOBAL = 0')
70
- expect(cop.offences).to be_empty
71
- end
72
-
73
- it 'accepts screaming snake case constants' do
74
- inspect_source(cop, 'MY_CONSTANT = 0')
75
- expect(cop.offences).to be_empty
76
- end
77
-
78
- it 'accepts assigning to camel case constant' do
79
- inspect_source(cop, 'Paren = Struct.new :left, :right, :kind')
80
- expect(cop.offences).to be_empty
81
- end
82
-
83
- it 'accepts one line methods' do
84
- inspect_source(cop, "def body; '' end")
85
- expect(cop.offences).to be_empty
86
- end
87
-
88
- it 'accepts operator definitions' do
89
- inspect_source(cop, ['def +(other)',
90
- ' # ...',
91
- 'end'])
92
- expect(cop.offences).to be_empty
93
- end
94
-
95
- it 'accepts assignment with indexing of self' do
96
- inspect_source(cop, 'self[:a] = b')
97
- expect(cop.offences).to be_empty
98
- end
99
- end
100
- end
101
- end
102
- end