mirror of
https://gitea.invidious.io/iv-org/shard-ameba.git
synced 2024-08-15 00:53:29 +00:00
Merge pull request #191 from crystal-ameba/Sija/change-rule-to-class
Change Rule to a class
This commit is contained in:
commit
9853203f19
52 changed files with 74 additions and 78 deletions
|
@ -3,7 +3,7 @@ require "../src/ameba"
|
||||||
|
|
||||||
module Ameba
|
module Ameba
|
||||||
# Dummy Rule which does nothing.
|
# Dummy Rule which does nothing.
|
||||||
struct DummyRule < Rule::Base
|
class DummyRule < Rule::Base
|
||||||
properties do
|
properties do
|
||||||
description : String = "Dummy rule that does nothing."
|
description : String = "Dummy rule that does nothing."
|
||||||
end
|
end
|
||||||
|
@ -35,7 +35,7 @@ module Ameba
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
struct NamedRule < Rule::Base
|
class NamedRule < Rule::Base
|
||||||
properties do
|
properties do
|
||||||
description "A rule with a custom name."
|
description "A rule with a custom name."
|
||||||
end
|
end
|
||||||
|
@ -45,7 +45,7 @@ module Ameba
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
struct ErrorRule < Rule::Base
|
class ErrorRule < Rule::Base
|
||||||
properties do
|
properties do
|
||||||
description "Always adds an error at 1:1"
|
description "Always adds an error at 1:1"
|
||||||
end
|
end
|
||||||
|
@ -55,7 +55,7 @@ module Ameba
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
struct ScopeRule < Rule::Base
|
class ScopeRule < Rule::Base
|
||||||
@[YAML::Field(ignore: true)]
|
@[YAML::Field(ignore: true)]
|
||||||
getter scopes = [] of AST::Scope
|
getter scopes = [] of AST::Scope
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ module Ameba
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
struct FlowExpressionRule < Rule::Base
|
class FlowExpressionRule < Rule::Base
|
||||||
@[YAML::Field(ignore: true)]
|
@[YAML::Field(ignore: true)]
|
||||||
getter expressions = [] of AST::FlowExpression
|
getter expressions = [] of AST::FlowExpression
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ module Ameba
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
struct RedundantControlExpressionRule < Rule::Base
|
class RedundantControlExpressionRule < Rule::Base
|
||||||
@[YAML::Field(ignore: true)]
|
@[YAML::Field(ignore: true)]
|
||||||
getter nodes = [] of Crystal::ASTNode
|
getter nodes = [] of Crystal::ASTNode
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ module Ameba
|
||||||
end
|
end
|
||||||
|
|
||||||
# A rule that always raises an error
|
# A rule that always raises an error
|
||||||
struct RaiseRule < Rule::Base
|
class RaiseRule < Rule::Base
|
||||||
property should_raise = false
|
property should_raise = false
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -121,16 +121,10 @@ module Ameba::Cli
|
||||||
private def configure_rules(config, opts)
|
private def configure_rules(config, opts)
|
||||||
case
|
case
|
||||||
when only = opts.only
|
when only = opts.only
|
||||||
config.rules.map! do |rule|
|
config.rules.each(&.enabled = false)
|
||||||
rule.enabled = false
|
|
||||||
rule
|
|
||||||
end
|
|
||||||
config.update_rules(only, enabled: true)
|
config.update_rules(only, enabled: true)
|
||||||
when opts.all?
|
when opts.all?
|
||||||
config.rules.map! do |rule|
|
config.rules.each(&.enabled = true)
|
||||||
rule.enabled = true
|
|
||||||
rule
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
config.update_rules(opts.except, enabled: false)
|
config.update_rules(opts.except, enabled: false)
|
||||||
end
|
end
|
||||||
|
|
|
@ -135,13 +135,12 @@ class Ameba::Config
|
||||||
# config.update_rule "MyRuleName", enabled: false
|
# config.update_rule "MyRuleName", enabled: false
|
||||||
# ```
|
# ```
|
||||||
def update_rule(name, enabled = true, excluded = nil)
|
def update_rule(name, enabled = true, excluded = nil)
|
||||||
index = @rules.index { |rule| rule.name == name }
|
rule = @rules.find(&.name.==(name))
|
||||||
raise ArgumentError.new("Rule `#{name}` does not exist") unless index
|
raise ArgumentError.new("Rule `#{name}` does not exist") unless rule
|
||||||
|
|
||||||
rule = @rules[index]
|
rule
|
||||||
rule.enabled = enabled
|
.tap(&.enabled = enabled)
|
||||||
rule.excluded = excluded
|
.tap(&.excluded = excluded)
|
||||||
@rules[index] = rule
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Updates rules properties.
|
# Updates rules properties.
|
||||||
|
@ -156,12 +155,15 @@ class Ameba::Config
|
||||||
# ```
|
# ```
|
||||||
# config.update_rules %w(Group1 Group2), enabled: true
|
# config.update_rules %w(Group1 Group2), enabled: true
|
||||||
# ```
|
# ```
|
||||||
def update_rules(names, **args)
|
def update_rules(names, enabled = true, excluded = nil)
|
||||||
names.try &.each do |name|
|
names.try &.each do |name|
|
||||||
if group = @rule_groups[name]?
|
if rules = @rule_groups[name]?
|
||||||
group.each { |rule| update_rule(rule.name, **args) }
|
rules.each do |rule|
|
||||||
|
rule.enabled = enabled
|
||||||
|
rule.excluded = excluded
|
||||||
|
end
|
||||||
else
|
else
|
||||||
update_rule name, **args
|
update_rule name, enabled, excluded
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -10,7 +10,7 @@ module Ameba::Rule
|
||||||
# inherits from this struct:
|
# inherits from this struct:
|
||||||
#
|
#
|
||||||
# ```
|
# ```
|
||||||
# struct MyRule < Ameba::Rule::Base
|
# class MyRule < Ameba::Rule::Base
|
||||||
# def test(source)
|
# def test(source)
|
||||||
# if invalid?(source)
|
# if invalid?(source)
|
||||||
# issue_for line, column, "Something wrong."
|
# issue_for line, column, "Something wrong."
|
||||||
|
@ -26,7 +26,7 @@ module Ameba::Rule
|
||||||
# Enforces rules to implement an abstract `#test` method which
|
# Enforces rules to implement an abstract `#test` method which
|
||||||
# is designed to test the source passed in. If source has issues
|
# is designed to test the source passed in. If source has issues
|
||||||
# that are tested by this rule, it should add an issue.
|
# that are tested by this rule, it should add an issue.
|
||||||
abstract struct Base
|
abstract class Base
|
||||||
include Config::RuleConfig
|
include Config::RuleConfig
|
||||||
|
|
||||||
# This method is designed to test the source passed in. If source has issues
|
# This method is designed to test the source passed in. If source has issues
|
||||||
|
@ -56,7 +56,7 @@ module Ameba::Rule
|
||||||
# Returns a name of this rule, which is basically a class name.
|
# Returns a name of this rule, which is basically a class name.
|
||||||
#
|
#
|
||||||
# ```
|
# ```
|
||||||
# struct MyRule < Ameba::Rule::Base
|
# class MyRule < Ameba::Rule::Base
|
||||||
# def test(source)
|
# def test(source)
|
||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
|
@ -70,7 +70,7 @@ module Ameba::Rule
|
||||||
# Returns a group this rule belong to.
|
# Returns a group this rule belong to.
|
||||||
#
|
#
|
||||||
# ```
|
# ```
|
||||||
# struct MyGroup::MyRule < Ameba::Rule::Base
|
# class MyGroup::MyRule < Ameba::Rule::Base
|
||||||
# # ...
|
# # ...
|
||||||
# end
|
# end
|
||||||
#
|
#
|
||||||
|
@ -140,7 +140,7 @@ module Ameba::Rule
|
||||||
# module Ameba
|
# module Ameba
|
||||||
# # This is a test rule.
|
# # This is a test rule.
|
||||||
# # Does nothing.
|
# # Does nothing.
|
||||||
# struct MyRule < Ameba::Rule::Base
|
# class MyRule < Ameba::Rule::Base
|
||||||
# def test(source)
|
# def test(source)
|
||||||
# end
|
# end
|
||||||
# end
|
# end
|
||||||
|
|
|
@ -8,7 +8,7 @@ module Ameba::Rule::Layout
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# MaxLength: 100
|
# MaxLength: 100
|
||||||
# ```
|
# ```
|
||||||
struct LineLength < Base
|
class LineLength < Base
|
||||||
properties do
|
properties do
|
||||||
enabled false
|
enabled false
|
||||||
description "Disallows lines longer than `MaxLength` number of symbols"
|
description "Disallows lines longer than `MaxLength` number of symbols"
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Ameba::Rule::Layout
|
||||||
# Layout/TrailingBlankLines:
|
# Layout/TrailingBlankLines:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct TrailingBlankLines < Base
|
class TrailingBlankLines < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows trailing blank lines"
|
description "Disallows trailing blank lines"
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Ameba::Rule::Layout
|
||||||
# Layout/TrailingWhitespace:
|
# Layout/TrailingWhitespace:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct TrailingWhitespace < Base
|
class TrailingWhitespace < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows trailing whitespaces"
|
description "Disallows trailing whitespaces"
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,7 +17,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/BadDirective:
|
# Lint/BadDirective:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct BadDirective < Base
|
class BadDirective < Base
|
||||||
properties do
|
properties do
|
||||||
description "Reports bad comment directives"
|
description "Reports bad comment directives"
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,7 +19,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/ComparisonToBoolean:
|
# Lint/ComparisonToBoolean:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct ComparisonToBoolean < Base
|
class ComparisonToBoolean < Base
|
||||||
properties do
|
properties do
|
||||||
enabled false
|
enabled false
|
||||||
description "Disallows comparison to booleans"
|
description "Disallows comparison to booleans"
|
||||||
|
|
|
@ -10,7 +10,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/DebuggerStatement:
|
# Lint/DebuggerStatement:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct DebuggerStatement < Base
|
class DebuggerStatement < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows calls to debugger"
|
description "Disallows calls to debugger"
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,7 +13,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/DuplicatedRequire:
|
# Lint/DuplicatedRequire:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct DuplicatedRequire < Base
|
class DuplicatedRequire < Base
|
||||||
properties do
|
properties do
|
||||||
description "Reports duplicated require statements"
|
description "Reports duplicated require statements"
|
||||||
end
|
end
|
||||||
|
|
|
@ -38,7 +38,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/EmptyEnsure
|
# Lint/EmptyEnsure
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct EmptyEnsure < Base
|
class EmptyEnsure < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows empty ensure statement"
|
description "Disallows empty ensure statement"
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,7 +27,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/EmptyExpression:
|
# Lint/EmptyExpression:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct EmptyExpression < Base
|
class EmptyExpression < Base
|
||||||
include AST::Util
|
include AST::Util
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -37,7 +37,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/EmptyLoop:
|
# Lint/EmptyLoop:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct EmptyLoop < Base
|
class EmptyLoop < Base
|
||||||
include AST::Util
|
include AST::Util
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -19,7 +19,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/HashDuplicatedKey:
|
# Lint/HashDuplicatedKey:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct HashDuplicatedKey < Base
|
class HashDuplicatedKey < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows duplicated keys in hash literals"
|
description "Disallows duplicated keys in hash literals"
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,7 +19,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/LiteralInCondition:
|
# Lint/LiteralInCondition:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct LiteralInCondition < Base
|
class LiteralInCondition < Base
|
||||||
include AST::Util
|
include AST::Util
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -15,7 +15,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/LiteralInInterpolation
|
# Lint/LiteralInInterpolation
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct LiteralInInterpolation < Base
|
class LiteralInInterpolation < Base
|
||||||
include AST::Util
|
include AST::Util
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -23,7 +23,7 @@ module Ameba::Rule::Lint
|
||||||
# StringArrayUnwantedSymbols: ',"'
|
# StringArrayUnwantedSymbols: ',"'
|
||||||
# SymbolArrayUnwantedSymbols: ',:'
|
# SymbolArrayUnwantedSymbols: ',:'
|
||||||
# ```
|
# ```
|
||||||
struct PercentArrays < Base
|
class PercentArrays < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows some unwanted symbols in percent array literals"
|
description "Disallows some unwanted symbols in percent array literals"
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/RandZero:
|
# Lint/RandZero:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct RandZero < Base
|
class RandZero < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows rand zero calls"
|
description "Disallows rand zero calls"
|
||||||
end
|
end
|
||||||
|
|
|
@ -20,7 +20,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/RedundantStringCoersion
|
# Lint/RedundantStringCoersion
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct RedundantStringCoercion < Base
|
class RedundantStringCoercion < Base
|
||||||
include AST::Util
|
include AST::Util
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -26,7 +26,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/RedundantWithIndex:
|
# Lint/RedundantWithIndex:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct RedundantWithIndex < Base
|
class RedundantWithIndex < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows redundant `with_index` calls"
|
description "Disallows redundant `with_index` calls"
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,7 +27,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/RedundantWithObject:
|
# Lint/RedundantWithObject:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct RedundantWithObject < Base
|
class RedundantWithObject < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows redundant `with_object` calls"
|
description "Disallows redundant `with_object` calls"
|
||||||
end
|
end
|
||||||
|
|
|
@ -35,7 +35,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/ShadowedArgument:
|
# Lint/ShadowedArgument:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct ShadowedArgument < Base
|
class ShadowedArgument < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows shadowed arguments"
|
description "Disallows shadowed arguments"
|
||||||
end
|
end
|
||||||
|
|
|
@ -33,7 +33,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/ShadowedException:
|
# Lint/ShadowedException:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct ShadowedException < Base
|
class ShadowedException < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows rescued exception that get shadowed"
|
description "Disallows rescued exception that get shadowed"
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,7 +30,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/ShadowingOuterLocalVar:
|
# Lint/ShadowingOuterLocalVar:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct ShadowingOuterLocalVar < Base
|
class ShadowingOuterLocalVar < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows the usage of the same name as outer local variables" \
|
description "Disallows the usage of the same name as outer local variables" \
|
||||||
" for block or proc arguments."
|
" for block or proc arguments."
|
||||||
|
|
|
@ -49,7 +49,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/SharedVarInFiber:
|
# Lint/SharedVarInFiber:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct SharedVarInFiber < Base
|
class SharedVarInFiber < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows shared variables in fibers."
|
description "Disallows shared variables in fibers."
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,7 +18,7 @@ module Ameba::Rule::Lint
|
||||||
# rescue e : Exception
|
# rescue e : Exception
|
||||||
# end
|
# end
|
||||||
# ```
|
# ```
|
||||||
struct Syntax < Base
|
class Syntax < Base
|
||||||
properties do
|
properties do
|
||||||
description "Reports invalid Crystal syntax"
|
description "Reports invalid Crystal syntax"
|
||||||
severity Ameba::Severity::Error
|
severity Ameba::Severity::Error
|
||||||
|
|
|
@ -24,7 +24,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/UnneededDisableDirective
|
# Lint/UnneededDisableDirective
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct UnneededDisableDirective < Base
|
class UnneededDisableDirective < Base
|
||||||
properties do
|
properties do
|
||||||
description "Reports unneeded disable directives in comments"
|
description "Reports unneeded disable directives in comments"
|
||||||
end
|
end
|
||||||
|
|
|
@ -41,7 +41,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/UnreachableCode:
|
# Lint/UnreachableCode:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct UnreachableCode < Base
|
class UnreachableCode < Base
|
||||||
include AST::Util
|
include AST::Util
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -24,7 +24,7 @@ module Ameba::Rule::Lint
|
||||||
# IgnoreBlocks: false
|
# IgnoreBlocks: false
|
||||||
# IgnoreProcs: false
|
# IgnoreProcs: false
|
||||||
# ```
|
# ```
|
||||||
struct UnusedArgument < Base
|
class UnusedArgument < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows unused arguments"
|
description "Disallows unused arguments"
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/UselessAssign:
|
# Lint/UselessAssign:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct UselessAssign < Base
|
class UselessAssign < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows useless variable assignments"
|
description "Disallows useless variable assignments"
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,7 +30,7 @@ module Ameba::Rule::Lint
|
||||||
# Lint/UselessConditionInWhen:
|
# Lint/UselessConditionInWhen:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct UselessConditionInWhen < Base
|
class UselessConditionInWhen < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows useless conditions in when"
|
description "Disallows useless conditions in when"
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,7 +8,7 @@ module Ameba::Rule::Metrics
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# MaxComplexity: 10
|
# MaxComplexity: 10
|
||||||
# ```
|
# ```
|
||||||
struct CyclomaticComplexity < Base
|
class CyclomaticComplexity < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows methods with a cyclomatic complexity higher than `MaxComplexity`"
|
description "Disallows methods with a cyclomatic complexity higher than `MaxComplexity`"
|
||||||
max_complexity 10
|
max_complexity 10
|
||||||
|
|
|
@ -24,7 +24,7 @@ module Ameba::Rule::Performance
|
||||||
# - select
|
# - select
|
||||||
# - reject
|
# - reject
|
||||||
# ```
|
# ```
|
||||||
struct AnyAfterFilter < Base
|
class AnyAfterFilter < Base
|
||||||
properties do
|
properties do
|
||||||
description "Identifies usage of `any?` calls that follow filters."
|
description "Identifies usage of `any?` calls that follow filters."
|
||||||
filter_names : Array(String) = %w(select reject)
|
filter_names : Array(String) = %w(select reject)
|
||||||
|
|
|
@ -19,7 +19,7 @@ module Ameba::Rule::Performance
|
||||||
# Performance/CompactAfterMap
|
# Performance/CompactAfterMap
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct CompactAfterMap < Base
|
class CompactAfterMap < Base
|
||||||
properties do
|
properties do
|
||||||
description "Identifies usage of `compact` calls that follow `map`."
|
description "Identifies usage of `compact` calls that follow `map`."
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,7 +23,7 @@ module Ameba::Rule::Performance
|
||||||
# FilterNames:
|
# FilterNames:
|
||||||
# - select
|
# - select
|
||||||
# ```
|
# ```
|
||||||
struct FirstLastAfterFilter < Base
|
class FirstLastAfterFilter < Base
|
||||||
properties do
|
properties do
|
||||||
description "Identifies usage of `first/last/first?/last?` calls that follow filters."
|
description "Identifies usage of `first/last/first?/last?` calls that follow filters."
|
||||||
filter_names : Array(String) = %w(select)
|
filter_names : Array(String) = %w(select)
|
||||||
|
|
|
@ -19,7 +19,7 @@ module Ameba::Rule::Performance
|
||||||
# Performance/FlattenAfterMap
|
# Performance/FlattenAfterMap
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct FlattenAfterMap < Base
|
class FlattenAfterMap < Base
|
||||||
properties do
|
properties do
|
||||||
description "Identifies usage of `flatten` calls that follow `map`."
|
description "Identifies usage of `flatten` calls that follow `map`."
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,7 +22,7 @@ module Ameba::Rule::Performance
|
||||||
# Performance/MapInsteadOfBlock
|
# Performance/MapInsteadOfBlock
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct MapInsteadOfBlock < Base
|
class MapInsteadOfBlock < Base
|
||||||
properties do
|
properties do
|
||||||
description "Identifies usage of `join/sum/product` calls that follow `map`."
|
description "Identifies usage of `join/sum/product` calls that follow `map`."
|
||||||
end
|
end
|
||||||
|
|
|
@ -30,7 +30,7 @@ module Ameba::Rule::Performance
|
||||||
# - select
|
# - select
|
||||||
# - reject
|
# - reject
|
||||||
# ```
|
# ```
|
||||||
struct SizeAfterFilter < Base
|
class SizeAfterFilter < Base
|
||||||
properties do
|
properties do
|
||||||
description "Identifies usage of `size` calls that follow filter"
|
description "Identifies usage of `size` calls that follow filter"
|
||||||
filter_names : Array(String) = %w(select reject)
|
filter_names : Array(String) = %w(select reject)
|
||||||
|
|
|
@ -21,7 +21,7 @@ module Ameba::Rule::Style
|
||||||
# Style/ConstantNames:
|
# Style/ConstantNames:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct ConstantNames < Base
|
class ConstantNames < Base
|
||||||
properties do
|
properties do
|
||||||
description "Enforces constant names to be in screaming case"
|
description "Enforces constant names to be in screaming case"
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,7 +19,7 @@ module Ameba::Rule::Style
|
||||||
# Style/IsANil:
|
# Style/IsANil:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct IsANil < Base
|
class IsANil < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows calls to `is_a?(Nil)` in favor of `nil?`"
|
description "Disallows calls to `is_a?(Nil)` in favor of `nil?`"
|
||||||
end
|
end
|
||||||
|
|
|
@ -26,7 +26,7 @@ module Ameba::Rule::Style
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# IntMinDigits: 5 # i.e. integers higher than 9999
|
# IntMinDigits: 5 # i.e. integers higher than 9999
|
||||||
# ```
|
# ```
|
||||||
struct LargeNumbers < Base
|
class LargeNumbers < Base
|
||||||
properties do
|
properties do
|
||||||
enabled false
|
enabled false
|
||||||
description "Disallows usage of large numbers without underscore"
|
description "Disallows usage of large numbers without underscore"
|
||||||
|
|
|
@ -37,7 +37,7 @@ module Ameba::Rule::Style
|
||||||
# Style/MethodNames:
|
# Style/MethodNames:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct MethodNames < Base
|
class MethodNames < Base
|
||||||
properties do
|
properties do
|
||||||
description "Enforces method names to be in underscored case"
|
description "Enforces method names to be in underscored case"
|
||||||
end
|
end
|
||||||
|
|
|
@ -26,7 +26,7 @@ module Ameba::Rule::Style
|
||||||
# Style/NegatedConditionsInUnless:
|
# Style/NegatedConditionsInUnless:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct NegatedConditionsInUnless < Base
|
class NegatedConditionsInUnless < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows negated conditions in unless"
|
description "Disallows negated conditions in unless"
|
||||||
end
|
end
|
||||||
|
|
|
@ -28,7 +28,7 @@ module Ameba::Rule::Style
|
||||||
# Style/PredicateName:
|
# Style/PredicateName:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct PredicateName < Base
|
class PredicateName < Base
|
||||||
properties do
|
properties do
|
||||||
enabled false
|
enabled false
|
||||||
description "Disallows tautological predicate names"
|
description "Disallows tautological predicate names"
|
||||||
|
|
|
@ -55,7 +55,7 @@ module Ameba::Rule::Style
|
||||||
# Style/RedundantBegin:
|
# Style/RedundantBegin:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct RedundantBegin < Base
|
class RedundantBegin < Base
|
||||||
include AST::Util
|
include AST::Util
|
||||||
|
|
||||||
properties do
|
properties do
|
||||||
|
|
|
@ -96,7 +96,7 @@ module Ameba::Rule::Style
|
||||||
# AllowMultiNext: true
|
# AllowMultiNext: true
|
||||||
# AllowEmptyNext: true
|
# AllowEmptyNext: true
|
||||||
# ```
|
# ```
|
||||||
struct RedundantNext < Base
|
class RedundantNext < Base
|
||||||
properties do
|
properties do
|
||||||
description "Reports redundant next expressions"
|
description "Reports redundant next expressions"
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ module Ameba::Rule::Style
|
||||||
# AllowMutliReturn: true
|
# AllowMutliReturn: true
|
||||||
# AllowEmptyReturn: true
|
# AllowEmptyReturn: true
|
||||||
# ```
|
# ```
|
||||||
struct RedundantReturn < Base
|
class RedundantReturn < Base
|
||||||
properties do
|
properties do
|
||||||
description "Reports redundant return expressions"
|
description "Reports redundant return expressions"
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ module Ameba::Rule::Style
|
||||||
# Style/TypeNames:
|
# Style/TypeNames:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct TypeNames < Base
|
class TypeNames < Base
|
||||||
properties do
|
properties do
|
||||||
description "Enforces type names in camelcase manner"
|
description "Enforces type names in camelcase manner"
|
||||||
end
|
end
|
||||||
|
|
|
@ -42,7 +42,7 @@ module Ameba::Rule::Style
|
||||||
# Style/UnlessElse:
|
# Style/UnlessElse:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct UnlessElse < Base
|
class UnlessElse < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows the use of an `else` block with the `unless`"
|
description "Disallows the use of an `else` block with the `unless`"
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,7 +22,7 @@ module Ameba::Rule::Style
|
||||||
# Style/VariableNames:
|
# Style/VariableNames:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct VariableNames < Base
|
class VariableNames < Base
|
||||||
properties do
|
properties do
|
||||||
description "Enforces variable names to be in underscored case"
|
description "Enforces variable names to be in underscored case"
|
||||||
end
|
end
|
||||||
|
|
|
@ -25,7 +25,7 @@ module Ameba::Rule::Style
|
||||||
# Style/WhileTrue:
|
# Style/WhileTrue:
|
||||||
# Enabled: true
|
# Enabled: true
|
||||||
# ```
|
# ```
|
||||||
struct WhileTrue < Base
|
class WhileTrue < Base
|
||||||
properties do
|
properties do
|
||||||
description "Disallows while statements with a true literal as condition"
|
description "Disallows while statements with a true literal as condition"
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue