1.1.0
This release changes the way the definitions system works so that it no longer
stores a set of global definition objects. Instead "templates" (so to speak)
are provided which are applied to individual RubyLint::VirtualMachine
instances. This makes it much easier to analyze code that patches core classes
such as String or Fixnum.
There have also been various other, smaller changes. The ones worth mentioning as following:
- A new analysis class, UselessEqualityChecks, has been added. This class adds
warnings for expressions such as
"foo" == true. - A Rake task class has been added, making it easier to integrate ruby-lint in a Rakefile.
- The CLI has been cleaned up and the
plotandastcommands have been removed. A new command,cachehas been introduced to manage ruby-lint cache files more easily. - A bug has been fixed that would prevent ruby-lint from properly loading files
from multiple directories, see Git commit
292bb2b73aa6adfdc750fb846884025afc841393. - Definitions have been added for Devise and Nokogiri.
- Most built-in definitions have been re-generated.
- Definitions system has been overhauled to no longer use a global state and a
complex data copying system. Instead the definitions are applied to every
individual
RubyLint::VirtualMachineinstance. - Updated the version of the parser Gem to use.
The following bugs/issues have been resolved in this release:
- https://github.com/YorickPeterse/ruby-lint/issues/89
- https://github.com/YorickPeterse/ruby-lint/issues/85
- https://github.com/YorickPeterse/ruby-lint/issues/91
- https://github.com/YorickPeterse/ruby-lint/issues/92
- https://github.com/YorickPeterse/ruby-lint/issues/93
- https://github.com/YorickPeterse/ruby-lint/issues/94
- https://github.com/YorickPeterse/ruby-lint/issues/100
- https://github.com/YorickPeterse/ruby-lint/issues/101
- https://github.com/YorickPeterse/ruby-lint/issues/102