darkfish-rdoc 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +194 -0
- data/LICENSE +27 -0
- data/README +100 -0
- data/Rakefile +238 -0
- data/Rakefile.local +4 -0
- data/lib/darkfish-rdoc.rb +26 -0
- data/lib/rdoc/generator/darkfish.rb +456 -0
- data/rake/dependencies.rb +62 -0
- data/rake/helpers.rb +350 -0
- data/rake/manual.rb +384 -0
- data/rake/packaging.rb +112 -0
- data/rake/publishing.rb +301 -0
- data/rake/rdoc.rb +30 -0
- data/rake/style.rb +62 -0
- data/rake/svn.rb +441 -0
- data/rake/testing.rb +191 -0
- data/rake/verifytask.rb +64 -0
- metadata +86 -0
data/ChangeLog
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
-- Thu, 07 Aug 2008 06:56:40 -0000 by deveiant (r18) -----
|
2
|
+
Added: lib/rdoc/generator/darkfish.rb
|
3
|
+
-> renamed from /trunk/lib/rdoc/generator/darkfish_generator.rb@r16
|
4
|
+
LICENSE (new)
|
5
|
+
project.yml (new)
|
6
|
+
ChangeLog (new)
|
7
|
+
Rakefile.local (new)
|
8
|
+
lib/rdoc/generator/template/darkfish/js/darkfish.js (new) (and 1 other/s)
|
9
|
+
Changed: /trunk
|
10
|
+
lib/rdoc/generator/template/darkfish/classpage.rhtml
|
11
|
+
Rakefile
|
12
|
+
lib/darkfish-rdoc.rb
|
13
|
+
Deleted: lib/rdoc/generator/darkfish_generator.rb
|
14
|
+
|
15
|
+
Integrated new Rake build system.
|
16
|
+
|
17
|
+
|
18
|
+
-- Tue, 29 Jul 2008 14:52:26 -0000 by deveiant (r17) -----
|
19
|
+
Changed: lib/darkfish-rdoc.rb
|
20
|
+
|
21
|
+
Fixed bug in darkfish-rdoc: 'generators' -> 'generator'
|
22
|
+
|
23
|
+
|
24
|
+
-- Mon, 30 Jun 2008 19:06:36 -0000 by deveiant (r16) -----
|
25
|
+
Added: lib/rdoc/generator
|
26
|
+
-> renamed from /trunk/lib/rdoc/generators@r14
|
27
|
+
Changed: Rakefile
|
28
|
+
lib/darkfish-rdoc.rb
|
29
|
+
Deleted: lib/rdoc/generators
|
30
|
+
|
31
|
+
Beginning conversion to Rdoc 2.0. Broken for now; see tags/RDOC_1 for a working
|
32
|
+
RDoc 1.x version.
|
33
|
+
|
34
|
+
|
35
|
+
-- Wed, 21 May 2008 17:08:10 -0000 by deveiant (r14) -----
|
36
|
+
Added: darkfish_preview.png (new)
|
37
|
+
lib/darkfish-rdoc.rb (new)
|
38
|
+
Changed: README
|
39
|
+
/trunk
|
40
|
+
Rakefile
|
41
|
+
lib/rdoc/generators/template/darkfish/js/jquery.js
|
42
|
+
lib/rdoc/generators/template/darkfish/classpage.rhtml
|
43
|
+
lib/rdoc/generators/darkfish_generator.rb (and 2 other/s)
|
44
|
+
|
45
|
+
* Added a `require`-able library that injects the generator into RDoc's known
|
46
|
+
generator hash.
|
47
|
+
* Modified method anchors to be the method name instead of a random number --
|
48
|
+
this will break URLs generated by RDoc, but I'd rather have sensible URLs.
|
49
|
+
* Added a javascript hook that highlights the current page target if there is one.
|
50
|
+
* Updated jQuery to 1.2.4
|
51
|
+
|
52
|
+
|
53
|
+
-- Sat, 03 May 2008 02:56:54 -0000 by deveiant (r13) -----
|
54
|
+
Changed: lib/rdoc/generators/darkfish_generator.rb
|
55
|
+
|
56
|
+
Added some more output path debugging
|
57
|
+
|
58
|
+
|
59
|
+
-- Tue, 18 Mar 2008 15:52:57 -0000 by deveiant (r12) -----
|
60
|
+
Added: lib/rdoc/generators/template/darkfish/classpage.rhtml
|
61
|
+
-> renamed from /trunk/lib/rdoc/generators/template/classpage.rhtml@r10
|
62
|
+
lib/rdoc/generators/template/darkfish/index.rhtml
|
63
|
+
-> renamed from /trunk/lib/rdoc/generators/template/index.rhtml@r10
|
64
|
+
lib/rdoc/generators/template/darkfish (new)
|
65
|
+
lib/rdoc/generators/template/darkfish/filepage.rhtml
|
66
|
+
-> renamed from /trunk/lib/rdoc/generators/template/filepage.rhtml@r10
|
67
|
+
lib/rdoc/generators/template/darkfish/images
|
68
|
+
-> renamed from /trunk/lib/rdoc/generators/template/images@r10
|
69
|
+
lib/rdoc/generators/template/darkfish/js
|
70
|
+
-> renamed from /trunk/lib/rdoc/generators/template/js@r10 (and 2 other/s)
|
71
|
+
Changed: lib/rdoc/generators/darkfish_generator.rb
|
72
|
+
Rakefile
|
73
|
+
misc/rake/svn.rb
|
74
|
+
Deleted: lib/rdoc/generators/template/js
|
75
|
+
lib/rdoc/generators/template/rdoc.css
|
76
|
+
lib/rdoc/generators/template/classpage.rhtml
|
77
|
+
lib/rdoc/generators/template/index.rhtml
|
78
|
+
lib/rdoc/generators/template/filepage.rhtml
|
79
|
+
lib/rdoc/generators/template/images (and 1 other/s)
|
80
|
+
|
81
|
+
* Set up rdoc options to use itself for docs.
|
82
|
+
* Set up sensible package tasks
|
83
|
+
* Made the chatty output of the generator only show up if $DEBUG is turned on.
|
84
|
+
* Moved everything in the `template` directory into a `darkfish` subdirectory for interoperability
|
85
|
+
with other RDoc generators.
|
86
|
+
|
87
|
+
|
88
|
+
-- Mon, 18 Feb 2008 14:33:06 -0000 by deveiant (r11) -----
|
89
|
+
Changed: README
|
90
|
+
lib/rdoc/generators/template/rdoc.css
|
91
|
+
|
92
|
+
* Updated README
|
93
|
+
* Fixed up CSS for the index page.
|
94
|
+
|
95
|
+
|
96
|
+
-- Sat, 16 Feb 2008 08:11:47 -0000 by deveiant (r10) -----
|
97
|
+
Added: README (new)
|
98
|
+
lib/rdoc (new)
|
99
|
+
lib/rdoc/generators/template
|
100
|
+
-> copied from /trunk/generators/template@r9
|
101
|
+
misc/prototype.html
|
102
|
+
-> renamed from /trunk/prototype.html@r8
|
103
|
+
lib (new)
|
104
|
+
lib/rdoc/generators
|
105
|
+
-> renamed from /trunk/generators@r8 (and 3 other/s)
|
106
|
+
Changed: /trunk
|
107
|
+
Rakefile
|
108
|
+
misc/rake/svn.rb
|
109
|
+
Deleted: index-prototype.html
|
110
|
+
misc/rake/verifytask.rb
|
111
|
+
prototype.html
|
112
|
+
generators
|
113
|
+
|
114
|
+
* Added README
|
115
|
+
* Rakefile
|
116
|
+
- Added an dog-food 'rdoc' task
|
117
|
+
- Fixed up the 'install' task
|
118
|
+
* Rearranged directories for easy building/installation.
|
119
|
+
* Put prototype HTML files into misc/
|
120
|
+
|
121
|
+
|
122
|
+
-- Sat, 16 Feb 2008 06:19:51 -0000 by deveiant (r9) -----
|
123
|
+
Added: misc/rake (new)
|
124
|
+
misc/rake/helpers.rb (new)
|
125
|
+
Rakefile (new)
|
126
|
+
misc/rake/svn.rb (new)
|
127
|
+
misc/rake/verifytask.rb (new)
|
128
|
+
misc (new) (and 1 other/s)
|
129
|
+
Changed: generators/template/rdoc.css
|
130
|
+
generators/template/classpage.rhtml
|
131
|
+
generators/darkfish_generator.rb
|
132
|
+
|
133
|
+
Reorganizing for release.
|
134
|
+
|
135
|
+
|
136
|
+
-- Thu, 03 Jan 2008 19:40:24 -0000 by deveiant (r8) -----
|
137
|
+
Changed: generators/template/index.rhtml
|
138
|
+
|
139
|
+
Removed the description bit from the index page -- there's just no way to make it work gracefully.
|
140
|
+
|
141
|
+
|
142
|
+
-- Fri, 19 Oct 2007 01:04:31 -0000 by deveiant (r7) -----
|
143
|
+
Changed: generators/template/rdoc.css
|
144
|
+
generators/template/classpage.rhtml
|
145
|
+
|
146
|
+
Fixes for C source documentation, a few CSS tweaks
|
147
|
+
|
148
|
+
|
149
|
+
-- Thu, 18 Oct 2007 15:15:47 -0000 by deveiant (r6) -----
|
150
|
+
Added: generators/template/images/macFFBgHack.png (new)
|
151
|
+
Changed: generators/template/rdoc.css
|
152
|
+
|
153
|
+
Fixed missing piece of ThickBox for FF on the Mac
|
154
|
+
|
155
|
+
|
156
|
+
-- Fri, 12 Oct 2007 00:20:02 -0000 by deveiant (r5) -----
|
157
|
+
Changed: generators/darkfish_generator.rb
|
158
|
+
|
159
|
+
Add time constants for the time-detla calculations
|
160
|
+
|
161
|
+
|
162
|
+
-- Thu, 11 Oct 2007 21:05:25 -0000 by deveiant (r4) -----
|
163
|
+
Changed: generators/template/rdoc.css
|
164
|
+
generators/darkfish_generator.rb
|
165
|
+
|
166
|
+
* Updated definition lists in the description to not look like ass.
|
167
|
+
* Documentation touchups.
|
168
|
+
|
169
|
+
|
170
|
+
-- Wed, 10 Oct 2007 20:40:20 -0000 by deveiant (r3) -----
|
171
|
+
Changed: generators/darkfish_generator.rb
|
172
|
+
|
173
|
+
Added a Generators::DARKFISHGenerators alias to work around Rdoc's assumption that all formats are acronyms.
|
174
|
+
|
175
|
+
|
176
|
+
-- Wed, 10 Oct 2007 19:33:33 -0000 by deveiant (r2) -----
|
177
|
+
Added: generators/template/images/wrench_orange.png (new)
|
178
|
+
generators/template/images/zoom.png (new)
|
179
|
+
generators/template/js (new)
|
180
|
+
generators/template/images/wrench.png (new)
|
181
|
+
generators/template/rdoc.css (new)
|
182
|
+
generators/template/images/tag_green.png (new) (and 40 other/s)
|
183
|
+
|
184
|
+
Initial commit
|
185
|
+
|
186
|
+
|
187
|
+
-- Wed, 10 Oct 2007 16:31:51 -0000 by deveiant (r1) -----
|
188
|
+
Added: /trunk (new)
|
189
|
+
/branches (new)
|
190
|
+
/tags (new)
|
191
|
+
|
192
|
+
Setting up repository structure
|
193
|
+
|
194
|
+
|
data/LICENSE
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
Copyright (c) 2008, Michael Granger
|
2
|
+
All rights reserved.
|
3
|
+
|
4
|
+
Redistribution and use in source and binary forms, with or without
|
5
|
+
modification, are permitted provided that the following conditions are met:
|
6
|
+
|
7
|
+
* Redistributions of source code must retain the above copyright notice,
|
8
|
+
this list of conditions and the following disclaimer.
|
9
|
+
|
10
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
11
|
+
this list of conditions and the following disclaimer in the documentation
|
12
|
+
and/or other materials provided with the distribution.
|
13
|
+
|
14
|
+
* Neither the name of the author/s, nor the names of the project's
|
15
|
+
contributors may be used to endorse or promote products derived from this
|
16
|
+
software without specific prior written permission.
|
17
|
+
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
19
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
20
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
21
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
22
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
23
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
24
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
25
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
26
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
27
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/README
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
= Darkfish Rdoc Generator
|
2
|
+
|
3
|
+
This is a complete replacement for the default HTML generator for Rdoc.
|
4
|
+
|
5
|
+
I created it with a few goals in mind:
|
6
|
+
|
7
|
+
* Replace the four-frame layout with three different indexes with a single-page,
|
8
|
+
class/module-focused view.
|
9
|
+
|
10
|
+
* I helped write what became the default look and feel for Rdoc, but it's
|
11
|
+
starting to show its age. I wanted to update it with new CSS and Javascript
|
12
|
+
for modern browsers.
|
13
|
+
|
14
|
+
* Add some of the nifty searching and index-on-the-side stuff I liked from the
|
15
|
+
modified Allison template (<URL:http://www.superalloy.nl/blog/?p=7>) Eloy
|
16
|
+
Duran came up with.
|
17
|
+
|
18
|
+
* Implemented using ERB templates instead of Rdoc's constants-in-a-module style
|
19
|
+
templating.
|
20
|
+
|
21
|
+
I think I mostly succeeded, and it's nice enough that I wanted to use it for all
|
22
|
+
my documentation, and I thought you might want to, too. Or at least be able to
|
23
|
+
tweak it to generate your own spiffy docs.
|
24
|
+
|
25
|
+
It looks like this:
|
26
|
+
|
27
|
+
http://deveiate.org/darkfish_preview.png
|
28
|
+
|
29
|
+
== Getting Started
|
30
|
+
|
31
|
+
If you haven't installed it yet, you can install it via RubyGems:
|
32
|
+
|
33
|
+
$ sudo gem install darkfish-rdoc
|
34
|
+
|
35
|
+
Or download the source and do:
|
36
|
+
|
37
|
+
$ sudo rake install
|
38
|
+
|
39
|
+
== Usage
|
40
|
+
|
41
|
+
To use it, just specify that you want 'darkfish' output instead of the default
|
42
|
+
when you run Rdoc:
|
43
|
+
|
44
|
+
$ rdoc -w 4 -SHN -f darkfish -m README README lib
|
45
|
+
|
46
|
+
Or from a Rakefile:
|
47
|
+
|
48
|
+
### Task: rdoc
|
49
|
+
require 'rake/rdoctask'
|
50
|
+
gem 'darkfish-rdoc'
|
51
|
+
|
52
|
+
Rake::RDocTask.new do |rdoc|
|
53
|
+
rdoc.title = "My Awesome SnoCone Library"
|
54
|
+
|
55
|
+
rdoc.options += [
|
56
|
+
'-w', '4',
|
57
|
+
'-SHN',
|
58
|
+
'-f', 'darkfish', # This bit
|
59
|
+
'-m', 'README',
|
60
|
+
]
|
61
|
+
|
62
|
+
rdoc.rdoc_files.include 'README'
|
63
|
+
rdoc.rdoc_files.include 'lib/snocone.rb'
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
That's it.
|
68
|
+
|
69
|
+
== Feedback
|
70
|
+
|
71
|
+
I'd be happy to have feedback via email <URL: mailto:ged at FaerieMUD dot org> or a ticket on
|
72
|
+
the project's Trac:
|
73
|
+
|
74
|
+
http://deveiate.org/projects/Darkfish-Rdoc/
|
75
|
+
|
76
|
+
== License
|
77
|
+
|
78
|
+
Copyright (c) 2007, 2008, The FaerieMUD Consortium
|
79
|
+
All rights reserved.
|
80
|
+
|
81
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
82
|
+
of this software and associated documentation files (the "Software"), to deal
|
83
|
+
in the Software without restriction, including without limitation the rights
|
84
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
85
|
+
copies of the Software, and to permit persons to whom the Software is
|
86
|
+
furnished to do so, subject to the following conditions:
|
87
|
+
|
88
|
+
The above copyright notice and this permission notice shall be included in
|
89
|
+
all copies or substantial portions of the Software.
|
90
|
+
|
91
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
92
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
93
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
94
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
95
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
96
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
97
|
+
THE SOFTWARE.
|
98
|
+
|
99
|
+
|
100
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,238 @@
|
|
1
|
+
#!rake
|
2
|
+
#
|
3
|
+
# Darkfish-Rdoc rakefile
|
4
|
+
#
|
5
|
+
# Based on various other Rakefiles, especially one by Ben Bleything
|
6
|
+
#
|
7
|
+
# Copyright (c) 2008 The FaerieMUD Consortium
|
8
|
+
#
|
9
|
+
# Authors:
|
10
|
+
# * Michael Granger <ged@FaerieMUD.org>
|
11
|
+
#
|
12
|
+
|
13
|
+
BEGIN {
|
14
|
+
require 'pathname'
|
15
|
+
basedir = Pathname.new( __FILE__ ).dirname
|
16
|
+
|
17
|
+
libdir = basedir + "lib"
|
18
|
+
extdir = basedir + "ext"
|
19
|
+
|
20
|
+
$LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
|
21
|
+
$LOAD_PATH.unshift( extdir.to_s ) unless $LOAD_PATH.include?( extdir.to_s )
|
22
|
+
}
|
23
|
+
|
24
|
+
|
25
|
+
require 'rbconfig'
|
26
|
+
require 'rubygems'
|
27
|
+
require 'rake'
|
28
|
+
require 'rake/rdoctask'
|
29
|
+
require 'rake/testtask'
|
30
|
+
require 'rake/packagetask'
|
31
|
+
require 'rake/clean'
|
32
|
+
|
33
|
+
$dryrun = false
|
34
|
+
|
35
|
+
### Config constants
|
36
|
+
BASEDIR = Pathname.new( __FILE__ ).dirname.relative_path_from( Pathname.getwd )
|
37
|
+
LIBDIR = BASEDIR + 'lib'
|
38
|
+
EXTDIR = BASEDIR + 'ext'
|
39
|
+
DOCSDIR = BASEDIR + 'docs'
|
40
|
+
PKGDIR = BASEDIR + 'pkg'
|
41
|
+
|
42
|
+
PKG_NAME = 'darkfish-rdoc'
|
43
|
+
PKG_SUMMARY = 'A pretty (different) Rdoc HTML generator'
|
44
|
+
VERSION_FILE = LIBDIR + 'darkfish-rdoc.rb'
|
45
|
+
PKG_VERSION = VERSION_FILE.read[ /VERSION = '(\d+\.\d+\.\d+)'/, 1 ]
|
46
|
+
PKG_FILE_NAME = "#{PKG_NAME.downcase}-#{PKG_VERSION}"
|
47
|
+
GEM_FILE_NAME = "#{PKG_FILE_NAME}.gem"
|
48
|
+
|
49
|
+
ARTIFACTS_DIR = Pathname.new( ENV['CC_BUILD_ARTIFACTS'] || 'artifacts' )
|
50
|
+
|
51
|
+
TEXT_FILES = %w( Rakefile ChangeLog README LICENSE ).collect {|filename| BASEDIR + filename }
|
52
|
+
LIB_FILES = Pathname.glob( LIBDIR + '**/*.rb' ).delete_if {|item| item =~ /\.svn/ }
|
53
|
+
EXT_FILES = Pathname.glob( EXTDIR + '**/*.{c,h,rb}' ).delete_if {|item| item =~ /\.svn/ }
|
54
|
+
|
55
|
+
SPECDIR = BASEDIR + 'spec'
|
56
|
+
SPEC_FILES = Pathname.glob( SPECDIR + '**/*_spec.rb' ).delete_if {|item| item =~ /\.svn/ }
|
57
|
+
|
58
|
+
TESTDIR = BASEDIR + 'tests'
|
59
|
+
TEST_FILES = Pathname.glob( TESTDIR + '**/*.tests.rb' ).delete_if {|item| item =~ /\.svn/ }
|
60
|
+
|
61
|
+
RAKE_TASKDIR = BASEDIR + 'rake'
|
62
|
+
RAKE_TASKLIBS = Pathname.glob( RAKE_TASKDIR + '*.rb' )
|
63
|
+
|
64
|
+
LOCAL_RAKEFILE = BASEDIR + 'Rakefile.local'
|
65
|
+
|
66
|
+
RELEASE_FILES = TEXT_FILES + SPEC_FILES + TEST_FILES + LIB_FILES + EXT_FILES + RAKE_TASKLIBS
|
67
|
+
RELEASE_FILES << LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist?
|
68
|
+
|
69
|
+
COVERAGE_MINIMUM = ENV['COVERAGE_MINIMUM'] ? Float( ENV['COVERAGE_MINIMUM'] ) : 85.0
|
70
|
+
RCOV_EXCLUDES = 'spec,tests,/Library/Ruby,/var/lib,/usr/local/lib'
|
71
|
+
RCOV_OPTS = [
|
72
|
+
'--exclude', RCOV_EXCLUDES,
|
73
|
+
'--xrefs',
|
74
|
+
'--save',
|
75
|
+
'--callsites',
|
76
|
+
#'--aggregate', 'coverage.data' # <- doesn't work as of 0.8.1.2.0
|
77
|
+
]
|
78
|
+
|
79
|
+
|
80
|
+
# Subversion constants -- directory names for releases and tags
|
81
|
+
SVN_TRUNK_DIR = 'trunk'
|
82
|
+
SVN_RELEASES_DIR = 'releases'
|
83
|
+
SVN_BRANCHES_DIR = 'branches'
|
84
|
+
SVN_TAGS_DIR = 'tags'
|
85
|
+
|
86
|
+
SVN_DOTDIR = BASEDIR + '.svn'
|
87
|
+
SVN_ENTRIES = SVN_DOTDIR + 'entries'
|
88
|
+
|
89
|
+
|
90
|
+
### Load some task libraries that need to be loaded early
|
91
|
+
require RAKE_TASKDIR + 'helpers.rb'
|
92
|
+
require RAKE_TASKDIR + 'svn.rb'
|
93
|
+
require RAKE_TASKDIR + 'verifytask.rb'
|
94
|
+
|
95
|
+
# Define some constants that depend on the 'svn' tasklib
|
96
|
+
PKG_BUILD = get_svn_rev( BASEDIR ) || 0
|
97
|
+
SNAPSHOT_PKG_NAME = "#{PKG_FILE_NAME}.#{PKG_BUILD}"
|
98
|
+
SNAPSHOT_GEM_NAME = "#{SNAPSHOT_PKG_NAME}.gem"
|
99
|
+
|
100
|
+
# Documentation constants
|
101
|
+
RDOC_OPTIONS = [
|
102
|
+
'-w', '4',
|
103
|
+
'-SHN',
|
104
|
+
'-i', '.',
|
105
|
+
'-m', 'README',
|
106
|
+
'-W', 'http://deveiate.org/projects/Darkfish-Rdoc//browser/trunk/'
|
107
|
+
]
|
108
|
+
|
109
|
+
# Release constants
|
110
|
+
SMTP_HOST = 'mail.faeriemud.org'
|
111
|
+
SMTP_PORT = 465 # SMTP + SSL
|
112
|
+
|
113
|
+
# Project constants
|
114
|
+
PROJECT_HOST = 'deveiate.org'
|
115
|
+
PROJECT_PUBDIR = "/usr/local/www/public/code"
|
116
|
+
PROJECT_DOCDIR = "#{PROJECT_PUBDIR}/#{PKG_NAME}"
|
117
|
+
PROJECT_SCPURL = "#{PROJECT_HOST}:#{PROJECT_DOCDIR}"
|
118
|
+
|
119
|
+
# Rubyforge stuff
|
120
|
+
RUBYFORGE_GROUP = 'deveiate'
|
121
|
+
RUBYFORGE_PROJECT = 'darkfish-rdoc'
|
122
|
+
|
123
|
+
# Gem dependencies: gemname => version
|
124
|
+
DEPENDENCIES = {
|
125
|
+
'rdoc: >= 2.1.0' => '',
|
126
|
+
}
|
127
|
+
|
128
|
+
# Non-gem requirements: packagename => version
|
129
|
+
REQUIREMENTS = {
|
130
|
+
}
|
131
|
+
|
132
|
+
# RubyGem specification
|
133
|
+
GEMSPEC = Gem::Specification.new do |gem|
|
134
|
+
gem.name = PKG_NAME.downcase
|
135
|
+
gem.version = PKG_VERSION
|
136
|
+
|
137
|
+
gem.summary = PKG_SUMMARY
|
138
|
+
gem.description = <<-EOD
|
139
|
+
A complete replacement for the default HTML generator for Rdoc, the
|
140
|
+
API documentation-extraction system for Ruby.
|
141
|
+
EOD
|
142
|
+
|
143
|
+
gem.authors = 'Michael Granger'
|
144
|
+
gem.email = 'ged@FaerieMUD.org'
|
145
|
+
gem.homepage = 'http://deveiate.org/projects/Darkfish-Rdoc/'
|
146
|
+
gem.rubyforge_project = RUBYFORGE_PROJECT
|
147
|
+
|
148
|
+
gem.has_rdoc = true
|
149
|
+
gem.rdoc_options = RDOC_OPTIONS
|
150
|
+
|
151
|
+
gem.files = RELEASE_FILES.
|
152
|
+
collect {|f| f.relative_path_from(BASEDIR).to_s }
|
153
|
+
gem.test_files = SPEC_FILES.
|
154
|
+
collect {|f| f.relative_path_from(BASEDIR).to_s }
|
155
|
+
|
156
|
+
DEPENDENCIES.each do |name, version|
|
157
|
+
version = '>= 0' if version.length.zero?
|
158
|
+
gem.add_dependency( name, version )
|
159
|
+
end
|
160
|
+
|
161
|
+
REQUIREMENTS.each do |name, version|
|
162
|
+
gem.requirements << [ name, version ].compact.join(' ')
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
$trace = Rake.application.options.trace ? true : false
|
167
|
+
$dryrun = Rake.application.options.dryrun ? true : false
|
168
|
+
|
169
|
+
|
170
|
+
# Load any remaining task libraries
|
171
|
+
RAKE_TASKLIBS.each do |tasklib|
|
172
|
+
next if tasklib =~ %r{/(helpers|svn|verifytask)\.rb$}
|
173
|
+
begin
|
174
|
+
require tasklib
|
175
|
+
rescue ScriptError => err
|
176
|
+
fail "Task library '%s' failed to load: %s: %s" %
|
177
|
+
[ tasklib, err.class.name, err.message ]
|
178
|
+
trace "Backtrace: \n " + err.backtrace.join( "\n " )
|
179
|
+
rescue => err
|
180
|
+
log "Task library '%s' failed to load: %s: %s. Some tasks may not be available." %
|
181
|
+
[ tasklib, err.class.name, err.message ]
|
182
|
+
trace "Backtrace: \n " + err.backtrace.join( "\n " )
|
183
|
+
end
|
184
|
+
end
|
185
|
+
|
186
|
+
# Load any project-specific rules defined in 'Rakefile.local' if it exists
|
187
|
+
import LOCAL_RAKEFILE if LOCAL_RAKEFILE.exist?
|
188
|
+
|
189
|
+
|
190
|
+
#####################################################################
|
191
|
+
### T A S K S
|
192
|
+
#####################################################################
|
193
|
+
|
194
|
+
### Default task
|
195
|
+
task :default => [:clean, :spec, :rdoc, :package]
|
196
|
+
|
197
|
+
|
198
|
+
### Task: clean
|
199
|
+
CLEAN.include 'coverage'
|
200
|
+
CLOBBER.include 'artifacts', 'coverage.info', PKGDIR
|
201
|
+
|
202
|
+
# Target to hinge on ChangeLog updates
|
203
|
+
file SVN_ENTRIES
|
204
|
+
|
205
|
+
### Task: changelog
|
206
|
+
file 'ChangeLog' => SVN_ENTRIES.to_s do |task|
|
207
|
+
log "Updating #{task.name}"
|
208
|
+
|
209
|
+
changelog = make_svn_changelog()
|
210
|
+
File.open( task.name, 'w' ) do |fh|
|
211
|
+
fh.print( changelog )
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
|
216
|
+
### Task: cruise (Cruisecontrol task)
|
217
|
+
desc "Cruisecontrol build"
|
218
|
+
task :cruise => [:clean, :spec, :package] do |task|
|
219
|
+
raise "Artifacts dir not set." if ARTIFACTS_DIR.to_s.empty?
|
220
|
+
artifact_dir = ARTIFACTS_DIR.cleanpath
|
221
|
+
artifact_dir.mkpath
|
222
|
+
|
223
|
+
$stderr.puts "Copying coverage stats..."
|
224
|
+
FileUtils.cp_r( 'coverage', artifact_dir )
|
225
|
+
|
226
|
+
$stderr.puts "Copying packages..."
|
227
|
+
FileUtils.cp_r( FileList['pkg/*'].to_a, artifact_dir )
|
228
|
+
end
|
229
|
+
|
230
|
+
|
231
|
+
desc "Update the build system to the latest version"
|
232
|
+
task :update_build do
|
233
|
+
log "Updating the build system"
|
234
|
+
sh 'svn', 'up', RAKE_TASKDIR
|
235
|
+
log "Updating the Rakefile"
|
236
|
+
sh 'rake', '-f', RAKE_TASKDIR + 'Metarakefile'
|
237
|
+
end
|
238
|
+
|