Ameba::Rule::Performance::ExcessiveAllocations
Inherits Ameba::AST::Util < YAML::Serializable < Ameba::Rule::Performance::Base < YAML::Serializable < Ameba::Rule::Base < Ameba::Config::RuleConfig < Reference < Object
This rule is used to identify excessive collection allocations,
that can be avoided by using each_<member> instead of <collection>.each.
For example, this is considered inefficient:
"Alice".chars.each { |c| puts c }
"Alice\nBob".lines.each { |l| puts l }
And can be written as this:
"Alice".each_char { |c| puts c }
"Alice\nBob".each_line { |l| puts l }
YAML configuration example:
Performance/ExcessiveAllocations:
Enabled: true
CallNames:
codepoints: each_codepoint
graphemes: each_grapheme
chars: each_char
lines: each_line
Constants
Constructors
This rule is used to identify excessive collection allocations,
that can be avoided by using each_<member> instead of <collection>.each.
For example, this is considered inefficient:
"Alice".chars.each { |c| puts c }
"Alice\nBob".lines.each { |l| puts l }
And can be written as this:
"Alice".each_char { |c| puts c }
"Alice\nBob".each_line { |l| puts l }
YAML configuration example:
Performance/ExcessiveAllocations:
Enabled: true
CallNames:
codepoints: each_codepoint
graphemes: each_grapheme
chars: each_char
lines: each_line
This rule is used to identify excessive collection allocations,
that can be avoided by using each_<member> instead of <collection>.each.
For example, this is considered inefficient:
"Alice".chars.each { |c| puts c }
"Alice\nBob".lines.each { |l| puts l }
And can be written as this:
"Alice".each_char { |c| puts c }
"Alice\nBob".each_line { |l| puts l }
YAML configuration example:
Performance/ExcessiveAllocations:
Enabled: true
CallNames:
codepoints: each_codepoint
graphemes: each_grapheme
chars: each_char
lines: each_line
Class methods
Returns true if this rule is deprecated, false otherwise.
Returns the deprecation reason for this rule, if there is any.
Returns the documentation URL for this rule.
Ameba::Rule::Lint::Syntax.documentation_url
# => "https://crystal-ameba.org/api/master/Ameba/Rule/Lint/Syntax.html"
Returns the documentation for this rule, if there is any.
module Ameba
# This is a test rule.
# Does nothing.
class Rule::MyRule < Rule::Base
def test(source)
end
end
end
Ameba::Rule::MyRule.parsed_doc # => "This is a test rule.\nDoes nothing."