reap 6.0.0 → 6.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/note/LATEST ADDED
@@ -0,0 +1,44 @@
1
+
2
+ One hop, a skip and a jump. In just suca a fashion we're on to
3
+ the next major veriosn of Reap. Reap 6 has now reached a whole
4
+ new level of elegance and capability. The core of the system has
5
+ been completely rewritten, thanks to lessons learned from the
6
+ previous incarnations and honoring the defacto standard of Rake's
7
+ task definitions, a Reap task is now easily defined like so:
8
+
9
+ module Tasks
10
+
11
+ def footask( name, &data )
12
+
13
+ desc "Describing a foo task"
14
+
15
+ task name do
16
+ data = data.to_openobject
17
+ puts "Doing what a foo task #{data.does}!"
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+
24
+ See the resemblance? Does Reap require Rake? No! Reap has it's
25
+ own task system that work's like Rake's --provided by Facets'
26
+ taskable.rb library. And you can use Reap much like you'd use
27
+ Rake. Indeed, one can resuse Reap's built-in tasks without
28
+ even setting up a ProjectInfo file. In a Reapfile:
29
+
30
+ task_footask 'footask' do |data|
31
+ data.does = 'does'
32
+ end
33
+
34
+ Yep. You can do that. Of course why you would want to forgo
35
+ the beauty of the ProjectInfo file and this gorgeous solution?
36
+
37
+ footask: !!footask
38
+ does: 'does'
39
+
40
+ That's something for your own conscious to wrestle ;)
41
+
42
+ Enjoy,
43
+ T.
44
+
data/note/doap.xml ADDED
@@ -0,0 +1,28 @@
1
+ <Project xmlns="http://usefulinc.com/ns/doap#"
2
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
3
+ xmlns:foaf="http://xmlns.com/foaf/0.1/">
4
+ <name>Reap</name>
5
+ <shortname>reap</shortname>
6
+ <homepage rdf:resource="http://reap.rubyforge.org" />
7
+ <wiki rdf:resource="" />
8
+ <created>2004-04-01</created>
9
+ <shortdesc xml:lang="en">
10
+ The Flexible Ruby Project Management Assistant
11
+ </shortdesc>
12
+ <description xml:lang="en">
13
+ Reap comprises a set of tasks commonly needed by
14
+ Ruby package developers/deployers, such as
15
+ testing, packaging, releasing, etc. You can also
16
+ use Reap to create your own custom tasks. Reap
17
+ utilizes a YAML configuration file to harvest
18
+ common project information, significantly
19
+ simplifying these chores.
20
+ </description>
21
+ <maintainer>
22
+ <foaf:Person>
23
+ <foaf:name>Thomas Sawyer</foaf:name>
24
+ <foaf:email>transfire@gmail.com</foaf:name>
25
+ <foaf:homepage rdf:resource="http://reap.rubyforge.org" />
26
+ </foaf:Person>
27
+ </maintainer>
28
+ </Project>
@@ -0,0 +1,308 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ PKG_TITLE = 'WhiteCloth'
4
+ PKG_NAME = 'whitecloth'
5
+ PKG_VERSION = '1'
6
+ PKG_AUTHOR = 'Thomas Sawyer'
7
+ PKG_EMAIL = 'transami@runbox.com'
8
+ PKG_SUMMARY = 'WhiteCloth is an implementation of ArtML'
9
+ PKG_DESCRIPTION = 'WhiteCloth is a Ruby implementation of ArtML'
10
+
11
+ # site info
12
+ # remark out if you don't need
13
+ PKG_HOMEPAGE = 'http://whitecloth.rubyforge.org'
14
+ PKG_RUBYFORGE_PROJECT = 'whitecloth'
15
+ PKG_RUBYFORGE_PASS = nil
16
+
17
+ # all package files
18
+ PKG_FILES = [ 'lib/**/*', 'test/**/*', 'samples/**/*', 'doc/**/*', '[A-Z]*', 'Rakefile' ]
19
+
20
+ # rdoc
21
+ RDOC_TITLE = PKG_TITLE
22
+ RDOC_DIR = 'doc'
23
+ RDOC_TEMPLATE = 'kilmer'
24
+ RDOC_OPTIONS = ''
25
+ RDOC_INCLUDE = [ 'VERSION', 'README', 'CHANGELOG', 'TODO', 'COPYING', 'lib/**/*.rb', 'bin/**/*.rb' ]
26
+ RDOC_EXCLUDE = []
27
+
28
+ # include in distribution
29
+ PKG_DIST_DIRS = [ 'bin', 'lib', 'test', 'samples' ]
30
+ PKG_DIST_FILES = [ 'README', 'TODO', 'CHANGELOG', 'VERSION', 'LICENSE', 'Rakefile' ]
31
+
32
+ # tests
33
+ PKG_TEST_DIR = 'test'
34
+ PKG_TEST_FILES = [ 'test/*_test.rb', 'test/**/*_test.rb' ]
35
+
36
+ =begin
37
+ # library files for manual install
38
+ PKG_LIB_DIR = 'lib'
39
+ PKG_LIB_MKDIRS = '**/*/'
40
+ PKG_LIB_FILES = [ '**/*.rb', '**/*.yaml' ]
41
+ PKG_LIB_DEPRECATE = []
42
+
43
+ # binary files for manual install
44
+ PKG_BIN_DIR = 'bin'
45
+ PKG_BIN_FILES = '**/*'
46
+ PKG_BIN_DEPRECATE = []
47
+ =end
48
+
49
+ #***************************************************************************
50
+ # The PackMule Rakefile v0.1
51
+ # PackMule can run tests, build packages and gems, manually install,
52
+ # generate rdocs, and publish them. CVS support might be added later.
53
+ #
54
+ # In general, layout your project directory as follows:
55
+ # - lib/
56
+ # - lib/#{lib_name}/ if you need a lib dir
57
+ # - bin/
58
+ # - test/
59
+ # - demo/ -or- examples/ -or- samples/
60
+ # - doc/ -and;or- rdoc/
61
+ # The test dir can have subdirs, but tests should be named
62
+ # like '#{name}_test.rb' or 'test_#{name}.rb'.
63
+ #
64
+ # Then use the Rake.yaml config file designed for this form.
65
+ # To get a blank config for this form type:
66
+ # > rake form
67
+ # This will send the form to stdout. There may be a line like
68
+ # "(in ...)" at the beginning, just remove it or remark it.
69
+ #***************************************************************************
70
+
71
+ require 'rake'
72
+ require 'rubygems'
73
+ require 'rake/testtask'
74
+ require 'rake/rdoctask'
75
+ require 'rake/packagetask'
76
+ require 'rake/gempackagetask'
77
+ require 'rake/contrib/rubyforgepublisher'
78
+
79
+ #################################################
80
+ # load config from Rake.yaml and make constants #
81
+ #################################################
82
+ #YAML::load( File.open('Rake.yaml') ).each{|c,v| self.class.const_set(c,v)}
83
+
84
+
85
+ ##
86
+ # = Default Task
87
+ ##
88
+
89
+ desc "Default Task (test)"
90
+ task :default => [ :test ]
91
+
92
+
93
+ ##
94
+ # = Run Unit Tests
95
+ ##
96
+
97
+ Rake::TestTask.new("test") { |t|
98
+ #t.desc "Run all tests"
99
+ t.libs << PKG_TEST_DIR
100
+ PKG_TEST_FILES.each { |pat| t.pattern = pat }
101
+ t.verbose = true
102
+ }
103
+
104
+
105
+ ##
106
+ # = Genereate RDoc Documentation
107
+ ##
108
+
109
+ Rake::RDocTask.new { |rdoc|
110
+ rdoc.rdoc_dir = RDOC_DIR
111
+ rdoc.template = RDOC_TEMPLATE
112
+ rdoc.title = RDOC_TITLE
113
+ rdoc.options << '--line-numbers --inline-source ' + RDOC_OPTIONS
114
+ rdoc.rdoc_files.include(*RDOC_INCLUDE)
115
+ rdoc.rdoc_files.exclude(*RDOC_EXCLUDE)
116
+ rdoc.rdoc_files.delete_if { |f| ! File.exist?(f) }
117
+ }
118
+
119
+
120
+ ##
121
+ # = Publish Documentation
122
+ ##
123
+
124
+ # Publish documentation
125
+ #desc "Publish the API documentation"
126
+ #task :pdoc => [:rdoc] do
127
+ # Rake::SshDirPublisher.new("david@hunter.5th.dk", "sites/rubyonrails.org/ar", "doc").upload
128
+ #end
129
+
130
+ if PKG_RUBYFORGE_PROJECT
131
+ desc "Publish to RubyForge"
132
+ task :rubyforge do
133
+ Rake::RubyForgePublisher.new(PKG_RUBYFORGE_PROJECT, PKG_RUBYFORGE_PASS).upload
134
+ end
135
+ end
136
+
137
+
138
+ ##
139
+ # = Create Compressed Packages
140
+ ##
141
+
142
+ dist_dirs = PKG_DIST_DIRS
143
+
144
+ spec = Gem::Specification.new do |s|
145
+ s.name = PKG_NAME
146
+ s.version = PKG_VERSION
147
+ s.summary = PKG_SUMMARY
148
+ s.description = PKG_DESCRIPTION
149
+
150
+ s.files = PKG_DIST_FILES
151
+ dist_dirs.each do |dir|
152
+ s.files.concat Dir.glob( "#{dir}/**/*" ).delete_if { |item| item.include?( "CVS" ) }
153
+ end
154
+ #s.files.delete "test/fixtures/fixture_database.sqlite"
155
+ s.require_path = 'lib'
156
+ s.autorequire = '#{PKG_NAME}'
157
+ s.has_rdoc = true
158
+ s.author = PKG_AUTHOR
159
+ s.email = PKG_EMAIL
160
+ s.homepage = PKG_HOMEPAGE if PKG_HOMEPAGE
161
+ s.rubyforge_project = PKG_RUBYFORGE_PROJECT if PKG_RUBYFORGE_PROJECT
162
+ end
163
+
164
+ Rake::GemPackageTask.new(spec) do |p|
165
+ p.gem_spec = spec
166
+ p.need_tar = true
167
+ p.need_zip = true
168
+ end
169
+
170
+
171
+ ##
172
+ # = Line Count
173
+ ##
174
+
175
+ desc "Line Count"
176
+ task :lines do
177
+ lines = 0
178
+ codelines = 0
179
+ Dir.foreach("lib/#{PKG_NAME}") { |file_name|
180
+ next unless file_name =~ /.*rb/
181
+
182
+ f = File.open("lib/#{PKG_NAME}/" + file_name)
183
+
184
+ while line = f.gets
185
+ lines += 1
186
+ next if line =~ /^\s*$/
187
+ next if line =~ /^\s*#/
188
+ codelines += 1
189
+ end
190
+ }
191
+ puts "Lines #{lines}, LOC #{codelines}"
192
+ end
193
+
194
+
195
+ =begin
196
+ ##
197
+ # = Manual Install
198
+ ##
199
+
200
+ desc "Manual Installation"
201
+ task :install do
202
+
203
+ # install
204
+ # this was adapted from active record's install.rb
205
+ # by way of rdoc's install.rb
206
+ # by way of Log4r's install.rb
207
+ # with some modifications from ruby-gems' install.rb ;)
208
+
209
+ require 'rbconfig'
210
+ require 'find'
211
+ require 'ftools'
212
+ require 'fileutils'
213
+
214
+ include Config
215
+
216
+ #$sitedir = CONFIG["sitelibdir"]
217
+ #unless $sitedir
218
+ # version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"]
219
+ # $libdir = File.join(CONFIG["libdir"], "ruby", version)
220
+ #
221
+ # $sitedir = $:.find {|x| x =~ /site_ruby/ }
222
+ # if !$sitedir
223
+ # $sitedir = File.join($libdir, "site_ruby")
224
+ # elsif $sitedir !~ Regexp.quote(version)
225
+ # $sitedir = File.join($sitedir, version)
226
+ # end
227
+ #end
228
+
229
+ $srcdir = CONFIG["srcdir"]
230
+ $version = CONFIG["MAJOR"]+"."+CONFIG["MINOR"]
231
+ $libdir = File.join(CONFIG["libdir"], "ruby", $version)
232
+ $bindir = CONFIG['bindir']
233
+ $archdir = File.join($libdir, CONFIG["arch"])
234
+ $sitedir = CONFIG["sitelibdir"]
235
+ if !$sitedir
236
+ $sitedir = $:.find {|x| x =~ /site_ruby$/}
237
+ if !$sitedir
238
+ $sitedir = File.join($libdir, "site_ruby")
239
+ elsif $sitedir !~ Regexp.new(Regexp.quote($version))
240
+ $sitedir = File.join($site_libdir, $version)
241
+ end
242
+ end
243
+
244
+ # get current dir
245
+ current_dir = Dir.pwd
246
+
247
+ ### install lib files
248
+
249
+ if FileTest.directory?(PKG_LIB_DIR)
250
+
251
+ # change dir to package lib dir
252
+ Dir.chdir(PKG_LIB_DIR)
253
+
254
+ # make lib dirs in ruby sitelibdir
255
+ makedirs = FileList[*PKG_LIB_MKDIRS].to_a
256
+ makedirs.each {|f| File::makedirs( File.join( $sitedir, *f.split(/\//) ) ) }
257
+
258
+ # deprecated files that should be removed
259
+ deprecated = FileList[*PKG_LIB_DEPRECATE].to_a
260
+
261
+ # files to install in library path
262
+ files = FileList[*PKG_LIB_FILES].to_a
263
+
264
+ # the actual gruntwork
265
+ File::safe_unlink *deprecated.collect{|f| File.join($sitedir, f.split(/\//))}
266
+ files.each do |f|
267
+ File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true)
268
+ end
269
+
270
+ # change dir back
271
+ Dir.chdir(current_dir)
272
+
273
+ end
274
+
275
+ ### install bin files
276
+
277
+ if FileTest.directory?(PKG_BIN_DIR)
278
+
279
+ # change dir to package bin dir
280
+ Dir.chdir(PKG_BIN_DIR)
281
+
282
+ is_windows_platform = CONFIG["arch"] =~ /dos|win32/i
283
+
284
+ # files to install in bin path
285
+ files = FileList[*PKG_BIN_FILES].to_a
286
+
287
+ # deprecated files that should be removed
288
+ deprecated = FileList[*PKG_BIN_DEPRECATE].to_a
289
+
290
+ # the actual gruntwork
291
+ File::safe_unlink *deprecated.collect{|f| File.join($bindir, f.split(/\//))}
292
+ files.each do |f|
293
+ target = File.join($bindir, *f.split(/\//))
294
+ File::install(f, target, 0755, true)
295
+ if is_windows_platform
296
+ File.open("#{target}.cmd", "w") do |file|
297
+ file.puts "@ruby #{target} %1 %2 %3 %4 %5 %6 %7 %8 %9"
298
+ end
299
+ end
300
+ end
301
+
302
+ # change dir back
303
+ Dir.chdir(current_dir)
304
+
305
+ end
306
+ =end
307
+
308
+ end
@@ -0,0 +1,80 @@
1
+ <pre id="example" style="font-size: .9em; line-height: 1.1em;">
2
+
3
+ --- %YAML:1.0
4
+
5
+ title : Reap
6
+ name : reap
7
+ version : 6.0.0
8
+ status : 'beta'
9
+
10
+ author : Thomas Sawyer
11
+ created : '2004-04-01'
12
+ email : transfirz@zmail.com
13
+ homepage : "http://reap.rubyforge.org"
14
+
15
+ summary : A Ruby Project Management Assistant
16
+
17
+ description: >
18
+ Reap comprises a set of tasks commonly needed by
19
+ Ruby package developers/deployers, such as testing,
20
+ packaging, releasing, etc. You can also use Reap
21
+ to create your own custom tasks. Reap utilizes a
22
+ YAML configuration file to harvest common project
23
+ information, significantly simplifying these chores.
24
+
25
+ rubyforge:
26
+ project : reap
27
+ username : transami
28
+
29
+ install: !!installer
30
+ template: |
31
+ bin bin * .
32
+ lib lib/reap **/* $name/$version
33
+
34
+ package: !!package
35
+ distribute : [ tar.bz2, gem, deb ]
36
+ dependencies : [ facets ]
37
+ executables : [ reap, rubytest ]
38
+ dir: '../DISTRIBUTION'
39
+ exclude:
40
+ - dist
41
+ - dev
42
+ - scrap
43
+ - web
44
+
45
+ release: !!release
46
+ host : rubyforge.org
47
+ username : transami
48
+ project : reap
49
+ groupid : 811
50
+ package : Reap
51
+ dir : '../DISTRIBUTION'
52
+
53
+ publish: !!publish
54
+ target : rubyforge
55
+ type : web
56
+ host : rubyforge.org
57
+ username : transami
58
+ dir : web
59
+
60
+ rdoc: !!rdoc
61
+ dir: 'web/doc/api'
62
+ main: README
63
+
64
+ announce: !!announce
65
+ to : ruby-talk@ruby-lang.org
66
+ from : &amp;email transfirz@zmail.com
67
+ domain : unit.rubyforge.org
68
+ server : smtp.gmail.com
69
+ port : 587
70
+ account : *email
71
+ type : login # cram_md5, plain
72
+ security : tls # ~, tls, ssl (not working yet)
73
+ file : doc/LATEST # file contains announcement
74
+ slogan : REAP THE REWARDS!
75
+ links : []
76
+
77
+ doap: !!doap
78
+ dir: doc
79
+
80
+ </pre>
Binary file