Project

todo_lint

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
todo_lint can be integrated into a continuous integration workflow to keep todo comments from becoming stagnant over time. Just annotate the comment with a date, and if that date has passed, your build will fail, and you'll be reminded to snooze the todo a little later, or finally address it.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.10

Runtime

~> 2.0.0
 Project Readme

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.