reap 4.5.2 → 5.0.0
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/ProjectInfo +34 -24
- data/Rakefile +5 -113
- data/{COPYING → doc/COPYING} +0 -0
- data/doc/ChangeLog +17 -0
- data/doc/LATEST +24 -4
- data/{README → doc/README} +17 -23
- data/doc/note/Rakefile.0 +118 -0
- data/doc/note/application.rb +124 -0
- data/doc/note/intro.txt +42 -0
- data/{package.rb → doc/note/package.rb} +0 -0
- data/lib/reap/app.rb +74 -0
- data/lib/reap/bin/reap.rb +40 -76
- data/lib/reap/projectinfo.rb +20 -52
- data/lib/reap/rake.rb +12 -0
- data/lib/reap/reap.rb +4 -1
- data/lib/reap/task.rb +51 -81
- data/lib/reap/task/announce.rb +1 -1
- data/lib/reap/task/custom.rb +12 -0
- data/lib/reap/task/doap.rb +2 -2
- data/lib/reap/task/extest.rb +1 -1
- data/lib/reap/task/fileperm.rb +1 -3
- data/lib/reap/task/info.rb +1 -1
- data/lib/reap/task/install.rb +3 -4
- data/lib/reap/task/manifest.rb +1 -3
- data/lib/reap/task/package.rb +10 -8
- data/lib/reap/task/publish.rb +1 -1
- data/lib/reap/task/rdoc.rb +3 -5
- data/lib/reap/task/release.rb +1 -1
- data/lib/reap/task/scaffold.rb +1 -1
- data/lib/reap/task/template.rb +3 -1
- data/lib/reap/task/test.rb +1 -3
- data/task/noop.rb +1 -2
- metadata +12 -6
data/ProjectInfo
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
title : Reap
|
4
4
|
name : reap
|
5
|
-
version : '
|
6
|
-
created : '2004-04-01'
|
5
|
+
version : '5.0.0'
|
7
6
|
status : 'beta/stable'
|
7
|
+
created : '2004-04-01'
|
8
8
|
|
9
9
|
author : Thomas Sawyer
|
10
10
|
email : &email transfire@gmail.com
|
11
11
|
homepage : "http://reap.rubyforge.org"
|
12
|
-
summary : The
|
12
|
+
summary : The Flexible Ruby Project Management Assistant
|
13
13
|
|
14
14
|
description: >
|
15
15
|
Reap comprises a set of tasks commonly need ber Ruby package
|
@@ -18,7 +18,13 @@ description: >
|
|
18
18
|
Reap utilizes a YAML configuration file to harvest project
|
19
19
|
information, significantly simplifying these chores.
|
20
20
|
|
21
|
-
|
21
|
+
rubyforge:
|
22
|
+
project : reap
|
23
|
+
username : transami
|
24
|
+
|
25
|
+
install: !!install
|
26
|
+
|
27
|
+
package: !!package
|
22
28
|
distribute : [ gem, tar.bz2 ] # zip, tar.gz, tbz, tgz, gem, deb
|
23
29
|
dependencies : [ facets ]
|
24
30
|
executables : [ reap, rubytest ]
|
@@ -29,11 +35,7 @@ package:
|
|
29
35
|
- scrap
|
30
36
|
- web
|
31
37
|
|
32
|
-
|
33
|
-
project : reap
|
34
|
-
username : transami
|
35
|
-
|
36
|
-
release:
|
38
|
+
release: !!release
|
37
39
|
host : rubyforge.org
|
38
40
|
username : transami
|
39
41
|
project : reap
|
@@ -41,22 +43,21 @@ release:
|
|
41
43
|
package : Reap
|
42
44
|
dir : '../DISTRIBUTION'
|
43
45
|
|
44
|
-
publish:
|
46
|
+
publish: !!publish
|
45
47
|
target : rubyforge
|
46
48
|
type : web
|
47
49
|
host : rubyforge.org
|
48
50
|
username : transami
|
49
51
|
dir : web
|
50
52
|
|
51
|
-
rdoc:
|
53
|
+
rdoc: !!rdoc
|
52
54
|
dir: 'web/doc/api'
|
53
|
-
|
54
|
-
|
55
|
-
- '
|
56
|
-
|
57
|
-
- 'lib/reap/data'
|
55
|
+
main: 'doc/README'
|
56
|
+
# include:
|
57
|
+
# - 'A-Z*'
|
58
|
+
# - 'lib/**/*'
|
58
59
|
|
59
|
-
announce:
|
60
|
+
announce: !!announce
|
60
61
|
to : transfire@gmail.com # ruby-talk@ruby-lang.org
|
61
62
|
from : *email
|
62
63
|
domain : unit.rubyforge.org
|
@@ -69,12 +70,21 @@ announce:
|
|
69
70
|
slogan : REAP THE REWARDS!
|
70
71
|
links : []
|
71
72
|
|
72
|
-
perm:
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
73
|
+
# perm: !!perm
|
74
|
+
# filemod: 644
|
75
|
+
# dirmod: 755
|
76
|
+
# user: trans
|
77
|
+
# group: users
|
77
78
|
|
78
|
-
noop
|
79
|
-
|
79
|
+
# noop1: !!noop
|
80
|
+
# message: Hello Dude!
|
81
|
+
#
|
82
|
+
# noop2: !!noop
|
83
|
+
# desc: Alternate description for a task
|
84
|
+
# message: Hello Baby!
|
85
|
+
#
|
86
|
+
# mytask: !!custom
|
87
|
+
# desc: This is a test of a cutom task.
|
88
|
+
# task:
|
89
|
+
# puts "Hello Moto!"
|
80
90
|
|
data/Rakefile
CHANGED
@@ -1,118 +1,10 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
1
|
require 'rake'
|
4
|
-
require 'reap/
|
5
|
-
|
6
|
-
# Load the project information file from standard location.
|
7
|
-
# (Note that this sets the global variable $PROJECT_INFO.)
|
8
|
-
|
9
|
-
ProjectInfo.load
|
10
|
-
|
11
|
-
# If one wished this could do the following
|
12
|
-
# instead of using an exteranl file.
|
13
|
-
|
14
|
-
=begin
|
15
|
-
ProjectInfo.new do
|
16
|
-
|
17
|
-
title 'Reap'
|
18
|
-
name 'reap'
|
19
|
-
version '4.3.4'
|
20
|
-
date '2006-04-07'
|
21
|
-
created '2004-04-01'
|
22
|
-
status 'beta/stable'
|
23
|
-
|
24
|
-
author 'Thomas Sawyer'
|
25
|
-
email 'transfire@gmail.com'
|
26
|
-
homepage 'http://reap.rubyforge.org'
|
27
|
-
summary 'Tools for Ruby project testing, management and assistance.'
|
28
|
-
|
29
|
-
description %{
|
30
|
-
Reap comprises a set of commonly needed tools for Ruby package
|
31
|
-
developers/deployers. Because of the commonality,
|
32
|
-
Reap utilizes a YAML configuration file to harvest project
|
33
|
-
information, significantly simplifying usage.
|
34
|
-
}
|
35
|
-
|
36
|
-
distribute [ 'gem', 'deb', 'zip' ] # zip, tar.gz, tbz, tgz, deb
|
37
|
-
dependencies [ 'facets' ]
|
38
|
-
executables [ 'reap' ]
|
39
|
-
|
40
|
-
package {
|
41
|
-
dir '../DISTRIBUTION'
|
42
|
-
distribute [ 'deb' ]
|
43
|
-
exclude [ 'dist', 'dev', 'scrap', 'web' ]
|
44
|
-
}
|
2
|
+
require 'reap/rake'
|
45
3
|
|
46
|
-
|
47
|
-
project 'reap'
|
48
|
-
username 'transami'
|
49
|
-
}
|
4
|
+
task :default => [:tasks]
|
50
5
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
project 'reap'
|
55
|
-
groupid '811'
|
56
|
-
package 'Reap'
|
57
|
-
dir '../DISTRIBUTION'
|
58
|
-
}
|
59
|
-
|
60
|
-
publish {
|
61
|
-
type 'web'
|
62
|
-
host 'rubyforge.org'
|
63
|
-
username 'transami'
|
64
|
-
dir 'web'
|
65
|
-
}
|
66
|
-
|
67
|
-
rdoc {
|
68
|
-
dir 'web/doc/api'
|
69
|
-
include [ 'A-Z*', 'lib/**/*' ]
|
70
|
-
exclude [ 'lib/reap/data' ]
|
71
|
-
}
|
72
|
-
|
73
|
-
announce {
|
74
|
-
to 'transfire@gmail.com' # ruby-talk@ruby-lang.org
|
75
|
-
from 'transfire@gmail.com'
|
76
|
-
domain 'unit.rubyforge.org'
|
77
|
-
server 'smtp.gmail.com'
|
78
|
-
port '587'
|
79
|
-
account 'transfire@gmail.com'
|
80
|
-
type 'login' # cram_md5, plain
|
81
|
-
security 'tls' # ~, tls, ssl (not working yet)
|
82
|
-
#file 'ANN' # which file contains announcement
|
83
|
-
slogan 'REAP THE REWARDS!'
|
84
|
-
links []
|
85
|
-
}
|
86
|
-
|
87
|
-
end
|
88
|
-
=end
|
89
|
-
|
90
|
-
# Here's an exmaple of a task where the parameters
|
91
|
-
# are set progamatically, like a regular Rake task
|
92
|
-
# --instead of being pulled from the project info data.
|
93
|
-
# Even so, the task can still look to the project info's
|
94
|
-
# master (ie. root) level for any missing information.
|
95
|
-
|
96
|
-
Rake::ReapPackage.new do |pkg|
|
97
|
-
pkg.dir = '../DISTRIBUTION'
|
98
|
-
pkg.distribute = [ 'tar.bz2', 'gem', 'deb' ]
|
99
|
-
pkg.dependencies [ 'facets' ]
|
100
|
-
pkg.executables [ 'reap' ]
|
101
|
-
pkg.exclude = [ 'dist', 'dev', 'scrap', 'web' ]
|
6
|
+
task :tasks do
|
7
|
+
Rake.application.options.show_task_pattern = //
|
8
|
+
Rake.application.display_tasks_and_comments
|
102
9
|
end
|
103
10
|
|
104
|
-
# The easy way -- just setup the tasks to pull info
|
105
|
-
# from the project information data/file.
|
106
|
-
|
107
|
-
Rake::ReapAnnounce.new
|
108
|
-
Rake::ReapExTest.new
|
109
|
-
Rake::ReapTest.new
|
110
|
-
Rake::ReapInstall.new
|
111
|
-
Rake::ReapRelease.new
|
112
|
-
Rake::ReapInfo.new
|
113
|
-
Rake::ReapRDoc.new
|
114
|
-
Rake::ReapDoap.new
|
115
|
-
Rake::ReapPublish.new
|
116
|
-
Rake::ReapManifest.new
|
117
|
-
|
118
|
-
|
data/{COPYING → doc/COPYING}
RENAMED
File without changes
|
data/doc/ChangeLog
CHANGED
@@ -1 +1,18 @@
|
|
1
1
|
= Reap ChangeLog
|
2
|
+
|
3
|
+
5.0.0:
|
4
|
+
- New task mechinism uses YAML types to define the type
|
5
|
+
of task. This also allows for basic custom tasks
|
6
|
+
to be added directly to the ProjectInfo file.
|
7
|
+
- The new system also elgantly interfaces with Rake.
|
8
|
+
So if you are a dedicated Rake user, you only need
|
9
|
+
to use 'require reap/rake' in your Rakefile and
|
10
|
+
all the tasks entries in the ProjectInfo file
|
11
|
+
will be available via rake.
|
12
|
+
- New task mechinism now allows for custom named tasks.
|
13
|
+
While this has the downside lack of name standardization
|
14
|
+
for task types, we will strongly promote the convention
|
15
|
+
of standard names to minimize this.
|
16
|
+
- Reinstated use of task_attr for definin alternate name
|
17
|
+
for accessing inheritable task properties.
|
18
|
+
|
data/doc/LATEST
CHANGED
@@ -1,8 +1,28 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
And just like that *snap* we arrive at version 5.0. Why a major version change? Becuase Reap tasks now have new "formulary". They are defined as true blue YAML types. This means you can even name a Reap task anything you like (although we strongly encourage sticking to the conventional names unless
|
3
|
+
otherwise neccessary). Here's an example from Facets' own ProjecInfo file:
|
4
|
+
|
5
|
+
rdoc-core: !!rdoc
|
6
|
+
dir: web/doc/api/core
|
7
|
+
template: jamis
|
8
|
+
options: ['--all', '--inline-source']
|
9
|
+
include:
|
10
|
+
- 'lib/facets/core/**/*'
|
11
|
+
- '[A-Z]*'
|
12
|
+
|
13
|
+
rdoc-more: !!rdoc
|
14
|
+
dir: web/doc/api/more
|
15
|
+
template: jamis
|
16
|
+
options: ['--all', '--inline-source']
|
17
|
+
include:
|
18
|
+
- 'lib/facets/more/**/*'
|
19
|
+
- '[A-Z]*'
|
20
|
+
|
21
|
+
With this release we have also tightened Rake inter-operability. Simply place
|
22
|
+
|
23
|
+
require 'reap/rake'
|
24
|
+
|
25
|
+
in you Rakefile and all tasks defined in the ProjectInfo file will be available via the rake command.
|
6
26
|
|
7
27
|
Enjoy,
|
8
28
|
T.
|
data/{README → doc/README}
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Reap
|
2
2
|
|
3
|
-
Project
|
3
|
+
Project Assistant for Ruby
|
4
4
|
|
5
5
|
|
6
6
|
== What's This Then?
|
@@ -37,12 +37,10 @@ Install the ruby gem as you would any other:
|
|
37
37
|
|
38
38
|
<tt>gem install reap</tt>
|
39
39
|
|
40
|
-
Gems still suffers from the datadir problem,
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
but for the moment it is better to use the
|
45
|
-
manual install.
|
40
|
+
Gems still suffers from the datadir problem, so we've had
|
41
|
+
to create some work arounds, for the template and scaffold
|
42
|
+
tasks in particular. If you have any trouble with the Gem
|
43
|
+
install please let us know so we can correct.
|
46
44
|
|
47
45
|
=== Manual Install
|
48
46
|
|
@@ -116,25 +114,21 @@ whole class.
|
|
116
114
|
|
117
115
|
Here's an "oh so simple" example:
|
118
116
|
|
119
|
-
class
|
117
|
+
class MySimple < Reap::Task
|
120
118
|
|
121
|
-
task_desc 'This is a custom reap task'
|
119
|
+
task_desc 'This is a custom reap task class.'
|
122
120
|
|
123
121
|
task_help %{
|
124
|
-
|
125
|
-
reap ohsosimple
|
126
|
-
|
127
122
|
This is help information for a custom reap task.
|
128
|
-
|
129
123
|
}
|
130
124
|
|
131
|
-
|
125
|
+
task_attr :simple
|
132
126
|
|
133
127
|
def run
|
134
|
-
|
135
|
-
|
128
|
+
simple.message ||= 'None Found!'
|
129
|
+
simple.another ||= 'Again!'
|
136
130
|
|
137
|
-
puts
|
131
|
+
puts simple.message + "\n" + simple.another
|
138
132
|
end
|
139
133
|
|
140
134
|
end
|
@@ -143,16 +137,16 @@ The corresponding settings in the ProjectInfo file (master) will then be:
|
|
143
137
|
|
144
138
|
message: Default text, if any.
|
145
139
|
|
146
|
-
|
140
|
+
simple: !!mysimple
|
147
141
|
another: Your other message here.
|
148
142
|
|
149
143
|
And to use it
|
150
144
|
|
151
|
-
> reap
|
145
|
+
> reap simple
|
152
146
|
|
153
147
|
While Reap had used instance varaibles for task properties in the past,
|
154
|
-
|
155
|
-
which can be referenced by any name you like
|
148
|
+
this has changed as of version 4.3.3. Now it uses the 'task' object,
|
149
|
+
which can be referenced by any name you like using task_attr to alias it.
|
156
150
|
The nice thing about using this interface instead of instance
|
157
151
|
variables is that reap will automatically search the
|
158
152
|
ProjectInfo's root if the property is not found in the task
|
@@ -168,8 +162,8 @@ section property in the run method. Eg.
|
|
168
162
|
...
|
169
163
|
end
|
170
164
|
|
171
|
-
Notice we used 'task' here rather than '
|
172
|
-
is always available. In the above, '
|
165
|
+
Notice we used 'task' here rather than 'simple'. This task object
|
166
|
+
is always available. In the above, 'simple' is just being aliased
|
173
167
|
to 'task' for readability convenience. Both refer to the same
|
174
168
|
underlying object.
|
175
169
|
|
data/doc/note/Rakefile.0
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rake'
|
4
|
+
require 'reap/reap'
|
5
|
+
|
6
|
+
# Load the project information file from standard location.
|
7
|
+
# (Note that this sets the global variable $PROJECT_INFO.)
|
8
|
+
|
9
|
+
ProjectInfo.load
|
10
|
+
|
11
|
+
# If one wished this could do the following
|
12
|
+
# instead of using an exteranl file.
|
13
|
+
|
14
|
+
=begin
|
15
|
+
ProjectInfo.new do
|
16
|
+
|
17
|
+
title 'Reap'
|
18
|
+
name 'reap'
|
19
|
+
version '4.3.4'
|
20
|
+
date '2006-04-07'
|
21
|
+
created '2004-04-01'
|
22
|
+
status 'beta/stable'
|
23
|
+
|
24
|
+
author 'Thomas Sawyer'
|
25
|
+
email 'transfire@gmail.com'
|
26
|
+
homepage 'http://reap.rubyforge.org'
|
27
|
+
summary 'Tools for Ruby project testing, management and assistance.'
|
28
|
+
|
29
|
+
description %{
|
30
|
+
Reap comprises a set of commonly needed tools for Ruby package
|
31
|
+
developers/deployers. Because of the commonality,
|
32
|
+
Reap utilizes a YAML configuration file to harvest project
|
33
|
+
information, significantly simplifying usage.
|
34
|
+
}
|
35
|
+
|
36
|
+
distribute [ 'gem', 'deb', 'zip' ] # zip, tar.gz, tbz, tgz, deb
|
37
|
+
dependencies [ 'facets' ]
|
38
|
+
executables [ 'reap' ]
|
39
|
+
|
40
|
+
package {
|
41
|
+
dir '../DISTRIBUTION'
|
42
|
+
distribute [ 'deb' ]
|
43
|
+
exclude [ 'dist', 'dev', 'scrap', 'web' ]
|
44
|
+
}
|
45
|
+
|
46
|
+
rubyforge {
|
47
|
+
project 'reap'
|
48
|
+
username 'transami'
|
49
|
+
}
|
50
|
+
|
51
|
+
release {
|
52
|
+
host 'rubyforge.org'
|
53
|
+
username 'transami'
|
54
|
+
project 'reap'
|
55
|
+
groupid '811'
|
56
|
+
package 'Reap'
|
57
|
+
dir '../DISTRIBUTION'
|
58
|
+
}
|
59
|
+
|
60
|
+
publish {
|
61
|
+
type 'web'
|
62
|
+
host 'rubyforge.org'
|
63
|
+
username 'transami'
|
64
|
+
dir 'web'
|
65
|
+
}
|
66
|
+
|
67
|
+
rdoc {
|
68
|
+
dir 'web/doc/api'
|
69
|
+
include [ 'A-Z*', 'lib/**/*' ]
|
70
|
+
exclude [ 'lib/reap/data' ]
|
71
|
+
}
|
72
|
+
|
73
|
+
announce {
|
74
|
+
to 'transfire@gmail.com' # ruby-talk@ruby-lang.org
|
75
|
+
from 'transfire@gmail.com'
|
76
|
+
domain 'unit.rubyforge.org'
|
77
|
+
server 'smtp.gmail.com'
|
78
|
+
port '587'
|
79
|
+
account 'transfire@gmail.com'
|
80
|
+
type 'login' # cram_md5, plain
|
81
|
+
security 'tls' # ~, tls, ssl (not working yet)
|
82
|
+
#file 'ANN' # which file contains announcement
|
83
|
+
slogan 'REAP THE REWARDS!'
|
84
|
+
links []
|
85
|
+
}
|
86
|
+
|
87
|
+
end
|
88
|
+
=end
|
89
|
+
|
90
|
+
# Here's an exmaple of a task where the parameters
|
91
|
+
# are set progamatically, like a regular Rake task
|
92
|
+
# --instead of being pulled from the project info data.
|
93
|
+
# Even so, the task can still look to the project info's
|
94
|
+
# master (ie. root) level for any missing information.
|
95
|
+
|
96
|
+
Rake::ReapPackage.new do |pkg|
|
97
|
+
pkg.dir = '../DISTRIBUTION'
|
98
|
+
pkg.distribute = [ 'tar.bz2', 'gem', 'deb' ]
|
99
|
+
pkg.dependencies [ 'facets' ]
|
100
|
+
pkg.executables [ 'reap' ]
|
101
|
+
pkg.exclude = [ 'dist', 'dev', 'scrap', 'web' ]
|
102
|
+
end
|
103
|
+
|
104
|
+
# The easy way -- just setup the tasks to pull info
|
105
|
+
# from the project information data/file.
|
106
|
+
|
107
|
+
Rake::ReapAnnounce.new
|
108
|
+
Rake::ReapExTest.new
|
109
|
+
Rake::ReapTest.new
|
110
|
+
Rake::ReapInstall.new
|
111
|
+
Rake::ReapRelease.new
|
112
|
+
Rake::ReapInfo.new
|
113
|
+
Rake::ReapRDoc.new
|
114
|
+
Rake::ReapDoap.new
|
115
|
+
Rake::ReapPublish.new
|
116
|
+
Rake::ReapManifest.new
|
117
|
+
|
118
|
+
|