Skip to content

knut2/todonotes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

todonotes

Define todo- and fixme-command to mark open topics during software development.

Usage:

Add todo and fixme to your code and get track of your todos during runtime of your code.

Productive programms should not use this gem.

When you pass a todo/fixme during execution, you get a logging information.

todo ('message' ) { "temporary result" }
fixme ('message' ) { "temporary result" }

todo and fixme have the same syntax, the sematic meaning is:

  • ToDo: Mark missing code.

  • FixMe: Mark code to repair.

Disadvantage:

  • Does not replace a good IDE to find the ToDo/Fixmes.

This Gem is based on a proposal in forum.ruby-portal.de/viewtopic.php?f=11&t=11957

Example

Think, you have to write a script to count all prime between 1 to 10.

You don’t know how to check for primes, but at least you know, primes must be odd.

So you can start your program:

require 'todonotes'

primecount = 0
for i in 1..10
        if fixme "Calculate if prime, temporary: true for odd numbers" do 
              i.odd?  #tempory: odd = prim
            end
          primecount += 1 
          puts "#{i} is a prime number"
        else
          puts "#{i} is no prime number"
        end
end

todo "Return total number of primes"

Or

require 'todonotes'
class Fixnum
  def prime?
      fixme "Calculate if prime" do 
              self.odd?  #tempory: odd = prim
      end    
  end
end

primecount = 0
for i in 1..10
        if i.prime?
          primecount += 1 
          puts "#{i} is a prime number"
        else
          puts "#{i} is no prime number"
        end
end

todo "Return total number of primes"

Now you get a output like this:

FixMe: todonotes_prim2.rb:12 Calculate if prime misssing (temporary: true)
1 is a prime number
FixMe: todonotes_prim2.rb:12(2) Calculate if prime misssing (temporary: false)
2 is no prime number
FixMe: todonotes_prim2.rb:12(3) Calculate if prime misssing (temporary: true)
...
ToDo : todonotes_prim2.rb:27 Return total number of primes (temporary: nil)

The Todonotes is warning about a wrong or uncompleted code piece.

The ToDo is warning for a missing code piece.

You are informed about source code file and line number. In braces you get the number of calls.

The todo/fixme command evaluates the optional block. The result is returned as a temporary result (in this example: odd numbers are primes.).

Please refer the examples folder for more details.

Logging

The Fixme’s and ToDo’s are reported via a logger (log4r).

The first call of a fixme/todo is a warning, the next call is an information. With this logic you can decide, if you want to see each call or only the first call.

You may change the level with:

Todonotes.logger.level = Log4r::WARN #only first time of a call of a fixme/todo
Todonotes.logger.level = Log4r::INFO   #report all calls of fixme/todo

You can log the fixme/todos to a file:

Todonotes.log2file()

Get Overview

You may print an overview on all fixme/todos:

Todonotes.print_stats()

Example:

List of ToDos/Fixmes:
todonotes_prim.rb:11:   10 calls
todonotes_prim.rb:21:    1 call

There is a fixme/todo in line 11 and 21 in todonotes_prim.rb.

Go productive

Before you go productive with your application you should remove this gem and delete all fixme- and todo-commands.

You may also set

Todonotes::TODONOTES.raise_fixme = true
Todonotes::TODONOTES.raise_todo = true

After this you will get a ImplementationError-Exception if Kernel#fixme or Kernel.todo is called.

About

Support programming by todo and fixme commands

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages