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.
- data/lib/todotask.rb +44 -0
- data/lib/todotask/version.rb +4 -0
- metadata +47 -0
data/lib/todotask.rb
ADDED
@@ -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
|
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
|
+
|