Ameba::Rule::Lint::EnumMemberNameConflict
Inherits YAML::Serializable < Ameba::Rule::Base < Ameba::Config::RuleConfig < Reference < Object
A rule that reports conflicting enum member names.
Since Crystal will parse enum member names using String#camelcase and
String#downcase, it is important to ensure that each member has a name
that stays unique after the transformation.
enum Foo
Bar
BAR
end
Foo.parse("bar") # => Foo::Bar
Foo.parse("Bar") # => Foo::Bar
Foo.parse("BAR") # => Foo::Bar
YAML configuration example:
Lint/EnumMemberNameConflict:
Enabled: true
Constants
Constructors
A rule that reports conflicting enum member names.
Since Crystal will parse enum member names using String#camelcase and
String#downcase, it is important to ensure that each member has a name
that stays unique after the transformation.
enum Foo
Bar
BAR
end
Foo.parse("bar") # => Foo::Bar
Foo.parse("Bar") # => Foo::Bar
Foo.parse("BAR") # => Foo::Bar
YAML configuration example:
Lint/EnumMemberNameConflict:
Enabled: true
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."