todo_lint

Build Status

Sometimes TODO comments stagnate over time and you forget about them. It would be great if you could snooze them, Mailbox-style, and be reminded about them again later.

Installation

Add this line to your application's Gemfile:

gem 'todo_lint'

And then execute:

$ bundle

Or install it yourself as:

$ gem install todo_lint

Usage

Add this to your continuous integration list of commands in your .travis.yml or circle.yml:

bundle exec todo_lint

If you have a bunch of TODO comments in your code, your next build will fail.

Go through your TODO comments, and change from:

# TODO: refactor into multiple classes

to:

# TODO(2043-11-05): refactor into multiple classes

Now your build will pass. Until November, 2043.

Alternative usage as todo_list generator

If you'd like a summary of all of the todos, instead run:

bundle exec todo_lint --report

Configuration

Create a .todo_lint.yml file in your main repo

Exclude Files:
  - vendor/**

Options include "Include Files:", "Exclude Files:", and "Extensions:"

If no extensions are specified, todo_lint will check all .rb files by default.

If you include files, todo_lint will only read those files.

The config file will exclude/include files starting from the directory where the config file is located

You may also configure your use of todo_lint from the command line:

$ todo_lint -i .rb,.coffee,.js
Command flag Description
-c/--config [FILE] Load the specified config file
-e/--exclude [FILES] Exclude the specified files
-i/--include [EXTS] Only look at specified extensions
-r/--report Print a sorted todo list instead of linting

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/maxjacobson/todo_lint. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.