Project

notes

0.02
No commit activity in last 3 years
No release in over 3 years
Stupidly grep tags in source code.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0.8.4
 Project Readme

Notes¶ ↑

<img src=“https://badge.fury.io/rb/notes.png” alt=“Gem Version” /> <img src=“https://travis-ci.org/vivien/notes.png” alt=“Build Status” /> <img src=“https://gemnasium.com/vivien/notes.png” alt=“Dependency Status” /> <img src=“https://codeclimate.com/github/vivien/notes.png” alt=“Code Climate” />

Stupidly grep tags in source code.

This gem provides a command line tool and a Ruby library to find tags in source code. Defaults tags are TODO, FIXME, and XXX. Custom tags can be found as well.

It’s kind of a generic version of the Ruby on Rails rake notes command, for any project/source.

Command line tool¶ ↑

Usage:

$ notes [options] [file...]

With no argument, notes will search recursively in the current directory. For details, see notes --help.

Examples:

$ notes
$ notes foo.h src/
$ notes --tag @@@
$ notes --no-{todo,fixme,xxx} --tag FOO

Integration with Git¶ ↑

A cool thing to do is to add a Git alias to parse every versionned files:

$ git config --global alias.n '!git ls-files | xargs notes'

Now, running git n in any Git repository will search notes in every files under version control!

Convention over configuration¶ ↑

No custom output.

It uses a grep-style display, which makes it easy to fit your needs. cut is great:

$ notes | cut -d: -f3,4-

will display TODO: /* add a cool feature */ instead of the normal output foo.c:42:TODO: /* add a cool feature */.

Notes won’t filter.

find, xargs are your friends:

$ find . -name '*.rb' | xargs notes

Or get the list of tagged files in the current directory with:

$ notes | cut -d: -f1 | sort -u

Installation¶ ↑

Notes is available on Rubygems.org and can be installed with:

$ [sudo] gem install notes

Or you can install from the source directory with:

$ rake install

The Notes library¶ ↑

The Notes module provides convenient methods.

require 'notes'

Notes.scan_file("foo.c") do |note|
  puts "#{note.tag} found at line #{note.line}!"
end

Notes can also extend an object to add a new method (see Notes#notes), or allow you to create your own scanner (see the Notes::Scanner).

For usage example of the library, you can have a look at the really basic Notes plugin for Redmine, at: github.com/vivien/redmine_notes

License¶ ↑

That’s free and friendly for sure! See the LICENSE file.