rubocop 0.15.0 → 0.16.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -10
- data/.travis.yml +2 -1
- data/CHANGELOG.md +55 -0
- data/Gemfile +3 -0
- data/README.md +37 -0
- data/config/default.yml +99 -16
- data/config/enabled.yml +28 -16
- data/lib/rubocop.rb +16 -2
- data/lib/rubocop/cli.rb +10 -91
- data/lib/rubocop/config.rb +4 -1
- data/lib/rubocop/config_loader.rb +18 -10
- data/lib/rubocop/config_store.rb +3 -2
- data/lib/rubocop/cop/check_assignment.rb +43 -0
- data/lib/rubocop/cop/check_methods.rb +18 -0
- data/lib/rubocop/cop/commissioner.rb +15 -3
- data/lib/rubocop/cop/cop.rb +51 -43
- data/lib/rubocop/cop/lint/assignment_in_condition.rb +1 -1
- data/lib/rubocop/cop/lint/block_alignment.rb +7 -7
- data/lib/rubocop/cop/lint/debugger.rb +1 -1
- data/lib/rubocop/cop/lint/empty_ensure.rb +1 -1
- data/lib/rubocop/cop/lint/end_alignment.rb +56 -19
- data/lib/rubocop/cop/lint/end_in_method.rb +4 -10
- data/lib/rubocop/cop/lint/ensure_return.rb +1 -1
- data/lib/rubocop/cop/lint/eval.rb +1 -1
- data/lib/rubocop/cop/lint/handle_exceptions.rb +1 -1
- data/lib/rubocop/cop/lint/literal_in_condition.rb +2 -2
- data/lib/rubocop/cop/lint/loop.rb +1 -1
- data/lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb +1 -1
- data/lib/rubocop/cop/lint/rescue_exception.rb +1 -1
- data/lib/rubocop/cop/lint/shadowing_outer_local_variable.rb +1 -1
- data/lib/rubocop/cop/lint/syntax.rb +1 -1
- data/lib/rubocop/cop/lint/unreachable_code.rb +1 -1
- data/lib/rubocop/cop/lint/useless_assignment.rb +2 -2
- data/lib/rubocop/cop/lint/useless_comparison.rb +1 -1
- data/lib/rubocop/cop/lint/useless_setter_call.rb +6 -16
- data/lib/rubocop/cop/lint/void.rb +5 -5
- data/lib/rubocop/cop/rails/default_scope.rb +33 -0
- data/lib/rubocop/cop/rails/has_and_belongs_to_many.rb +2 -4
- data/lib/rubocop/cop/rails/output.rb +1 -1
- data/lib/rubocop/cop/rails/read_attribute.rb +1 -1
- data/lib/rubocop/cop/rails/validation.rb +1 -1
- data/lib/rubocop/cop/style/access_modifier_indentation.rb +31 -16
- data/lib/rubocop/cop/style/accessor_method_name.rb +53 -0
- data/lib/rubocop/cop/style/alias.rb +14 -2
- data/lib/rubocop/cop/style/align_hash.rb +15 -16
- data/lib/rubocop/cop/style/and_or.rb +3 -3
- data/lib/rubocop/cop/style/array_syntax.rb +22 -0
- data/lib/rubocop/cop/style/ascii_comments.rb +1 -1
- data/lib/rubocop/cop/style/ascii_identifiers.rb +1 -3
- data/lib/rubocop/cop/style/attr.rb +1 -1
- data/lib/rubocop/cop/style/autocorrect_alignment.rb +13 -12
- data/lib/rubocop/cop/style/begin_block.rb +1 -1
- data/lib/rubocop/cop/style/block_comments.rb +1 -1
- data/lib/rubocop/cop/style/block_nesting.rb +5 -1
- data/lib/rubocop/cop/style/blocks.rb +4 -4
- data/lib/rubocop/cop/style/braces_around_hash_parameters.rb +48 -22
- data/lib/rubocop/cop/style/case_equality.rb +1 -1
- data/lib/rubocop/cop/style/case_indentation.rb +25 -6
- data/lib/rubocop/cop/style/class_and_module_camel_case.rb +1 -1
- data/lib/rubocop/cop/style/class_length.rb +7 -19
- data/lib/rubocop/cop/style/class_methods.rb +1 -1
- data/lib/rubocop/cop/style/class_vars.rb +1 -1
- data/lib/rubocop/cop/style/code_length.rb +35 -0
- data/lib/rubocop/cop/style/collection_methods.rb +1 -1
- data/lib/rubocop/cop/style/colon_method_call.rb +1 -1
- data/lib/rubocop/cop/style/comment_annotation.rb +1 -1
- data/lib/rubocop/cop/style/configurable_enforced_style.rb +51 -0
- data/lib/rubocop/cop/style/configurable_max.rb +17 -0
- data/lib/rubocop/cop/style/configurable_naming.rb +4 -10
- data/lib/rubocop/cop/style/constant_name.rb +5 -3
- data/lib/rubocop/cop/style/cyclomatic_complexity.rb +8 -13
- data/lib/rubocop/cop/style/def_parentheses.rb +4 -43
- data/lib/rubocop/cop/style/documentation.rb +1 -1
- data/lib/rubocop/cop/style/dot_position.rb +6 -2
- data/lib/rubocop/cop/style/empty_line_between_defs.rb +1 -1
- data/lib/rubocop/cop/style/empty_lines.rb +5 -1
- data/lib/rubocop/cop/style/empty_lines_around_access_modifier.rb +1 -1
- data/lib/rubocop/cop/style/empty_lines_around_body.rb +28 -13
- data/lib/rubocop/cop/style/empty_literal.rb +3 -3
- data/lib/rubocop/cop/style/encoding.rb +5 -5
- data/lib/rubocop/cop/style/end_block.rb +1 -1
- data/lib/rubocop/cop/style/end_of_line.rb +8 -6
- data/lib/rubocop/cop/style/even_odd.rb +6 -6
- data/lib/rubocop/cop/style/favor_join.rb +1 -1
- data/lib/rubocop/cop/style/favor_modifier.rb +20 -34
- data/lib/rubocop/cop/style/favor_sprintf.rb +1 -1
- data/lib/rubocop/cop/style/favor_unless_over_negated_if.rb +1 -1
- data/lib/rubocop/cop/style/final_newline.rb +1 -1
- data/lib/rubocop/cop/style/flip_flop.rb +20 -0
- data/lib/rubocop/cop/style/for.rb +34 -3
- data/lib/rubocop/cop/style/global_vars.rb +1 -1
- data/lib/rubocop/cop/style/hash_methods.rb +3 -3
- data/lib/rubocop/cop/style/hash_syntax.rb +8 -11
- data/lib/rubocop/cop/style/if_node.rb +25 -0
- data/lib/rubocop/cop/style/if_then_else.rb +1 -1
- data/lib/rubocop/cop/style/indentation_width.rb +77 -43
- data/lib/rubocop/cop/style/lambda.rb +2 -2
- data/lib/rubocop/cop/style/lambda_call.rb +4 -12
- data/lib/rubocop/cop/style/leading_comment_space.rb +1 -1
- data/lib/rubocop/cop/style/line_length.rb +9 -5
- data/lib/rubocop/cop/style/method_call_parentheses.rb +1 -1
- data/lib/rubocop/cop/style/method_called_on_do_end_block.rb +1 -1
- data/lib/rubocop/cop/style/method_def_parentheses.rb +52 -0
- data/lib/rubocop/cop/style/method_length.rb +9 -22
- data/lib/rubocop/cop/style/module_function.rb +1 -1
- data/lib/rubocop/cop/style/multiline_block_chain.rb +1 -1
- data/lib/rubocop/cop/style/multiline_if_then.rb +11 -1
- data/lib/rubocop/cop/style/nil_comparison.rb +1 -1
- data/lib/rubocop/cop/style/not.rb +1 -1
- data/lib/rubocop/cop/style/numeric_literals.rb +2 -2
- data/lib/rubocop/cop/style/op_method.rb +2 -2
- data/lib/rubocop/cop/style/parameter_lists.rb +2 -2
- data/lib/rubocop/cop/style/parentheses_around_condition.rb +8 -1
- data/lib/rubocop/cop/style/perl_backrefs.rb +1 -1
- data/lib/rubocop/cop/style/predicate_name.rb +54 -0
- data/lib/rubocop/cop/style/proc.rb +1 -1
- data/lib/rubocop/cop/style/raise_args.rb +4 -10
- data/lib/rubocop/cop/style/redundant_begin.rb +5 -15
- data/lib/rubocop/cop/style/redundant_exception.rb +1 -1
- data/lib/rubocop/cop/style/redundant_return.rb +9 -19
- data/lib/rubocop/cop/style/redundant_self.rb +8 -3
- data/lib/rubocop/cop/style/regexp_literal.rb +4 -3
- data/lib/rubocop/cop/style/rescue_modifier.rb +9 -17
- data/lib/rubocop/cop/style/semicolon.rb +20 -22
- data/lib/rubocop/cop/style/signal_exception.rb +10 -17
- data/lib/rubocop/cop/style/single_line_block_params.rb +62 -0
- data/lib/rubocop/cop/style/single_line_methods.rb +5 -15
- data/lib/rubocop/cop/style/space_after_comma_etc.rb +1 -3
- data/lib/rubocop/cop/style/space_after_control_keyword.rb +1 -1
- data/lib/rubocop/cop/style/space_after_method_name.rb +4 -12
- data/lib/rubocop/cop/style/space_after_not.rb +1 -1
- data/lib/rubocop/cop/style/space_around_block_braces.rb +105 -94
- data/lib/rubocop/cop/style/space_around_equals_in_parameter_default.rb +1 -1
- data/lib/rubocop/cop/style/space_around_operators.rb +38 -123
- data/lib/rubocop/cop/style/space_before_modifier_keyword.rb +1 -1
- data/lib/rubocop/cop/style/space_inside.rb +1 -3
- data/lib/rubocop/cop/style/space_inside_brackets.rb +0 -2
- data/lib/rubocop/cop/style/space_inside_hash_literal_braces.rb +5 -5
- data/lib/rubocop/cop/style/space_inside_parens.rb +0 -2
- data/lib/rubocop/cop/style/special_global_vars.rb +1 -1
- data/lib/rubocop/cop/style/string_help.rb +1 -1
- data/lib/rubocop/cop/style/string_literals.rb +4 -11
- data/lib/rubocop/cop/style/surrounding_space.rb +0 -2
- data/lib/rubocop/cop/style/symbol_array.rb +3 -10
- data/lib/rubocop/cop/style/tab.rb +5 -5
- data/lib/rubocop/cop/style/ternary_operator.rb +2 -2
- data/lib/rubocop/cop/style/trailing_blank_lines.rb +1 -1
- data/lib/rubocop/cop/style/trailing_whitespace.rb +1 -1
- data/lib/rubocop/cop/style/trivial_accessors.rb +4 -14
- data/lib/rubocop/cop/style/unless_else.rb +1 -1
- data/lib/rubocop/cop/style/variable_interpolation.rb +1 -1
- data/lib/rubocop/cop/style/when_then.rb +3 -1
- data/lib/rubocop/cop/style/while_until_do.rb +2 -2
- data/lib/rubocop/cop/style/word_array.rb +4 -10
- data/lib/rubocop/cop/util.rb +85 -12
- data/lib/rubocop/cop/variable_inspector.rb +4 -2
- data/lib/rubocop/file_inspector.rb +98 -0
- data/lib/rubocop/formatter/base_formatter.rb +2 -2
- data/lib/rubocop/formatter/disabled_config_formatter.rb +10 -2
- data/lib/rubocop/rake_task.rb +5 -1
- data/lib/rubocop/target_finder.rb +3 -3
- data/lib/rubocop/version.rb +1 -1
- data/rubocop-todo.yml +12 -0
- data/rubocop.gemspec +1 -1
- data/spec/isolated_environment_spec.rb +24 -0
- data/spec/rubocop/cli_spec.rb +120 -27
- data/spec/rubocop/config_loader_spec.rb +25 -11
- data/spec/rubocop/config_spec.rb +25 -9
- data/spec/rubocop/config_store_spec.rb +1 -1
- data/spec/rubocop/cop/cop_spec.rb +22 -3
- data/spec/rubocop/cop/lint/block_alignment_spec.rb +4 -4
- data/spec/rubocop/cop/lint/end_alignment_spec.rb +79 -47
- data/spec/rubocop/cop/lint/syntax_spec.rb +4 -3
- data/spec/rubocop/cop/rails/default_scope_spec.rb +31 -0
- data/spec/rubocop/cop/style/access_modifier_indentation_spec.rb +37 -2
- data/spec/rubocop/cop/style/accessor_method_name_spec.rb +81 -0
- data/spec/rubocop/cop/style/alias_spec.rb +10 -0
- data/spec/rubocop/cop/style/align_parameters_spec.rb +3 -3
- data/spec/rubocop/cop/style/block_nesting_spec.rb +4 -1
- data/spec/rubocop/cop/style/braces_around_hash_parameters_spec.rb +83 -0
- data/spec/rubocop/cop/style/case_indentation_spec.rb +227 -71
- data/spec/rubocop/cop/style/class_length_spec.rb +2 -0
- data/spec/rubocop/cop/style/constant_name_spec.rb +6 -0
- data/spec/rubocop/cop/style/cyclomatic_complexity_spec.rb +1 -0
- data/spec/rubocop/cop/style/documentation_spec.rb +12 -0
- data/spec/rubocop/cop/style/dot_position_spec.rb +10 -0
- data/spec/rubocop/cop/style/empty_lines_around_body_spec.rb +22 -0
- data/spec/rubocop/cop/style/empty_lines_spec.rb +6 -0
- data/spec/rubocop/cop/style/end_of_line_spec.rb +17 -0
- data/spec/rubocop/cop/style/favor_modifier_spec.rb +15 -0
- data/spec/rubocop/cop/style/flip_flop_spec.rb +23 -0
- data/spec/rubocop/cop/style/for_spec.rb +96 -18
- data/spec/rubocop/cop/style/hash_syntax_spec.rb +8 -2
- data/spec/rubocop/cop/style/indentation_width_spec.rb +185 -20
- data/spec/rubocop/cop/style/line_length_spec.rb +1 -0
- data/spec/rubocop/cop/style/method_def_parentheses_spec.rb +72 -0
- data/spec/rubocop/cop/style/multiline_if_then_spec.rb +16 -0
- data/spec/rubocop/cop/style/parentheses_around_condition_spec.rb +34 -3
- data/spec/rubocop/cop/style/predicate_name_spec.rb +25 -0
- data/spec/rubocop/cop/style/redundant_self_spec.rb +15 -0
- data/spec/rubocop/cop/style/regexp_literal_spec.rb +5 -0
- data/spec/rubocop/cop/style/semicolon_spec.rb +16 -16
- data/spec/rubocop/cop/style/{reduce_arguments_spec.rb → single_line_block_params_spec.rb} +12 -4
- data/spec/rubocop/cop/style/space_around_block_braces_spec.rb +58 -8
- data/spec/rubocop/cop/style/space_around_operators_spec.rb +71 -0
- data/spec/rubocop/cop/style/string_literals_spec.rb +18 -0
- data/spec/rubocop/file_inspector_spec.rb +78 -0
- data/spec/rubocop/formatter/clang_style_formatter_spec.rb +7 -7
- data/spec/rubocop/formatter/emacs_style_formatter_spec.rb +3 -3
- data/spec/rubocop/formatter/file_list_formatter_spec.rb +2 -2
- data/spec/rubocop/processed_source_spec.rb +7 -3
- data/spec/rubocop/token_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -2
- data/spec/support/isolated_environment.rb +7 -0
- data/spec/support/shared_context.rb +5 -1
- metadata +35 -12
- data/lib/rubocop/cop/style/reduce_arguments.rb +0 -34
- data/lib/rubocop/cop/style/symbol_name.rb +0 -45
- data/spec/rubocop/cop/style/def_without_parentheses_spec.rb +0 -33
- data/spec/rubocop/cop/style/symbol_name_spec.rb +0 -138
@@ -1,34 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
module Style
|
6
|
-
# This cop checks whether the block arguments of a single-line
|
7
|
-
# reduce(inject) call are named *a*(for accumulator) and *e*
|
8
|
-
# (for element).
|
9
|
-
class ReduceArguments < Cop
|
10
|
-
MSG = 'Name reduce block arguments |a, e| (accumulator, element).'
|
11
|
-
|
12
|
-
ARGS_NODE = s(:args, s(:arg, :a), s(:arg, :e))
|
13
|
-
|
14
|
-
def on_block(node)
|
15
|
-
# we care only for single line blocks
|
16
|
-
return unless Util.block_length(node) == 0
|
17
|
-
|
18
|
-
method_node, args_node, _body_node = *node
|
19
|
-
receiver, method_name, _method_args = *method_node
|
20
|
-
|
21
|
-
# discard other scenarios
|
22
|
-
return unless receiver
|
23
|
-
return unless [:reduce, :inject].include?(method_name)
|
24
|
-
|
25
|
-
# discard second argument destructuring
|
26
|
-
_, element_node = *args_node
|
27
|
-
return unless element_node.type == :arg
|
28
|
-
|
29
|
-
convention(args_node, :expression) unless args_node == ARGS_NODE
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module Rubocop
|
4
|
-
module Cop
|
5
|
-
module Style
|
6
|
-
# This cop checks whether symbol names are snake_case.
|
7
|
-
# There's also an option to accept CamelCase symbol names as well.
|
8
|
-
# There's also an option to accept symbol names with dots as well.
|
9
|
-
class SymbolName < Cop
|
10
|
-
MSG = 'Use snake_case for symbols.'
|
11
|
-
SNAKE_CASE = /^[\da-z_]+[!?=]?$/
|
12
|
-
SNAKE_CASE_WITH_DOTS = /^[\da-z_\.]+[!?=]?$/
|
13
|
-
CAMEL_CASE = /^[A-Z][A-Za-z\d]*$/
|
14
|
-
|
15
|
-
def allow_camel_case?
|
16
|
-
cop_config['AllowCamelCase']
|
17
|
-
end
|
18
|
-
|
19
|
-
def allow_dots?
|
20
|
-
cop_config['AllowDots']
|
21
|
-
end
|
22
|
-
|
23
|
-
def on_send(node)
|
24
|
-
receiver, method_name, *args = *node
|
25
|
-
# Arguments to Module#private_constant are symbols referring to
|
26
|
-
# existing constants, so they will start with an upper case letter.
|
27
|
-
# We ignore these symbols.
|
28
|
-
if receiver.nil? && method_name == :private_constant
|
29
|
-
args.each { |a| ignore_node(a) }
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def on_sym(node)
|
34
|
-
return if ignored_node?(node)
|
35
|
-
sym_name = node.to_a[0]
|
36
|
-
return unless sym_name =~ /^[a-zA-Z]/
|
37
|
-
return if sym_name =~ SNAKE_CASE
|
38
|
-
return if allow_camel_case? && sym_name =~ CAMEL_CASE
|
39
|
-
return if allow_dots? && sym_name =~ SNAKE_CASE_WITH_DOTS
|
40
|
-
convention(node, :expression)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe Rubocop::Cop::Style::DefWithoutParentheses do
|
6
|
-
subject(:cop) { described_class.new }
|
7
|
-
|
8
|
-
it 'reports an offence for def with parameters but no parens' do
|
9
|
-
src = ['def func a, b',
|
10
|
-
'end']
|
11
|
-
inspect_source(cop, src)
|
12
|
-
expect(cop.offences.size).to eq(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'reports an offence for class def with parameters but no parens' do
|
16
|
-
src = ['def Test.func a, b',
|
17
|
-
'end']
|
18
|
-
inspect_source(cop, src)
|
19
|
-
expect(cop.offences.size).to eq(1)
|
20
|
-
end
|
21
|
-
|
22
|
-
it 'accepts def with no args and no parens' do
|
23
|
-
src = ['def func',
|
24
|
-
'end']
|
25
|
-
inspect_source(cop, src)
|
26
|
-
expect(cop.offences).to be_empty
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'auto-adds required parens' do
|
30
|
-
new_source = autocorrect_source(cop, 'def test param; end')
|
31
|
-
expect(new_source).to eq('def test (param); end')
|
32
|
-
end
|
33
|
-
end
|
@@ -1,138 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe Rubocop::Cop::Style::SymbolName, :config do
|
6
|
-
subject(:cop) { described_class.new(config) }
|
7
|
-
let(:cop_config) { { 'AllowCamelCase' => true } }
|
8
|
-
|
9
|
-
context 'when AllowCamelCase is true' do
|
10
|
-
let(:cop_config) { { 'AllowCamelCase' => true } }
|
11
|
-
|
12
|
-
it 'does not register an offence for camel case in names' do
|
13
|
-
inspect_source(cop,
|
14
|
-
['test = :BadIdea'])
|
15
|
-
expect(cop.offences).to be_empty
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
context 'when AllowCamelCase is false' do
|
20
|
-
let(:cop_config) { { 'AllowCamelCase' => false } }
|
21
|
-
|
22
|
-
it 'registers an offence for camel case in names' do
|
23
|
-
inspect_source(cop,
|
24
|
-
['test = :BadIdea'])
|
25
|
-
expect(cop.messages).to eq(
|
26
|
-
['Use snake_case for symbols.'])
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
context 'when AllowDots is true' do
|
31
|
-
let(:cop_config) { { 'AllowDots' => true } }
|
32
|
-
|
33
|
-
it 'does not register an offence for dots in names' do
|
34
|
-
inspect_source(cop,
|
35
|
-
['test = :"bad.idea"'])
|
36
|
-
expect(cop.offences).to be_empty
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
context 'when AllowDots is false' do
|
41
|
-
let(:cop_config) { { 'AllowDots' => false } }
|
42
|
-
|
43
|
-
it 'registers an offence for dots in names' do
|
44
|
-
inspect_source(cop,
|
45
|
-
['test = :"bad.idea"'])
|
46
|
-
expect(cop.offences.map(&:message)).to eq(
|
47
|
-
['Use snake_case for symbols.'])
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'registers an offence for symbol used as hash label' do
|
52
|
-
inspect_source(cop,
|
53
|
-
['{ KEY_ONE: 1, KEY_TWO: 2 }'])
|
54
|
-
expect(cop.messages).to eq(
|
55
|
-
['Use snake_case for symbols.'] * 2)
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'accepts snake case in names' do
|
59
|
-
inspect_source(cop,
|
60
|
-
['test = :good_idea'])
|
61
|
-
expect(cop.offences).to be_empty
|
62
|
-
end
|
63
|
-
|
64
|
-
it 'accepts snake case in hash label names' do
|
65
|
-
inspect_source(cop,
|
66
|
-
['{ one: 1, one_more_3: 2 }'])
|
67
|
-
expect(cop.offences).to be_empty
|
68
|
-
end
|
69
|
-
|
70
|
-
it 'accepts snake case with a prefix @ in names' do
|
71
|
-
inspect_source(cop,
|
72
|
-
['test = :@good_idea'])
|
73
|
-
expect(cop.offences).to be_empty
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'accepts snake case with ? suffix' do
|
77
|
-
inspect_source(cop,
|
78
|
-
['test = :good_idea?'])
|
79
|
-
expect(cop.offences).to be_empty
|
80
|
-
end
|
81
|
-
|
82
|
-
it 'accepts snake case with ! suffix' do
|
83
|
-
inspect_source(cop,
|
84
|
-
['test = :good_idea!'])
|
85
|
-
expect(cop.offences).to be_empty
|
86
|
-
end
|
87
|
-
|
88
|
-
it 'accepts snake case with = suffix' do
|
89
|
-
inspect_source(cop,
|
90
|
-
['test = :good_idea='])
|
91
|
-
expect(cop.offences).to be_empty
|
92
|
-
end
|
93
|
-
|
94
|
-
it 'accepts special cases - !, [] and **' do
|
95
|
-
inspect_source(cop,
|
96
|
-
['test = :**',
|
97
|
-
'test = :!',
|
98
|
-
'test = :[]',
|
99
|
-
'test = :[]='])
|
100
|
-
expect(cop.offences).to be_empty
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'accepts special cases - ==, <=>, >, <, >=, <=' do
|
104
|
-
inspect_source(cop,
|
105
|
-
['test = :==',
|
106
|
-
'test = :<=>',
|
107
|
-
'test = :>',
|
108
|
-
'test = :<',
|
109
|
-
'test = :>=',
|
110
|
-
'test = :<='])
|
111
|
-
expect(cop.offences).to be_empty
|
112
|
-
end
|
113
|
-
|
114
|
-
it 'accepts non snake case arguments to private_constant' do
|
115
|
-
inspect_source(cop,
|
116
|
-
['private_constant :NORMAL_MODE, :ADMIN_MODE'])
|
117
|
-
expect(cop.offences).to be_empty
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'registers an offence for non snake case symbol near ' +
|
121
|
-
'private_constant' do
|
122
|
-
inspect_source(cop,
|
123
|
-
['private_constant f(:ADMIN_MODE)'])
|
124
|
-
expect(cop.offences.size).to eq(1)
|
125
|
-
end
|
126
|
-
|
127
|
-
it 'can handle an alias of and operator without crashing' do
|
128
|
-
inspect_source(cop,
|
129
|
-
['alias + add'])
|
130
|
-
expect(cop.offences).to be_empty
|
131
|
-
end
|
132
|
-
|
133
|
-
it 'registers an offence for SCREAMING_symbol_name' do
|
134
|
-
inspect_source(cop,
|
135
|
-
['test = :BAD_IDEA'])
|
136
|
-
expect(cop.offences.size).to eq(1)
|
137
|
-
end
|
138
|
-
end
|