todotask 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+