From 4cb532851383eec8e2adfeaf2fe664bd08b794b1 Mon Sep 17 00:00:00 2001 From: "V. Elenhaupt" <3624712+veelenga@users.noreply.github.com> Date: Sat, 16 Jun 2018 14:50:59 +0300 Subject: [PATCH] Add rule namespaces: style, lint, layout (#63) --- README.md | 8 ++++---- spec/ameba/formatter/disabled_formatter_spec.cr | 6 +++--- spec/ameba/formatter/flycheck_formatter_spec.cr | 4 ++-- spec/ameba/formatter/json_formatter_spec.cr | 2 +- spec/ameba/formatter/todo_formatter_spec.cr | 2 +- spec/ameba/rule/base_spec.cr | 2 +- spec/ameba/rule/{ => layout}/line_length_spec.cr | 4 ++-- .../rule/{ => layout}/trailing_blank_lines_spec.cr | 4 ++-- .../rule/{ => layout}/trailing_whitespace_spec.cr | 4 ++-- .../rule/{ => lint}/comparison_to_boolean_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/debugger_statement_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/empty_ensure_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/empty_expression_spec.cr | 8 ++++---- spec/ameba/rule/{ => lint}/hash_duplicated_key_spec.cr | 4 ++-- .../ameba/rule/{ => lint}/literal_in_condition_spec.cr | 4 ++-- .../rule/{ => lint}/literal_in_interpolation_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/percent_arrays_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/rand_zero_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/shadowed_argument_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/shadowed_exception_spec.cr | 6 +++--- .../rule/{ => lint}/shadowing_local_outer_var_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/syntax_spec.cr | 4 ++-- .../rule/{ => lint}/unneded_disable_directive_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/unused_argument_spec.cr | 4 ++-- spec/ameba/rule/{ => lint}/useless_assign_spec.cr | 4 ++-- .../rule/{ => lint}/useless_condition_in_when_spec.cr | 4 ++-- spec/ameba/rule/{ => style}/constant_names_spec.cr | 8 ++++---- spec/ameba/rule/{ => style}/large_numbers_spec.cr | 10 +++++----- spec/ameba/rule/{ => style}/method_names_spec.cr | 8 ++++---- .../{ => style}/negated_conditions_in_unless_spec.cr | 4 ++-- spec/ameba/rule/{ => style}/predicate_name_spec.cr | 4 ++-- spec/ameba/rule/{ => style}/redundant_begin_spec.cr | 4 ++-- spec/ameba/rule/{ => style}/type_names_spec.cr | 8 ++++---- spec/ameba/rule/{ => style}/unless_else_spec.cr | 4 ++-- spec/ameba/rule/{ => style}/variable_names_spec.cr | 8 ++++---- spec/ameba/rule/{ => style}/while_true_spec.cr | 4 ++-- spec/ameba/runner_spec.cr | 10 +++++----- src/ameba.cr | 2 +- src/ameba/formatter/todo_formatter.cr | 2 +- src/ameba/rule/base.cr | 6 +++--- src/ameba/rule/{ => layout}/line_length.cr | 2 +- src/ameba/rule/{ => layout}/trailing_blank_lines.cr | 2 +- src/ameba/rule/{ => layout}/trailing_whitespace.cr | 2 +- src/ameba/rule/{ => lint}/comparison_to_boolean.cr | 2 +- src/ameba/rule/{ => lint}/debugger_statement.cr | 2 +- src/ameba/rule/{ => lint}/empty_ensure.cr | 2 +- src/ameba/rule/{ => lint}/empty_expression.cr | 2 +- src/ameba/rule/{ => lint}/hash_duplicated_key.cr | 2 +- src/ameba/rule/{ => lint}/literal_in_condition.cr | 2 +- src/ameba/rule/{ => lint}/literal_in_interpolation.cr | 2 +- .../rule/{percent_arrays.cr => lint/percent_array.cr} | 2 +- src/ameba/rule/{ => lint}/rand_zero.cr | 2 +- src/ameba/rule/{ => lint}/shadowed_argument.cr | 2 +- src/ameba/rule/{ => lint}/shadowed_exception.cr | 2 +- src/ameba/rule/{ => lint}/shadowing_local_outer_var.cr | 2 +- src/ameba/rule/{ => lint}/syntax.cr | 2 +- .../rule/{ => lint}/unneeded_disable_directive.cr | 2 +- src/ameba/rule/{ => lint}/unused_argument.cr | 2 +- src/ameba/rule/{ => lint}/useless_assign.cr | 2 +- src/ameba/rule/{ => lint}/useless_condition_in_when.cr | 2 +- src/ameba/rule/{ => style}/constant_names.cr | 2 +- src/ameba/rule/{ => style}/large_numbers.cr | 2 +- src/ameba/rule/{ => style}/method_names.cr | 2 +- .../rule/{ => style}/negated_conditions_in_unless.cr | 2 +- src/ameba/rule/{ => style}/predicate_name.cr | 2 +- src/ameba/rule/{ => style}/redundant_begin.cr | 2 +- src/ameba/rule/{ => style}/type_names.cr | 2 +- src/ameba/rule/{ => style}/unless_else.cr | 2 +- src/ameba/rule/{ => style}/variable_names.cr | 2 +- src/ameba/rule/{ => style}/while_true.cr | 2 +- src/ameba/runner.cr | 4 ++-- 71 files changed, 128 insertions(+), 128 deletions(-) rename spec/ameba/rule/{ => layout}/line_length_spec.cr (95%) rename spec/ameba/rule/{ => layout}/trailing_blank_lines_spec.cr (94%) rename spec/ameba/rule/{ => layout}/trailing_whitespace_spec.cr (92%) rename spec/ameba/rule/{ => lint}/comparison_to_boolean_spec.cr (97%) rename spec/ameba/rule/{ => lint}/debugger_statement_spec.cr (94%) rename spec/ameba/rule/{ => lint}/empty_ensure_spec.cr (96%) rename spec/ameba/rule/{ => lint}/empty_expression_spec.cr (92%) rename spec/ameba/rule/{ => lint}/hash_duplicated_key_spec.cr (96%) rename spec/ameba/rule/{ => lint}/literal_in_condition_spec.cr (96%) rename spec/ameba/rule/{ => lint}/literal_in_interpolation_spec.cr (94%) rename spec/ameba/rule/{ => lint}/percent_arrays_spec.cr (97%) rename spec/ameba/rule/{ => lint}/rand_zero_spec.cr (93%) rename spec/ameba/rule/{ => lint}/shadowed_argument_spec.cr (98%) rename spec/ameba/rule/{ => lint}/shadowed_exception_spec.cr (96%) rename spec/ameba/rule/{ => lint}/shadowing_local_outer_var_spec.cr (98%) rename spec/ameba/rule/{ => lint}/syntax_spec.cr (93%) rename spec/ameba/rule/{ => lint}/unneded_disable_directive_spec.cr (98%) rename spec/ameba/rule/{ => lint}/unused_argument_spec.cr (99%) rename spec/ameba/rule/{ => lint}/useless_assign_spec.cr (99%) rename spec/ameba/rule/{ => lint}/useless_condition_in_when_spec.cr (94%) rename spec/ameba/rule/{ => style}/constant_names_spec.cr (86%) rename spec/ameba/rule/{ => style}/large_numbers_spec.cr (93%) rename spec/ameba/rule/{ => style}/method_names_spec.cr (87%) rename spec/ameba/rule/{ => style}/negated_conditions_in_unless_spec.cr (96%) rename spec/ameba/rule/{ => style}/predicate_name_spec.cr (95%) rename spec/ameba/rule/{ => style}/redundant_begin_spec.cr (98%) rename spec/ameba/rule/{ => style}/type_names_spec.cr (89%) rename spec/ameba/rule/{ => style}/unless_else_spec.cr (93%) rename spec/ameba/rule/{ => style}/variable_names_spec.cr (88%) rename spec/ameba/rule/{ => style}/while_true_spec.cr (93%) rename src/ameba/rule/{ => layout}/line_length.cr (95%) rename src/ameba/rule/{ => layout}/trailing_blank_lines.cr (95%) rename src/ameba/rule/{ => layout}/trailing_whitespace.cr (94%) rename src/ameba/rule/{ => lint}/comparison_to_boolean.cr (97%) rename src/ameba/rule/{ => lint}/debugger_statement.cr (96%) rename src/ameba/rule/{ => lint}/empty_ensure.cr (97%) rename src/ameba/rule/{ => lint}/empty_expression.cr (97%) rename src/ameba/rule/{ => lint}/hash_duplicated_key.cr (97%) rename src/ameba/rule/{ => lint}/literal_in_condition.cr (98%) rename src/ameba/rule/{ => lint}/literal_in_interpolation.cr (96%) rename src/ameba/rule/{percent_arrays.cr => lint/percent_array.cr} (98%) rename src/ameba/rule/{ => lint}/rand_zero.cr (97%) rename src/ameba/rule/{ => lint}/shadowed_argument.cr (97%) rename src/ameba/rule/{ => lint}/shadowed_exception.cr (98%) rename src/ameba/rule/{ => lint}/shadowing_local_outer_var.cr (98%) rename src/ameba/rule/{ => lint}/syntax.cr (95%) rename src/ameba/rule/{ => lint}/unneeded_disable_directive.cr (98%) rename src/ameba/rule/{ => lint}/unused_argument.cr (98%) rename src/ameba/rule/{ => lint}/useless_assign.cr (97%) rename src/ameba/rule/{ => lint}/useless_condition_in_when.cr (98%) rename src/ameba/rule/{ => style}/constant_names.cr (97%) rename src/ameba/rule/{ => style}/large_numbers.cr (99%) rename src/ameba/rule/{ => style}/method_names.cr (97%) rename src/ameba/rule/{ => style}/negated_conditions_in_unless.cr (97%) rename src/ameba/rule/{ => style}/predicate_name.cr (97%) rename src/ameba/rule/{ => style}/redundant_begin.cr (99%) rename src/ameba/rule/{ => style}/type_names.cr (98%) rename src/ameba/rule/{ => style}/unless_else.cr (97%) rename src/ameba/rule/{ => style}/variable_names.cr (98%) rename src/ameba/rule/{ => style}/while_true.cr (97%) diff --git a/README.md b/README.md index 180f6dc2..d4cd0fa5 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,10 @@ Inspecting 107 files. ...............F.....................F.................................................................... src/ameba/rule/unneeded_disable_directive.cr:29:7 -UselessAssign: Useless assignment to variable `s` +Lint/UselessAssign: Useless assignment to variable `s` src/ameba/formatter/flycheck_formatter.cr:5:21 -UnusedArgument: Unused argument `location` +Lint/UnusedArgument: Unused argument `location` Finished in 248.9 milliseconds @@ -102,10 +102,10 @@ Generate new file by running `ameba --gen-config`. One or more rules can be disabled using inline directives: ```crystal -# ameba:disable LargeNumbers +# ameba:disable Style/LargeNumbers time = Time.epoch(1483859302) -time = Time.epoch(1483859302) # ameba:disable LargeNumbers +time = Time.epoch(1483859302) # ameba:disable Style/LargeNumbers ``` ## Editor integration diff --git a/spec/ameba/formatter/disabled_formatter_spec.cr b/spec/ameba/formatter/disabled_formatter_spec.cr index c44f1a50..5c338ae0 100644 --- a/spec/ameba/formatter/disabled_formatter_spec.cr +++ b/spec/ameba/formatter/disabled_formatter_spec.cr @@ -21,8 +21,8 @@ module Ameba::Formatter end subject.finished [s] log = output.to_s - log.should contain "#{path}:1 #{ErrorRule.name}" - log.should contain "#{path}:2 #{NamedRule.name}" + log.should contain "#{path}:1 #{ErrorRule.rule_name}" + log.should contain "#{path}:2 #{NamedRule.rule_name}" ensure output.clear Colorize.enabled = true @@ -35,7 +35,7 @@ module Ameba::Formatter message: "NamedRule", status: :disabled) end subject.finished [s] - output.to_s.should_not contain ErrorRule.name + output.to_s.should_not contain ErrorRule.rule_name end end end diff --git a/spec/ameba/formatter/flycheck_formatter_spec.cr b/spec/ameba/formatter/flycheck_formatter_spec.cr index 7d7ec44c..daf38b7a 100644 --- a/spec/ameba/formatter/flycheck_formatter_spec.cr +++ b/spec/ameba/formatter/flycheck_formatter_spec.cr @@ -22,7 +22,7 @@ module Ameba::Formatter subject = flycheck subject.source_finished s subject.output.to_s.should eq( - "source.cr:1:2: E: [#{DummyRule.name}] message\n" + "source.cr:1:2: E: [#{DummyRule.rule_name}] message\n" ) end @@ -32,7 +32,7 @@ module Ameba::Formatter subject = flycheck subject.source_finished s subject.output.to_s.should eq( - "source.cr:1:2: E: [#{DummyRule.name}] multi line\n" + "source.cr:1:2: E: [#{DummyRule.rule_name}] multi line\n" ) end diff --git a/spec/ameba/formatter/json_formatter_spec.cr b/spec/ameba/formatter/json_formatter_spec.cr index 6937a314..549cc339 100644 --- a/spec/ameba/formatter/json_formatter_spec.cr +++ b/spec/ameba/formatter/json_formatter_spec.cr @@ -34,7 +34,7 @@ module Ameba s.add_issue DummyRule.new, {1, 2}, "message1" result = get_result [s] - result["sources"][0]["issues"][0]["rule_name"].should eq DummyRule.name + result["sources"][0]["issues"][0]["rule_name"].should eq DummyRule.rule_name end it "shows a message" do diff --git a/spec/ameba/formatter/todo_formatter_spec.cr b/spec/ameba/formatter/todo_formatter_spec.cr index 0ed10575..6cbe034a 100644 --- a/spec/ameba/formatter/todo_formatter_spec.cr +++ b/spec/ameba/formatter/todo_formatter_spec.cr @@ -57,7 +57,7 @@ module Ameba formatter = Formatter::TODOFormatter.new IO::Memory.new, file s = Source.new "def invalid_syntax" - s.add_issue Rule::Syntax.new, {1, 2}, "message" + s.add_issue Rule::Lint::Syntax.new, {1, 2}, "message" formatter.finished [s] content = file.to_s diff --git a/spec/ameba/rule/base_spec.cr b/spec/ameba/rule/base_spec.cr index 81e0c6bd..d038f6fd 100644 --- a/spec/ameba/rule/base_spec.cr +++ b/spec/ameba/rule/base_spec.cr @@ -11,7 +11,7 @@ module Ameba describe "#name" do it "returns name of the rule" do - DummyRule.new.name.should eq "Ameba::DummyRule" + DummyRule.new.name.should eq "Ameba/DummyRule" end end end diff --git a/spec/ameba/rule/line_length_spec.cr b/spec/ameba/rule/layout/line_length_spec.cr similarity index 95% rename from spec/ameba/rule/line_length_spec.cr rename to spec/ameba/rule/layout/line_length_spec.cr index 2b75efef..4c93a55b 100644 --- a/spec/ameba/rule/line_length_spec.cr +++ b/spec/ameba/rule/layout/line_length_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Layout subject = LineLength.new long_line = "*" * 81 diff --git a/spec/ameba/rule/trailing_blank_lines_spec.cr b/spec/ameba/rule/layout/trailing_blank_lines_spec.cr similarity index 94% rename from spec/ameba/rule/trailing_blank_lines_spec.cr rename to spec/ameba/rule/layout/trailing_blank_lines_spec.cr index ca3cf13c..c4cc793b 100644 --- a/spec/ameba/rule/trailing_blank_lines_spec.cr +++ b/spec/ameba/rule/layout/trailing_blank_lines_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Layout subject = TrailingBlankLines.new describe TrailingBlankLines do diff --git a/spec/ameba/rule/trailing_whitespace_spec.cr b/spec/ameba/rule/layout/trailing_whitespace_spec.cr similarity index 92% rename from spec/ameba/rule/trailing_whitespace_spec.cr rename to spec/ameba/rule/layout/trailing_whitespace_spec.cr index 260a65d7..91691729 100644 --- a/spec/ameba/rule/trailing_whitespace_spec.cr +++ b/spec/ameba/rule/layout/trailing_whitespace_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Layout subject = TrailingWhitespace.new describe TrailingWhitespace do diff --git a/spec/ameba/rule/comparison_to_boolean_spec.cr b/spec/ameba/rule/lint/comparison_to_boolean_spec.cr similarity index 97% rename from spec/ameba/rule/comparison_to_boolean_spec.cr rename to spec/ameba/rule/lint/comparison_to_boolean_spec.cr index 9c14c360..fbccebb3 100644 --- a/spec/ameba/rule/comparison_to_boolean_spec.cr +++ b/spec/ameba/rule/lint/comparison_to_boolean_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint subject = ComparisonToBoolean.new describe ComparisonToBoolean do diff --git a/spec/ameba/rule/debugger_statement_spec.cr b/spec/ameba/rule/lint/debugger_statement_spec.cr similarity index 94% rename from spec/ameba/rule/debugger_statement_spec.cr rename to spec/ameba/rule/lint/debugger_statement_spec.cr index 358a3819..233ff5eb 100644 --- a/spec/ameba/rule/debugger_statement_spec.cr +++ b/spec/ameba/rule/lint/debugger_statement_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint subject = DebuggerStatement.new describe DebuggerStatement do diff --git a/spec/ameba/rule/empty_ensure_spec.cr b/spec/ameba/rule/lint/empty_ensure_spec.cr similarity index 96% rename from spec/ameba/rule/empty_ensure_spec.cr rename to spec/ameba/rule/lint/empty_ensure_spec.cr index a63eedca..94f2857f 100644 --- a/spec/ameba/rule/empty_ensure_spec.cr +++ b/spec/ameba/rule/lint/empty_ensure_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe EmptyEnsure do subject = EmptyEnsure.new diff --git a/spec/ameba/rule/empty_expression_spec.cr b/spec/ameba/rule/lint/empty_expression_spec.cr similarity index 92% rename from spec/ameba/rule/empty_expression_spec.cr rename to spec/ameba/rule/lint/empty_expression_spec.cr index a1aa41d8..26468e60 100644 --- a/spec/ameba/rule/empty_expression_spec.cr +++ b/spec/ameba/rule/lint/empty_expression_spec.cr @@ -1,17 +1,17 @@ -require "../../spec_helper" +require "../../../spec_helper" module Ameba - subject = Rule::EmptyExpression.new + subject = Rule::Lint::EmptyExpression.new def it_detects_empty_expression(code) it "detects empty expression" do s = Source.new code - rule = Rule::EmptyExpression.new + rule = Rule::Lint::EmptyExpression.new rule.catch(s).should_not be_valid end end - describe Rule::EmptyExpression do + describe Rule::Lint::EmptyExpression do it "passes if there is no empty expression" do s = Source.new %( def method() diff --git a/spec/ameba/rule/hash_duplicated_key_spec.cr b/spec/ameba/rule/lint/hash_duplicated_key_spec.cr similarity index 96% rename from spec/ameba/rule/hash_duplicated_key_spec.cr rename to spec/ameba/rule/lint/hash_duplicated_key_spec.cr index 5e078513..fd2c2d14 100644 --- a/spec/ameba/rule/hash_duplicated_key_spec.cr +++ b/spec/ameba/rule/lint/hash_duplicated_key_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe HashDuplicatedKey do subject = HashDuplicatedKey.new diff --git a/spec/ameba/rule/literal_in_condition_spec.cr b/spec/ameba/rule/lint/literal_in_condition_spec.cr similarity index 96% rename from spec/ameba/rule/literal_in_condition_spec.cr rename to spec/ameba/rule/lint/literal_in_condition_spec.cr index 839aa9af..d77cbcd7 100644 --- a/spec/ameba/rule/literal_in_condition_spec.cr +++ b/spec/ameba/rule/lint/literal_in_condition_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint subject = LiteralInCondition.new describe LiteralInCondition do diff --git a/spec/ameba/rule/literal_in_interpolation_spec.cr b/spec/ameba/rule/lint/literal_in_interpolation_spec.cr similarity index 94% rename from spec/ameba/rule/literal_in_interpolation_spec.cr rename to spec/ameba/rule/lint/literal_in_interpolation_spec.cr index 11d388e8..c4449968 100644 --- a/spec/ameba/rule/literal_in_interpolation_spec.cr +++ b/spec/ameba/rule/lint/literal_in_interpolation_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint subject = LiteralInInterpolation.new describe LiteralInInterpolation do diff --git a/spec/ameba/rule/percent_arrays_spec.cr b/spec/ameba/rule/lint/percent_arrays_spec.cr similarity index 97% rename from spec/ameba/rule/percent_arrays_spec.cr rename to spec/ameba/rule/lint/percent_arrays_spec.cr index d9247115..9286f693 100644 --- a/spec/ameba/rule/percent_arrays_spec.cr +++ b/spec/ameba/rule/lint/percent_arrays_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe PercentArrays do subject = PercentArrays.new diff --git a/spec/ameba/rule/rand_zero_spec.cr b/spec/ameba/rule/lint/rand_zero_spec.cr similarity index 93% rename from spec/ameba/rule/rand_zero_spec.cr rename to spec/ameba/rule/lint/rand_zero_spec.cr index c3ee4c40..3b4a9d30 100644 --- a/spec/ameba/rule/rand_zero_spec.cr +++ b/spec/ameba/rule/lint/rand_zero_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe RandZero do subject = RandZero.new diff --git a/spec/ameba/rule/shadowed_argument_spec.cr b/spec/ameba/rule/lint/shadowed_argument_spec.cr similarity index 98% rename from spec/ameba/rule/shadowed_argument_spec.cr rename to spec/ameba/rule/lint/shadowed_argument_spec.cr index 121a7eab..32fa1937 100644 --- a/spec/ameba/rule/shadowed_argument_spec.cr +++ b/spec/ameba/rule/lint/shadowed_argument_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe ShadowedArgument do subject = ShadowedArgument.new diff --git a/spec/ameba/rule/shadowed_exception_spec.cr b/spec/ameba/rule/lint/shadowed_exception_spec.cr similarity index 96% rename from spec/ameba/rule/shadowed_exception_spec.cr rename to spec/ameba/rule/lint/shadowed_exception_spec.cr index 42b23404..1a72aa65 100644 --- a/spec/ameba/rule/shadowed_exception_spec.cr +++ b/spec/ameba/rule/lint/shadowed_exception_spec.cr @@ -1,12 +1,12 @@ -require "../../spec_helper" +require "../../../spec_helper" private def check_shadowed(source, exceptions) s = Ameba::Source.new source - Ameba::Rule::ShadowedException.new.catch(s).should_not be_valid + Ameba::Rule::Lint::ShadowedException.new.catch(s).should_not be_valid s.issues.first.message.should contain exceptions.join(", ") end -module Ameba::Rule +module Ameba::Rule::Lint describe ShadowedException do subject = ShadowedException.new diff --git a/spec/ameba/rule/shadowing_local_outer_var_spec.cr b/spec/ameba/rule/lint/shadowing_local_outer_var_spec.cr similarity index 98% rename from spec/ameba/rule/shadowing_local_outer_var_spec.cr rename to spec/ameba/rule/lint/shadowing_local_outer_var_spec.cr index 5eb83396..5a19061d 100644 --- a/spec/ameba/rule/shadowing_local_outer_var_spec.cr +++ b/spec/ameba/rule/lint/shadowing_local_outer_var_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe ShadowingOuterLocalVar do subject = ShadowingOuterLocalVar.new diff --git a/spec/ameba/rule/syntax_spec.cr b/spec/ameba/rule/lint/syntax_spec.cr similarity index 93% rename from spec/ameba/rule/syntax_spec.cr rename to spec/ameba/rule/lint/syntax_spec.cr index f234e6f8..52c7cabe 100644 --- a/spec/ameba/rule/syntax_spec.cr +++ b/spec/ameba/rule/lint/syntax_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe Syntax do subject = Syntax.new diff --git a/spec/ameba/rule/unneded_disable_directive_spec.cr b/spec/ameba/rule/lint/unneded_disable_directive_spec.cr similarity index 98% rename from spec/ameba/rule/unneded_disable_directive_spec.cr rename to spec/ameba/rule/lint/unneded_disable_directive_spec.cr index 2efbbcad..3e06c22a 100644 --- a/spec/ameba/rule/unneded_disable_directive_spec.cr +++ b/spec/ameba/rule/lint/unneded_disable_directive_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe UnneededDisableDirective do subject = UnneededDisableDirective.new diff --git a/spec/ameba/rule/unused_argument_spec.cr b/spec/ameba/rule/lint/unused_argument_spec.cr similarity index 99% rename from spec/ameba/rule/unused_argument_spec.cr rename to spec/ameba/rule/lint/unused_argument_spec.cr index 944e6ab7..da79fde3 100644 --- a/spec/ameba/rule/unused_argument_spec.cr +++ b/spec/ameba/rule/lint/unused_argument_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint subject = UnusedArgument.new subject.ignore_defs = false diff --git a/spec/ameba/rule/useless_assign_spec.cr b/spec/ameba/rule/lint/useless_assign_spec.cr similarity index 99% rename from spec/ameba/rule/useless_assign_spec.cr rename to spec/ameba/rule/lint/useless_assign_spec.cr index 5c9d1f79..5c98993f 100644 --- a/spec/ameba/rule/useless_assign_spec.cr +++ b/spec/ameba/rule/lint/useless_assign_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint describe UselessAssign do subject = UselessAssign.new diff --git a/spec/ameba/rule/useless_condition_in_when_spec.cr b/spec/ameba/rule/lint/useless_condition_in_when_spec.cr similarity index 94% rename from spec/ameba/rule/useless_condition_in_when_spec.cr rename to spec/ameba/rule/lint/useless_condition_in_when_spec.cr index 4c800934..c5353903 100644 --- a/spec/ameba/rule/useless_condition_in_when_spec.cr +++ b/spec/ameba/rule/lint/useless_condition_in_when_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Lint subject = UselessConditionInWhen.new describe UselessConditionInWhen do diff --git a/spec/ameba/rule/constant_names_spec.cr b/spec/ameba/rule/style/constant_names_spec.cr similarity index 86% rename from spec/ameba/rule/constant_names_spec.cr rename to spec/ameba/rule/style/constant_names_spec.cr index 3a0529f6..cc8844d3 100644 --- a/spec/ameba/rule/constant_names_spec.cr +++ b/spec/ameba/rule/style/constant_names_spec.cr @@ -1,17 +1,17 @@ -require "../../spec_helper" +require "../../../spec_helper" module Ameba - subject = Rule::ConstantNames.new + subject = Rule::Style::ConstantNames.new private def it_reports_constant(code, expected) it "reports constant name #{expected}" do s = Source.new code - Rule::ConstantNames.new.catch(s).should_not be_valid + Rule::Style::ConstantNames.new.catch(s).should_not be_valid s.issues.first.message.should contain expected end end - describe Rule::ConstantNames do + describe Rule::Style::ConstantNames do it "passes if type names are screaming-cased" do s = Source.new %( LUCKY_NUMBERS = [3, 7, 11] diff --git a/spec/ameba/rule/large_numbers_spec.cr b/spec/ameba/rule/style/large_numbers_spec.cr similarity index 93% rename from spec/ameba/rule/large_numbers_spec.cr rename to spec/ameba/rule/style/large_numbers_spec.cr index 35d979b0..5f1a880b 100644 --- a/spec/ameba/rule/large_numbers_spec.cr +++ b/spec/ameba/rule/style/large_numbers_spec.cr @@ -1,17 +1,17 @@ -require "../../spec_helper" +require "../../../spec_helper" module Ameba - subject = Rule::LargeNumbers.new + subject = Rule::Style::LargeNumbers.new private def it_transforms(number, expected) it "transforms large number #{number}" do s = Source.new number - Rule::LargeNumbers.new.catch(s).should_not be_valid + Rule::Style::LargeNumbers.new.catch(s).should_not be_valid s.issues.first.message.should contain expected end end - describe Rule::LargeNumbers do + describe Rule::Style::LargeNumbers do it "passes if large number does not require underscore" do s = Source.new %q( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 @@ -124,7 +124,7 @@ module Ameba context "properties" do it "allows to configure integer min digits" do s = Source.new %q(1200000) - rule = Rule::LargeNumbers.new + rule = Rule::Style::LargeNumbers.new rule.int_min_digits = 10 rule.catch(s).should be_valid end diff --git a/spec/ameba/rule/method_names_spec.cr b/spec/ameba/rule/style/method_names_spec.cr similarity index 87% rename from spec/ameba/rule/method_names_spec.cr rename to spec/ameba/rule/style/method_names_spec.cr index 447eeb75..63244516 100644 --- a/spec/ameba/rule/method_names_spec.cr +++ b/spec/ameba/rule/style/method_names_spec.cr @@ -1,17 +1,17 @@ -require "../../spec_helper" +require "../../../spec_helper" module Ameba - subject = Rule::MethodNames.new + subject = Rule::Style::MethodNames.new private def it_reports_method_name(code, expected) it "reports method name #{expected}" do s = Source.new code - Rule::MethodNames.new.catch(s).should_not be_valid + Rule::Style::MethodNames.new.catch(s).should_not be_valid s.issues.first.message.should contain expected end end - describe Rule::MethodNames do + describe Rule::Style::MethodNames do it "passes if method names are underscore-cased" do s = Source.new %( class Person diff --git a/spec/ameba/rule/negated_conditions_in_unless_spec.cr b/spec/ameba/rule/style/negated_conditions_in_unless_spec.cr similarity index 96% rename from spec/ameba/rule/negated_conditions_in_unless_spec.cr rename to spec/ameba/rule/style/negated_conditions_in_unless_spec.cr index fb8841e4..84c47335 100644 --- a/spec/ameba/rule/negated_conditions_in_unless_spec.cr +++ b/spec/ameba/rule/style/negated_conditions_in_unless_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Style subject = NegatedConditionsInUnless.new describe NegatedConditionsInUnless do diff --git a/spec/ameba/rule/predicate_name_spec.cr b/spec/ameba/rule/style/predicate_name_spec.cr similarity index 95% rename from spec/ameba/rule/predicate_name_spec.cr rename to spec/ameba/rule/style/predicate_name_spec.cr index 150729d0..58172bb5 100644 --- a/spec/ameba/rule/predicate_name_spec.cr +++ b/spec/ameba/rule/style/predicate_name_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Style subject = PredicateName.new describe PredicateName do diff --git a/spec/ameba/rule/redundant_begin_spec.cr b/spec/ameba/rule/style/redundant_begin_spec.cr similarity index 98% rename from spec/ameba/rule/redundant_begin_spec.cr rename to spec/ameba/rule/style/redundant_begin_spec.cr index 4f383777..319e8675 100644 --- a/spec/ameba/rule/redundant_begin_spec.cr +++ b/spec/ameba/rule/style/redundant_begin_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Style describe RedundantBegin do subject = RedundantBegin.new diff --git a/spec/ameba/rule/type_names_spec.cr b/spec/ameba/rule/style/type_names_spec.cr similarity index 89% rename from spec/ameba/rule/type_names_spec.cr rename to spec/ameba/rule/style/type_names_spec.cr index e7b55510..11c073de 100644 --- a/spec/ameba/rule/type_names_spec.cr +++ b/spec/ameba/rule/style/type_names_spec.cr @@ -1,17 +1,17 @@ -require "../../spec_helper" +require "../../../spec_helper" module Ameba - subject = Rule::TypeNames.new + subject = Rule::Style::TypeNames.new private def it_reports_name(code, expected) it "reports type name #{expected}" do s = Source.new code - Rule::TypeNames.new.catch(s).should_not be_valid + Rule::Style::TypeNames.new.catch(s).should_not be_valid s.issues.first.message.should contain expected end end - describe Rule::TypeNames do + describe Rule::Style::TypeNames do it "passes if type names are camelcased" do s = Source.new %( class ParseError < Exception diff --git a/spec/ameba/rule/unless_else_spec.cr b/spec/ameba/rule/style/unless_else_spec.cr similarity index 93% rename from spec/ameba/rule/unless_else_spec.cr rename to spec/ameba/rule/style/unless_else_spec.cr index 98466a69..e21a7820 100644 --- a/spec/ameba/rule/unless_else_spec.cr +++ b/spec/ameba/rule/style/unless_else_spec.cr @@ -1,6 +1,6 @@ -require "../../spec_helper" +require "../../../spec_helper" -module Ameba::Rule +module Ameba::Rule::Style subject = UnlessElse.new describe UnlessElse do diff --git a/spec/ameba/rule/variable_names_spec.cr b/spec/ameba/rule/style/variable_names_spec.cr similarity index 88% rename from spec/ameba/rule/variable_names_spec.cr rename to spec/ameba/rule/style/variable_names_spec.cr index 58b3fe62..d2b56ba6 100644 --- a/spec/ameba/rule/variable_names_spec.cr +++ b/spec/ameba/rule/style/variable_names_spec.cr @@ -1,17 +1,17 @@ -require "../../spec_helper" +require "../../../spec_helper" module Ameba - subject = Rule::VariableNames.new + subject = Rule::Style::VariableNames.new private def it_reports_var_name(code, expected) it "reports method name #{expected}" do s = Source.new code - Rule::VariableNames.new.catch(s).should_not be_valid + Rule::Style::VariableNames.new.catch(s).should_not be_valid s.issues.first.message.should contain expected end end - describe Rule::VariableNames do + describe Rule::Style::VariableNames do it "passes if var names are underscore-cased" do s = Source.new %( class Greeting diff --git a/spec/ameba/rule/while_true_spec.cr b/spec/ameba/rule/style/while_true_spec.cr similarity index 93% rename from spec/ameba/rule/while_true_spec.cr rename to spec/ameba/rule/style/while_true_spec.cr index f3a32aaa..cf0c4e1e 100644 --- a/spec/ameba/rule/while_true_spec.cr +++ b/spec/ameba/rule/style/while_true_spec.cr @@ -1,4 +1,4 @@ -require "../../spec_helper" +require "../../../spec_helper" valid_source = <<-EOF a = 1 @@ -16,7 +16,7 @@ while true end EOF -module Ameba::Rule +module Ameba::Rule::Style subject = WhileTrue.new describe WhileTrue do diff --git a/spec/ameba/runner_spec.cr b/spec/ameba/runner_spec.cr index 1f4bf0fa..6f3b2460 100644 --- a/spec/ameba/runner_spec.cr +++ b/spec/ameba/runner_spec.cr @@ -54,16 +54,16 @@ module Ameba context "invalid syntax" do it "reports a syntax error" do - rules = [Rule::Syntax.new] of Rule::Base + rules = [Rule::Lint::Syntax.new] of Rule::Base source = Source.new "def bad_syntax" Runner.new(rules, [source], formatter).run source.should_not be_valid - source.issues.first.rule.name.should eq Rule::Syntax.rule_name + source.issues.first.rule.name.should eq Rule::Lint::Syntax.rule_name end it "does not run other rules" do - rules = [Rule::Syntax.new, Rule::ConstantNames.new] of Rule::Base + rules = [Rule::Lint::Syntax.new, Rule::Style::ConstantNames.new] of Rule::Base source = Source.new %q( MyBadConstant = 1 @@ -78,14 +78,14 @@ module Ameba context "unneeded disables" do it "reports an issue if such disable exists" do - rules = [Rule::UnneededDisableDirective.new] of Rule::Base + rules = [Rule::Lint::UnneededDisableDirective.new] of Rule::Base source = Source.new %( a = 1 # ameba:disable LineLength ) Runner.new(rules, [source], formatter).run source.should_not be_valid - source.issues.first.rule.name.should eq Rule::UnneededDisableDirective.rule_name + source.issues.first.rule.name.should eq Rule::Lint::UnneededDisableDirective.rule_name end end end diff --git a/src/ameba.cr b/src/ameba.cr index 437d2770..38b674d3 100644 --- a/src/ameba.cr +++ b/src/ameba.cr @@ -1,6 +1,6 @@ require "./ameba/*" require "./ameba/ast/**" -require "./ameba/rule/*" +require "./ameba/rule/**" require "./ameba/formatter/*" require "./ameba/support/*" diff --git a/src/ameba/formatter/todo_formatter.cr b/src/ameba/formatter/todo_formatter.cr index d0bb22dc..064d93ee 100644 --- a/src/ameba/formatter/todo_formatter.cr +++ b/src/ameba/formatter/todo_formatter.cr @@ -31,7 +31,7 @@ module Ameba::Formatter private def rule_issues_map(issues) Hash(Rule::Base, Array(Issue)).new.tap do |h| issues.each do |issue| - next if issue.disabled? || issue.rule.is_a? Rule::Syntax + next if issue.disabled? || issue.rule.is_a? Rule::Lint::Syntax h[issue.rule] ||= Array(Issue).new h[issue.rule] << issue end diff --git a/src/ameba/rule/base.cr b/src/ameba/rule/base.cr index 11055796..3b79cfd0 100644 --- a/src/ameba/rule/base.cr +++ b/src/ameba/rule/base.cr @@ -2,8 +2,8 @@ module Ameba::Rule # List of names of the special rules, which # behave differently than usual rules. SPECIAL = [ - Syntax.rule_name, - UnneededDisableDirective.rule_name, + Lint::Syntax.rule_name, + Lint::UnneededDisableDirective.rule_name, ] # Represents a base of all rules. In other words, all rules @@ -96,7 +96,7 @@ module Ameba::Rule end protected def self.rule_name - name.gsub("Ameba::Rule::", "") + name.gsub("Ameba::Rule::", "").gsub("::", "/") end protected def self.subclasses diff --git a/src/ameba/rule/line_length.cr b/src/ameba/rule/layout/line_length.cr similarity index 95% rename from src/ameba/rule/line_length.cr rename to src/ameba/rule/layout/line_length.cr index 4e47e13f..5d34b734 100644 --- a/src/ameba/rule/line_length.cr +++ b/src/ameba/rule/layout/line_length.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Layout # A rule that disallows lines longer than `max_length` number of symbols. # # YAML configuration example: diff --git a/src/ameba/rule/trailing_blank_lines.cr b/src/ameba/rule/layout/trailing_blank_lines.cr similarity index 95% rename from src/ameba/rule/trailing_blank_lines.cr rename to src/ameba/rule/layout/trailing_blank_lines.cr index 251401bc..fdf4932f 100644 --- a/src/ameba/rule/trailing_blank_lines.cr +++ b/src/ameba/rule/layout/trailing_blank_lines.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Layout # A rule that disallows trailing blank lines at the end of the source file. # # YAML configuration example: diff --git a/src/ameba/rule/trailing_whitespace.cr b/src/ameba/rule/layout/trailing_whitespace.cr similarity index 94% rename from src/ameba/rule/trailing_whitespace.cr rename to src/ameba/rule/layout/trailing_whitespace.cr index 9200110d..d387a5cf 100644 --- a/src/ameba/rule/trailing_whitespace.cr +++ b/src/ameba/rule/layout/trailing_whitespace.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Layout # A rule that disallows trailing whitespaces. # # YAML configuration example: diff --git a/src/ameba/rule/comparison_to_boolean.cr b/src/ameba/rule/lint/comparison_to_boolean.cr similarity index 97% rename from src/ameba/rule/comparison_to_boolean.cr rename to src/ameba/rule/lint/comparison_to_boolean.cr index 6be9c923..e3dc0445 100644 --- a/src/ameba/rule/comparison_to_boolean.cr +++ b/src/ameba/rule/lint/comparison_to_boolean.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows comparison to booleans. # # For example, these are considered invalid: diff --git a/src/ameba/rule/debugger_statement.cr b/src/ameba/rule/lint/debugger_statement.cr similarity index 96% rename from src/ameba/rule/debugger_statement.cr rename to src/ameba/rule/lint/debugger_statement.cr index ee18e862..a0cfad1c 100644 --- a/src/ameba/rule/debugger_statement.cr +++ b/src/ameba/rule/lint/debugger_statement.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows calls to debugger. # # This is because we don't want debugger breakpoints accidentally being diff --git a/src/ameba/rule/empty_ensure.cr b/src/ameba/rule/lint/empty_ensure.cr similarity index 97% rename from src/ameba/rule/empty_ensure.cr rename to src/ameba/rule/lint/empty_ensure.cr index 399fa545..7068f5f3 100644 --- a/src/ameba/rule/empty_ensure.cr +++ b/src/ameba/rule/lint/empty_ensure.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows empty ensure statement. # # For example, this is considered invalid: diff --git a/src/ameba/rule/empty_expression.cr b/src/ameba/rule/lint/empty_expression.cr similarity index 97% rename from src/ameba/rule/empty_expression.cr rename to src/ameba/rule/lint/empty_expression.cr index 2cd64415..4e2556b9 100644 --- a/src/ameba/rule/empty_expression.cr +++ b/src/ameba/rule/lint/empty_expression.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows empty expressions. # # This is considered invalid: diff --git a/src/ameba/rule/hash_duplicated_key.cr b/src/ameba/rule/lint/hash_duplicated_key.cr similarity index 97% rename from src/ameba/rule/hash_duplicated_key.cr rename to src/ameba/rule/lint/hash_duplicated_key.cr index 9966aa27..da423746 100644 --- a/src/ameba/rule/hash_duplicated_key.cr +++ b/src/ameba/rule/lint/hash_duplicated_key.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows duplicated keys in hash literals. # # This is considered invalid: diff --git a/src/ameba/rule/literal_in_condition.cr b/src/ameba/rule/lint/literal_in_condition.cr similarity index 98% rename from src/ameba/rule/literal_in_condition.cr rename to src/ameba/rule/lint/literal_in_condition.cr index 7d90d7b3..03b985c9 100644 --- a/src/ameba/rule/literal_in_condition.cr +++ b/src/ameba/rule/lint/literal_in_condition.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows useless conditional statements that contain a literal # in place of a variable or predicate function. # diff --git a/src/ameba/rule/literal_in_interpolation.cr b/src/ameba/rule/lint/literal_in_interpolation.cr similarity index 96% rename from src/ameba/rule/literal_in_interpolation.cr rename to src/ameba/rule/lint/literal_in_interpolation.cr index 93ea9c9b..bd0c22ac 100644 --- a/src/ameba/rule/literal_in_interpolation.cr +++ b/src/ameba/rule/lint/literal_in_interpolation.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows useless string interpolations # that contain a literal value instead of a variable or function. # diff --git a/src/ameba/rule/percent_arrays.cr b/src/ameba/rule/lint/percent_array.cr similarity index 98% rename from src/ameba/rule/percent_arrays.cr rename to src/ameba/rule/lint/percent_array.cr index b7d66b1d..fec6ec50 100644 --- a/src/ameba/rule/percent_arrays.cr +++ b/src/ameba/rule/lint/percent_array.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows some unwanted symbols in percent array literals. # # For example, this is usually written by mistake: diff --git a/src/ameba/rule/rand_zero.cr b/src/ameba/rule/lint/rand_zero.cr similarity index 97% rename from src/ameba/rule/rand_zero.cr rename to src/ameba/rule/lint/rand_zero.cr index 80b9e2cd..334a9a4f 100644 --- a/src/ameba/rule/rand_zero.cr +++ b/src/ameba/rule/lint/rand_zero.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows `rand(0)` and `rand(1)` calls. # Such calls always return `0`. # diff --git a/src/ameba/rule/shadowed_argument.cr b/src/ameba/rule/lint/shadowed_argument.cr similarity index 97% rename from src/ameba/rule/shadowed_argument.cr rename to src/ameba/rule/lint/shadowed_argument.cr index b1eb298b..62df0398 100644 --- a/src/ameba/rule/shadowed_argument.cr +++ b/src/ameba/rule/lint/shadowed_argument.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows shadowed arguments. # # For example, this is considered invalid: diff --git a/src/ameba/rule/shadowed_exception.cr b/src/ameba/rule/lint/shadowed_exception.cr similarity index 98% rename from src/ameba/rule/shadowed_exception.cr rename to src/ameba/rule/lint/shadowed_exception.cr index 21d18eb3..bf1db302 100644 --- a/src/ameba/rule/shadowed_exception.cr +++ b/src/ameba/rule/lint/shadowed_exception.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows a rescued exception that get shadowed by a # less specific exception being rescued before a more specific # exception is rescued. diff --git a/src/ameba/rule/shadowing_local_outer_var.cr b/src/ameba/rule/lint/shadowing_local_outer_var.cr similarity index 98% rename from src/ameba/rule/shadowing_local_outer_var.cr rename to src/ameba/rule/lint/shadowing_local_outer_var.cr index 2048f97e..e5068fb9 100644 --- a/src/ameba/rule/shadowing_local_outer_var.cr +++ b/src/ameba/rule/lint/shadowing_local_outer_var.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows the usage of the same name as outer local variables # for block or proc arguments. # diff --git a/src/ameba/rule/syntax.cr b/src/ameba/rule/lint/syntax.cr similarity index 95% rename from src/ameba/rule/syntax.cr rename to src/ameba/rule/lint/syntax.cr index 0c57f903..54184577 100644 --- a/src/ameba/rule/syntax.cr +++ b/src/ameba/rule/lint/syntax.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that reports invalid Crystal syntax. # # For example, this syntax is invalid: diff --git a/src/ameba/rule/unneeded_disable_directive.cr b/src/ameba/rule/lint/unneeded_disable_directive.cr similarity index 98% rename from src/ameba/rule/unneeded_disable_directive.cr rename to src/ameba/rule/lint/unneeded_disable_directive.cr index 4a34fa27..f9ff5817 100644 --- a/src/ameba/rule/unneeded_disable_directive.cr +++ b/src/ameba/rule/lint/unneeded_disable_directive.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that reports unneeded disable directives. # For example, this is considered invalid: # diff --git a/src/ameba/rule/unused_argument.cr b/src/ameba/rule/lint/unused_argument.cr similarity index 98% rename from src/ameba/rule/unused_argument.cr rename to src/ameba/rule/lint/unused_argument.cr index b1bb46e3..4c5da056 100644 --- a/src/ameba/rule/unused_argument.cr +++ b/src/ameba/rule/lint/unused_argument.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that reports unused arguments. # For example, this is considered invalid: # diff --git a/src/ameba/rule/useless_assign.cr b/src/ameba/rule/lint/useless_assign.cr similarity index 97% rename from src/ameba/rule/useless_assign.cr rename to src/ameba/rule/lint/useless_assign.cr index 3a97f68b..a41231ad 100644 --- a/src/ameba/rule/useless_assign.cr +++ b/src/ameba/rule/lint/useless_assign.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows useless assignments. # # For example, this is considered invalid: diff --git a/src/ameba/rule/useless_condition_in_when.cr b/src/ameba/rule/lint/useless_condition_in_when.cr similarity index 98% rename from src/ameba/rule/useless_condition_in_when.cr rename to src/ameba/rule/lint/useless_condition_in_when.cr index c8e4fbb7..d38081c7 100644 --- a/src/ameba/rule/useless_condition_in_when.cr +++ b/src/ameba/rule/lint/useless_condition_in_when.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Lint # A rule that disallows useless conditions in when clause # where it is guaranteed to always return the same result. # diff --git a/src/ameba/rule/constant_names.cr b/src/ameba/rule/style/constant_names.cr similarity index 97% rename from src/ameba/rule/constant_names.cr rename to src/ameba/rule/style/constant_names.cr index 883b8fda..73a4b8aa 100644 --- a/src/ameba/rule/constant_names.cr +++ b/src/ameba/rule/style/constant_names.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that enforces constant names to be in screaming case. # # For example, these constant names are considered valid: diff --git a/src/ameba/rule/large_numbers.cr b/src/ameba/rule/style/large_numbers.cr similarity index 99% rename from src/ameba/rule/large_numbers.cr rename to src/ameba/rule/style/large_numbers.cr index 539c764e..e7e0a917 100644 --- a/src/ameba/rule/large_numbers.cr +++ b/src/ameba/rule/style/large_numbers.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that disallows usage of large numbers without underscore. # These do not affect the value of the number, but can help read # large numbers more easily. diff --git a/src/ameba/rule/method_names.cr b/src/ameba/rule/style/method_names.cr similarity index 97% rename from src/ameba/rule/method_names.cr rename to src/ameba/rule/style/method_names.cr index 423352c7..b56f8084 100644 --- a/src/ameba/rule/method_names.cr +++ b/src/ameba/rule/style/method_names.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that enforces method names to be in underscored case. # # For example, these are considered valid: diff --git a/src/ameba/rule/negated_conditions_in_unless.cr b/src/ameba/rule/style/negated_conditions_in_unless.cr similarity index 97% rename from src/ameba/rule/negated_conditions_in_unless.cr rename to src/ameba/rule/style/negated_conditions_in_unless.cr index c60bae2b..d56bebea 100644 --- a/src/ameba/rule/negated_conditions_in_unless.cr +++ b/src/ameba/rule/style/negated_conditions_in_unless.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that disallows negated conditions in unless. # # For example, this is considered invalid: diff --git a/src/ameba/rule/predicate_name.cr b/src/ameba/rule/style/predicate_name.cr similarity index 97% rename from src/ameba/rule/predicate_name.cr rename to src/ameba/rule/style/predicate_name.cr index cae038b4..6fde98ba 100644 --- a/src/ameba/rule/predicate_name.cr +++ b/src/ameba/rule/style/predicate_name.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that disallows tautological predicate names, meaning those that # start with the prefix `has_` or the prefix `is_`. Ignores if the alternative isn't valid Crystal code (e.g. `is_404?`). # diff --git a/src/ameba/rule/redundant_begin.cr b/src/ameba/rule/style/redundant_begin.cr similarity index 99% rename from src/ameba/rule/redundant_begin.cr rename to src/ameba/rule/style/redundant_begin.cr index a81af866..3f0fb32f 100644 --- a/src/ameba/rule/redundant_begin.cr +++ b/src/ameba/rule/style/redundant_begin.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that disallows redundant begin blocks. # # Currently it is able to detect: diff --git a/src/ameba/rule/type_names.cr b/src/ameba/rule/style/type_names.cr similarity index 98% rename from src/ameba/rule/type_names.cr rename to src/ameba/rule/style/type_names.cr index 78b116bb..9d140f44 100644 --- a/src/ameba/rule/type_names.cr +++ b/src/ameba/rule/style/type_names.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that enforces type names in camelcase manner. # # For example, these are considered valid: diff --git a/src/ameba/rule/unless_else.cr b/src/ameba/rule/style/unless_else.cr similarity index 97% rename from src/ameba/rule/unless_else.cr rename to src/ameba/rule/style/unless_else.cr index 4c6714c6..920dd569 100644 --- a/src/ameba/rule/unless_else.cr +++ b/src/ameba/rule/style/unless_else.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that disallows the use of an `else` block with the `unless`. # # For example, the rule considers these valid: diff --git a/src/ameba/rule/variable_names.cr b/src/ameba/rule/style/variable_names.cr similarity index 98% rename from src/ameba/rule/variable_names.cr rename to src/ameba/rule/style/variable_names.cr index d179280a..325be40d 100644 --- a/src/ameba/rule/variable_names.cr +++ b/src/ameba/rule/style/variable_names.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that enforces variable names to be in underscored case. # # For example, these variable names are considered valid: diff --git a/src/ameba/rule/while_true.cr b/src/ameba/rule/style/while_true.cr similarity index 97% rename from src/ameba/rule/while_true.cr rename to src/ameba/rule/style/while_true.cr index 308f2f78..4b5b9158 100644 --- a/src/ameba/rule/while_true.cr +++ b/src/ameba/rule/style/while_true.cr @@ -1,4 +1,4 @@ -module Ameba::Rule +module Ameba::Rule::Style # A rule that disallows the use of `while true` instead of using the idiomatic `loop` # # For example, this is considered invalid: diff --git a/src/ameba/runner.cr b/src/ameba/runner.cr index 00e3536d..8a1da262 100644 --- a/src/ameba/runner.cr +++ b/src/ameba/runner.cr @@ -21,7 +21,7 @@ module Ameba @formatter : Formatter::BaseFormatter # A syntax rule which always inspects a source first - @syntax_rule = Rule::Syntax.new + @syntax_rule = Rule::Lint::Syntax.new # Checks for unneeded disable directives. Always inspects a source last @unneeded_disable_directive_rule : Rule::Base? @@ -43,7 +43,7 @@ module Ameba @unneeded_disable_directive_rule = config.rules - .find &.name.==(Rule::UnneededDisableDirective.rule_name) + .find &.name.==(Rule::Lint::UnneededDisableDirective.rule_name) end # :nodoc: