Ameba v0.13.0 has been released

A very small release that supports Crystal 0.35.0 and eliminates the deprecation messages which are related to yaml serialization.

Checkout the release notes to see a full scope of changes.

Move to YAML::Serializable

Each rule in Ameba can be serialized to YAML and deserialized back to the Crystal struct. This is needed in order to give users an ability to configure the Ameba binary using the configuration file .ameba.yml.

And in order to deserialize, Ameba used YAML.mapping macro. And starting from Crystal 0.35.0 this macro is deprecated since there is a better alternative which is the YAML::Serializable module.

Starting from this release, Ameba uses YAML::Serializable. The older version of Ameba still works with Crystal 0.35.0 however, users might see the deprecation warning while compiling the binary.

New Rules

Lint/BadDirective

This is a new rule that reports the incorrect comment directive for Ameba.

For example, the user can mistakenly add a directive to disable a rule that even doesn’t exist:

1
2
3
4
# ameba:disable BadRuleName
def foo
:bar
end

Now, such a comment directive above will be propertly reported.

Style/IsANil

Crystal has two ways for checking the nil equality: .is_a?(Nil) and .nil?.

Since the second is much more consice and doing basically the same, now Ameba disallows calls to .is_a?(Nil) in favor of .nil?.

This is considered bad:

1
var.is_a? Nil

And needs to be written as:

1
var.nil?

Support

A new Patreon page has been created recently to support Ameba. If you enjoy the project please consider becoming a patreon which will give more attention to the project from the development perspective and make it better.

Ameba v0.12.0 has been released

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×