- Compat: Rake 11 supported
- Compat: Ruby 1.9 no longer supported.
- Feature: Glob options now take arrays.
- Bugfix: Commented methods no longer trigger a documentation violation for empty modules.
- Feature: Ruby 2.1 supported.
- Feature: Don't require doc for one-line class w/out method.
- Bugfix: JsonFormatter initializer needs to take an options hash.
- Doc: Add license definition to gemspec.
- Feature: classes with no methods do not require documentation.
- Feature: modules with methods require documentation.
- Feature: support all README extensions.
- Feature: --color option.
- Bugfix: fix false positive on class matching for doc check.
- Bugfix: better handling of invalid strings.
- Compat: fix Ruby 2.0 deprecations.
- Feature: support operators beside
>=
in threshold check.
- Feature: documentation check supports
.mdown
and.rdoc
extensions. - Feature: expanded threshold regex to support
coverage/.last_run.json
fromSimpleCov
. - Compat: Ruby 2.0 compatibility.
- Feature:
--doc-exclude
option to exclude globs from documentation checks. - Feature:
--style-exclude
supports globbing.
- Feature: Rake task can load configuration from a
.cane
file. - Feature: Coverage threshold can be specifed in a file.
- Feature: Provide
--all
option for working with single files. - Bugfix: Allow README file to be lowercase.
- Feature:
--json
option for machine-readable output. - Feature: absence of a README will cause a failure.
- Bugfix:
--no-style
option actually works now.
- Bugfix: Allow multiple spaces before class name. (#34)
- Bugfix: Remove wacky broken conditional in AbcCheck. (#33)
- Doc: Better guidance on class level comments. (#35)
- Bugfix: Stricter magic comment regex to avoid false positives (#31)
- Bugfix: parallel option can be set in rake tasks
- Gracefully handle ambiguous options like
-abc-max
(#27) - Provide the
--parallel
option to use all processors. This will be faster on larger projects, but slower on smaller ones (#28)
- Support for user-defined checks (#30)
- ABC check labels
MyClass = Struct.new {}
andClass.new
correctly (#20) - Magic comments (
# encoding: utf-8
) are not recognized as appropriate class documentation (#21) - Invalid UTF-8 is handled correctly (#22)
- Gracefully handle unknown options
- ABC check output uses a standard format (
Foo::Bar#method
rather thanFoo > Bar > method
) - BREAKING Add
--abc-exclude
,--style-exclude
CLI flags, remove YAML support - BREAKING-INTERNAL Use hashes rather than explicit violation classes
- BREAKING-INTERNAL Remove translator class, pass CLI args direct to checks
- INTERNAL Wiring in a new check only requires changing one file (#15)
This snippet will convert your YAML exclusions file to the new CLI syntax:
y = YAML.load(File.read('exclusions.yml'))
puts (
y.fetch('abc', []).map {|x| %|--abc-exclude "#{x}"| } +
y.fetch('style', []).map {|x| %|--style-exclude "#{x}"| }
).join("\n")
- Allow files and methods to be whitelisted (#16)
- Show total number of violations in output (#14)
- Remove dependency on tailor. Fewer styles checks are performed, but the three remaining are the only ones I've found useful.
- Gracefully handle files with invalid syntax (#1)
- Included class methods in ABC check (#8)
- Can disable style and doc checks from rake task (#9)
app
added to default globs- Added
cane/rake_task
class << obj
syntax ignore by documentation check- Line length checks no longer include trailing new lines
- Add support for a
.cane
file for setting per-project default options.
- Initial release.