todotask 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/todotask.rb +44 -0
  2. data/lib/todotask/version.rb +4 -0
  3. metadata +47 -0
@@ -0,0 +1,44 @@
1
+
2
+ require 'rake'
3
+ require 'rake/tasklib'
4
+
5
+ class ToDoTask < Rake::TaskLib
6
+ attr_accessor :name
7
+
8
+ attr_accessor :todo_files
9
+
10
+ def initialize(name = :todo)
11
+ @name = name
12
+ @todo_files = FileList['lib/**/*.rb', 'test/**/*.rb']
13
+
14
+ yield self if block_given?
15
+
16
+ desc 'Generate a ToDo list from the source files'
17
+ task @name do
18
+ items = Hash.new
19
+
20
+ @todo_files.each do |file|
21
+ lineno = 0
22
+ list = File.readlines(file).inject([]) do |list, line|
23
+ lineno += 1
24
+ next list unless line =~ /#\s*TODO:?\s+(.*)/i
25
+ list << @@item.new(file, lineno, $1)
26
+ end
27
+
28
+ items[file] = list unless list.empty?
29
+ end
30
+
31
+ items.each do |file, list|
32
+ puts "\n#{file}:"
33
+ list.each do |item|
34
+ puts " * %03d: %s" % [item.lineno, item.text]
35
+ end
36
+ end
37
+
38
+ total = items.inject(0){|total, (file, list)| total + list.size }
39
+ puts "\n\nToDo items: #{total}"
40
+ end
41
+ end
42
+
43
+ @@item = Struct.new(:filename, :lineno, :text)
44
+ end
@@ -0,0 +1,4 @@
1
+
2
+ class ToDoTask
3
+ VERSION = '0.0.3'
4
+ end
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.2
3
+ specification_version: 1
4
+ name: todotask
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.0.3
7
+ date: 2007-04-02 00:00:00 +02:00
8
+ summary: A Rake task for generating a ToDo list
9
+ require_paths:
10
+ - lib
11
+ email:
12
+ homepage:
13
+ rubyforge_project:
14
+ description:
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors:
30
+ - Daniel Schierbeck
31
+ files:
32
+ - lib/todotask.rb
33
+ - lib/todotask/version.rb
34
+ test_files: []
35
+
36
+ rdoc_options: []
37
+
38
+ extra_rdoc_files: []
39
+
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ requirements: []
45
+
46
+ dependencies: []
47
+