reap 4.5.2 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,14 +2,14 @@
2
2
 
3
3
  title : Reap
4
4
  name : reap
5
- version : '4.5.2'
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 Bountiful Ruby Project Management Assistant
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
- package:
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
- rubyforge:
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
- include:
54
- - 'A-Z*'
55
- - 'lib/**/*'
56
- exclude:
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
- filemod: 644
74
- dirmod: 755
75
- user: trans
76
- group: users
73
+ # perm: !!perm
74
+ # filemod: 644
75
+ # dirmod: 755
76
+ # user: trans
77
+ # group: users
77
78
 
78
- noop:
79
- message: Hello Dude!
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/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
- rubyforge {
47
- project 'reap'
48
- username 'transami'
49
- }
4
+ task :default => [:tasks]
50
5
 
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' ]
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
-
File without changes
@@ -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
- Sailed right through the 4.4.x series. Now were onto the next with a whole new level of irony ;)
3
- This release features both Rake interoperability and CUSTOM TASKS! Ain't it a woot! Just when it
4
- becomes possible to actually use Reap in place of Rake altogether, you can now use Reap via
5
- Rake as just another set of availble Rake tasks. This baby is blooming!
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.
@@ -1,6 +1,6 @@
1
1
  = Reap
2
2
 
3
- Project Assitant for Ruby
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
- so the template and scaffold commands
42
- may report missing files if you use this
43
- installation method. A fix is in the works,
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 OhSoSimple < Reap::Task
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
- alias_method :ohso, :task
125
+ task_attr :simple
132
126
 
133
127
  def run
134
- ohso.message ||= 'None Found!'
135
- ohso.another ||= 'Again!'
128
+ simple.message ||= 'None Found!'
129
+ simple.another ||= 'Again!'
136
130
 
137
- puts ohso.message + "\n" + ohso.another
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
- ohsosimple:
140
+ simple: !!mysimple
147
141
  another: Your other message here.
148
142
 
149
143
  And to use it
150
144
 
151
- > reap ohsosimple
145
+ > reap simple
152
146
 
153
147
  While Reap had used instance varaibles for task properties in the past,
154
- But has changed as of version 4.3.3. Now it uses the 'task' object,
155
- which can be referenced by any name you like is you alias it.
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 'osho'. This task object
172
- is always available. In the above, 'osho' is just being aliased
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
 
@@ -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
+