diff --git a/src/ameba/rules/comparison_to_boolean.cr b/src/ameba/rules/comparison_to_boolean.cr index e76df2cf..a85914cd 100644 --- a/src/ameba/rules/comparison_to_boolean.cr +++ b/src/ameba/rules/comparison_to_boolean.cr @@ -11,6 +11,7 @@ module Ameba::Rules # This is because these expressions evaluate to `true` or `false`, so you # could get the same result by using either the variable directly, # or negating the variable. + # struct ComparisonToBoolean < Rule def test(source) AST::CallVisitor.new self, source diff --git a/src/ameba/rules/debugger_statement.cr b/src/ameba/rules/debugger_statement.cr index 9b594206..902808b1 100644 --- a/src/ameba/rules/debugger_statement.cr +++ b/src/ameba/rules/debugger_statement.cr @@ -3,6 +3,7 @@ module Ameba::Rules # # This is because we don't want debugger breakpoints accidentally being # committed into our codebase. + # struct DebuggerStatement < Rule def test(source) AST::CallVisitor.new self, source diff --git a/src/ameba/rules/line_length.cr b/src/ameba/rules/line_length.cr index 6ca165e7..3d6e2c0d 100644 --- a/src/ameba/rules/line_length.cr +++ b/src/ameba/rules/line_length.cr @@ -1,5 +1,6 @@ module Ameba::Rules # A rule that disallows lines longer than 79 symbols. + # struct LineLength < Rule def test(source) source.lines.each_with_index do |line, index| diff --git a/src/ameba/rules/literal_in_condition.cr b/src/ameba/rules/literal_in_condition.cr index 033f79d8..b42fd20d 100644 --- a/src/ameba/rules/literal_in_condition.cr +++ b/src/ameba/rules/literal_in_condition.cr @@ -12,6 +12,7 @@ module Ameba::Rules # :ok # end # ``` + # struct LiteralInCondition < Rule include AST::Util diff --git a/src/ameba/rules/literal_in_interpolation.cr b/src/ameba/rules/literal_in_interpolation.cr index c3004410..cfa303ba 100644 --- a/src/ameba/rules/literal_in_interpolation.cr +++ b/src/ameba/rules/literal_in_interpolation.cr @@ -6,7 +6,7 @@ module Ameba::Rules # # ``` # "Hello, #{:Ary}" - # "The are #{4} cats" + # "There are #{4} cats" # ``` # struct LiteralInInterpolation < Rule @@ -17,12 +17,8 @@ module Ameba::Rules end def test(source, node : Crystal::StringInterpolation) - has_literal = node.expressions.any? do |e| - !string_literal?(e) && literal?(e) - end - - return unless has_literal - + found = node.expressions.any? { |e| !string_literal?(e) && literal?(e) } + return unless found source.error self, node.location.try &.line_number, "Literal value found in interpolation" end diff --git a/src/ameba/rules/trailing_blank_lines.cr b/src/ameba/rules/trailing_blank_lines.cr index 07774de0..257c92fa 100644 --- a/src/ameba/rules/trailing_blank_lines.cr +++ b/src/ameba/rules/trailing_blank_lines.cr @@ -1,5 +1,6 @@ module Ameba::Rules # A rule that disallows trailing blank lines at the end of the source file. + # struct TrailingBlankLines < Rule def test(source) if source.lines.size > 1 && source.lines[-2, 2].join.strip.empty? diff --git a/src/ameba/rules/trailing_whitespace.cr b/src/ameba/rules/trailing_whitespace.cr index 4f364e56..3d2bf701 100644 --- a/src/ameba/rules/trailing_whitespace.cr +++ b/src/ameba/rules/trailing_whitespace.cr @@ -1,5 +1,6 @@ module Ameba::Rules # A rule that disallows trailing whitespaces. + # struct TrailingWhitespace < Rule def test(source) source.lines.each_with_index do |line, index| diff --git a/src/ameba/rules/unless_else.cr b/src/ameba/rules/unless_else.cr index 148b3b12..3b4905d7 100644 --- a/src/ameba/rules/unless_else.cr +++ b/src/ameba/rules/unless_else.cr @@ -35,6 +35,7 @@ module Ameba::Rules # :one # end # ``` + # struct UnlessElse < Rule def test(source) AST::UnlessVisitor.new self, source