bee 0.2.0 → 0.3.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/README +1 -1
- data/lib/bee.rb +65 -31
- data/lib/bee_console.rb +3 -1
- data/lib/bee_default_context.rb +366 -53
- metadata +2 -2
data/README
CHANGED
data/lib/bee.rb
CHANGED
@@ -95,7 +95,7 @@ module Bee
|
|
95
95
|
for script in entry['context']
|
96
96
|
begin
|
97
97
|
based_script = File.join(@base, script)
|
98
|
-
evaluated_script = @context.
|
98
|
+
evaluated_script = @context.evaluate_object(based_script)
|
99
99
|
source = File.read(evaluated_script)
|
100
100
|
load_context(source)
|
101
101
|
rescue
|
@@ -108,7 +108,7 @@ module Bee
|
|
108
108
|
for property in entry['properties']
|
109
109
|
begin
|
110
110
|
name = property.keys[0]
|
111
|
-
value = @context.
|
111
|
+
value = @context.evaluate_object(property[name])
|
112
112
|
error "Duplicate property '#{name}' definition" if
|
113
113
|
@properties[name]
|
114
114
|
@properties[name] = value
|
@@ -174,7 +174,7 @@ module Bee
|
|
174
174
|
# extension tasks mapping.
|
175
175
|
# - source: the context source.
|
176
176
|
def load_context(source)
|
177
|
-
new_tasks = @context.
|
177
|
+
new_tasks = @context.evaluate_script(source)
|
178
178
|
if new_tasks.kind_of?(Hash)
|
179
179
|
for task in new_tasks.keys
|
180
180
|
error "Duplicate definition for task '#{task}'" if @tasks[task]
|
@@ -218,22 +218,26 @@ module Bee
|
|
218
218
|
|
219
219
|
# Run target.
|
220
220
|
def run
|
221
|
-
|
222
|
-
@evaluated
|
223
|
-
|
224
|
-
@
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
221
|
+
begin
|
222
|
+
if not @evaluated
|
223
|
+
@evaluated = true
|
224
|
+
for depend in @depends
|
225
|
+
@build.run_target(depend)
|
226
|
+
end
|
227
|
+
@build.listener.target(self) if @build.listener
|
228
|
+
if @script
|
229
|
+
case @script
|
230
|
+
when String
|
231
|
+
run_task(@script)
|
232
|
+
when Array
|
233
|
+
for task in @script
|
234
|
+
run_task(task)
|
235
|
+
end
|
234
236
|
end
|
235
237
|
end
|
236
238
|
end
|
239
|
+
ensure
|
240
|
+
Dir.chdir(@build.base)
|
237
241
|
end
|
238
242
|
end
|
239
243
|
|
@@ -265,7 +269,7 @@ module Bee
|
|
265
269
|
# - script: the scrip to run.
|
266
270
|
def run_shell(script)
|
267
271
|
@listener.task(script) if @listener
|
268
|
-
evaluated_script = @build.context.
|
272
|
+
evaluated_script = @build.context.evaluate_object(script)
|
269
273
|
system(evaluated_script)
|
270
274
|
error "Script exited with value #{$?}" if $? != 0
|
271
275
|
end
|
@@ -275,7 +279,7 @@ module Bee
|
|
275
279
|
def run_ruby(script)
|
276
280
|
@listener.task(script) if @listener
|
277
281
|
begin
|
278
|
-
@build.context.
|
282
|
+
@build.context.evaluate_script(script)
|
279
283
|
rescue BuildError
|
280
284
|
error "Error running Ruby script: #{$!}"
|
281
285
|
end
|
@@ -291,7 +295,7 @@ module Bee
|
|
291
295
|
parameters = task[name]
|
292
296
|
script = "#{name}(#{parameters.inspect})"
|
293
297
|
begin
|
294
|
-
@build.context.
|
298
|
+
@build.context.evaluate_script(script)
|
295
299
|
rescue BuildError
|
296
300
|
error "Error running task #{name}: #{$!}"
|
297
301
|
end
|
@@ -339,24 +343,54 @@ module Bee
|
|
339
343
|
|
340
344
|
# Evaluate a script in context.
|
341
345
|
# - script: script to evaluate.
|
342
|
-
def
|
346
|
+
def evaluate_script(script)
|
343
347
|
eval(script, @context_binding)
|
344
348
|
end
|
345
349
|
|
346
|
-
# Process a given
|
347
|
-
# value
|
348
|
-
# in ruby strings: '#{variable}'
|
349
|
-
#
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
350
|
+
# Process a given object, replacing properties references with their
|
351
|
+
# string value, symbol with their raw value. Property references have
|
352
|
+
# same form than variable references in ruby strings: '#{variable}'
|
353
|
+
# will be replaced with variable string value.
|
354
|
+
# - object: object to process.
|
355
|
+
def evaluate_object(object)
|
356
|
+
case object
|
357
|
+
when NilClass
|
358
|
+
# nil: return nil
|
359
|
+
return nil
|
360
|
+
when String
|
361
|
+
# string: replace property references
|
362
|
+
object = object.gsub(/#\{.+?\}/) do |match|
|
363
|
+
property = match[2..-2]
|
364
|
+
value = get(property)
|
365
|
+
error ("Property '#{property}' was not defined") unless value
|
366
|
+
value
|
367
|
+
end
|
368
|
+
return object
|
369
|
+
when Symbol
|
370
|
+
# symbol: return property object
|
371
|
+
property = object.to_s
|
355
372
|
value = get(property)
|
356
373
|
error ("Property '#{property}' was not defined") unless value
|
357
|
-
value
|
374
|
+
return value
|
375
|
+
else
|
376
|
+
return object
|
377
|
+
end
|
378
|
+
end
|
379
|
+
|
380
|
+
# Check a task parameters. Raise a RuntimeError with explanation message if
|
381
|
+
# a mandatory parameter is missing or an unknown parameter was found.
|
382
|
+
# - params: task parameters as a Hash.
|
383
|
+
# - description: parameters description as a Hash associating a parameter
|
384
|
+
# name with symbol :mandatory or :optional.
|
385
|
+
def check_task_parameters(params, description)
|
386
|
+
error "Parameters must be a Hash" unless params.kind_of?(Hash)
|
387
|
+
for param in description.keys
|
388
|
+
error "Missing mandatory parameter '#{param}'" unless
|
389
|
+
params[param] or description[param] == :optional
|
390
|
+
end
|
391
|
+
for param in params.keys
|
392
|
+
error "Unknown parameter '#{param}'" if not description.key?(param)
|
358
393
|
end
|
359
|
-
return string
|
360
394
|
end
|
361
395
|
|
362
396
|
private
|
data/lib/bee_console.rb
CHANGED
@@ -317,9 +317,11 @@ targets Targets to run (default target if omitted).'
|
|
317
317
|
error "Task '#{task}' not loaded" if not build.tasks[task]
|
318
318
|
help << build.tasks[task]
|
319
319
|
else
|
320
|
+
help << "Loaded tasks: "
|
320
321
|
for task in build.tasks.keys.sort
|
321
|
-
help <<
|
322
|
+
help << "#{task}, "
|
322
323
|
end
|
324
|
+
help = help[0..-3]
|
323
325
|
end
|
324
326
|
return help
|
325
327
|
end
|
data/lib/bee_default_context.rb
CHANGED
@@ -19,67 +19,174 @@
|
|
19
19
|
|
20
20
|
############################ UTILITY FUNCTIONS ############################
|
21
21
|
|
22
|
-
# Convenient method to raise a BuildError.
|
22
|
+
# Convenient method to raise a BuildError. This is necessary to interrupt
|
23
|
+
# build with an error message but without a stack trace (which would
|
24
|
+
# indicate an internal error).
|
23
25
|
# - message: error message.
|
24
26
|
def error(message)
|
25
27
|
raise BuildError.new(message)
|
26
28
|
end
|
27
29
|
|
28
|
-
#
|
29
|
-
# a mandatory parameter is missing or an unknown parameter was found.
|
30
|
-
# - params: task parameters as a Hash.
|
31
|
-
# - description: parameters description as a Hash associating a parameter
|
32
|
-
# name with symbol :mandatory or :optional.
|
33
|
-
def check_parameters(params, description)
|
34
|
-
error "Parameters must be a Hash" unless params.kind_of?(Hash)
|
35
|
-
for param in description.keys
|
36
|
-
error "Missing mandatory parameter '#{param}'" unless
|
37
|
-
params[param] or description[param] == :optional
|
38
|
-
end
|
39
|
-
for param in params.keys
|
40
|
-
error "Unknown parameter '#{param}'" if not description.key?(param)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# Run a shell script and raise an exception if script returned a value
|
30
|
+
# Run a shell script and raise a build error if script returned a value
|
45
31
|
# different of 0.
|
46
32
|
# - script: script to run.
|
47
33
|
def sh(script)
|
48
34
|
system(script) or error "Script '#{script}' exited with value '#{$?}'"
|
49
35
|
end
|
50
36
|
|
51
|
-
|
52
|
-
|
53
|
-
#
|
54
|
-
#
|
55
|
-
#
|
56
|
-
def
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
end
|
37
|
+
############################ TASK DEFINITIONS #############################
|
38
|
+
|
39
|
+
# Prints a message. This message may be a String (standard output) or any
|
40
|
+
# Ruby object. In this latter case, print its inspected value.
|
41
|
+
# - message: message to print.
|
42
|
+
def print(message)
|
43
|
+
case message
|
44
|
+
when String
|
45
|
+
puts evaluate_object(message)
|
46
|
+
else
|
47
|
+
puts message.inspect
|
63
48
|
end
|
64
|
-
return files
|
65
49
|
end
|
66
50
|
|
67
|
-
|
51
|
+
# Print a file contents.
|
52
|
+
# - file: file to print out.
|
53
|
+
def cat(file)
|
54
|
+
file = evaluate_object(file)
|
55
|
+
error "Parameter must be a String" unless file.kind_of?(String)
|
56
|
+
error "File '#{file}' not found" unless
|
57
|
+
File.exists?(file) or File.directory?(file)
|
58
|
+
puts File.read(file).strip
|
59
|
+
end
|
68
60
|
|
69
|
-
#
|
70
|
-
|
71
|
-
|
72
|
-
|
61
|
+
# Change working directory. This change will persist for all tasks run in
|
62
|
+
# the target. Parameter is a string with directory to change to.
|
63
|
+
def cd(dir)
|
64
|
+
dir = evaluate_object(dir)
|
65
|
+
error "cd parameter is a String" unless dir.kind_of?(String)
|
66
|
+
Dir.chdir(dir)
|
73
67
|
end
|
74
68
|
|
75
|
-
# Make a directory and parent directories if necessary.
|
69
|
+
# Make a directory and parent directories if necessary. Doesn't complain if
|
70
|
+
# directory already exists.
|
71
|
+
# - dir: directory to create.
|
76
72
|
def mkdir(dir)
|
73
|
+
dir = evaluate_object(dir)
|
77
74
|
error "Parameter must be a String" unless dir.kind_of?(String)
|
78
75
|
require "fileutils"
|
79
76
|
FileUtils.makedirs(dir)
|
80
77
|
end
|
81
78
|
|
82
|
-
#
|
79
|
+
# Copy a files or directoris to destination file or directory. Parameter is a
|
80
|
+
# Hash with following entries:
|
81
|
+
# - src: glob for source files or directories.
|
82
|
+
# - dest: destination file or directory.
|
83
|
+
def cp(params)
|
84
|
+
require 'fileutils'
|
85
|
+
params_desc = {
|
86
|
+
'src' => :mandatory,
|
87
|
+
'dest' => :mandatory
|
88
|
+
}
|
89
|
+
check_task_parameters(params, params_desc)
|
90
|
+
src = evaluate_object(params['src'])
|
91
|
+
dest = evaluate_object(params['dest'])
|
92
|
+
files = []
|
93
|
+
for element in src
|
94
|
+
files += Dir.glob(element)
|
95
|
+
end
|
96
|
+
for file in files
|
97
|
+
FileUtils.cp_r(file, dest)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
# Move source file(s) or directories to dest file or directory. Parameter is
|
102
|
+
# a Hahs with following keys:
|
103
|
+
# - src: glob for files and directories to move.
|
104
|
+
# - dest: file or directory to move file(s) to.
|
105
|
+
def mv(params)
|
106
|
+
require 'fileutils'
|
107
|
+
params_desc = {
|
108
|
+
'src' => :mandatory,
|
109
|
+
'dest' => :mandatory
|
110
|
+
}
|
111
|
+
check_task_parameters(params, params_desc)
|
112
|
+
src = evaluate_object(params['src'])
|
113
|
+
dest = evaluate_object(params['dest'])
|
114
|
+
files = []
|
115
|
+
for element in src
|
116
|
+
files += Dir.glob(element)
|
117
|
+
end
|
118
|
+
for file in files
|
119
|
+
FileUtils.mv(file, dest)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
# Delete files for a given glob. Parameter is a string for glob of files
|
124
|
+
# to delete.
|
125
|
+
def rm(glob)
|
126
|
+
require 'fileutils'
|
127
|
+
glob = evaluate_object(glob)
|
128
|
+
error "rm parameter is a String" unless glob.kind_of?(String)
|
129
|
+
files = Dir.glob(glob)
|
130
|
+
for file in files
|
131
|
+
FileUtils.rm_f(file)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
# Delete directories recursively. Parameter is a string for glob of directories
|
136
|
+
# to delete.
|
137
|
+
def rmdir(glob)
|
138
|
+
require 'fileutils'
|
139
|
+
glob = evaluate_object(glob)
|
140
|
+
error "rm parameter is a String" unless glob.kind_of?(String)
|
141
|
+
dirs = Dir.glob(glob)
|
142
|
+
for dir in dirs
|
143
|
+
FileUtils.rm_rf(dir)
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
# Find files for a given glob and store list in a property. Parameter is
|
148
|
+
# a Hash with entries:
|
149
|
+
# - files: glob or list of globs for files to look for.
|
150
|
+
# - toprop: name of the property to set.
|
151
|
+
def find(parameters)
|
152
|
+
params_desc = {
|
153
|
+
'files' => :mandatory,
|
154
|
+
'toprop' => :mandatory
|
155
|
+
}
|
156
|
+
check_task_parameters(parameters, params_desc)
|
157
|
+
files = []
|
158
|
+
globs = parameters['files']
|
159
|
+
toprop = evaluate_object(parameters['toprop'])
|
160
|
+
for glob in globs
|
161
|
+
files += Dir.glob(evaluate_object(glob))
|
162
|
+
end
|
163
|
+
set(toprop, files)
|
164
|
+
end
|
165
|
+
|
166
|
+
# Run a set of tests selected using globs. Parameter is a glob or list of
|
167
|
+
# globs for files or directories to run.
|
168
|
+
# FIXME: if tasks runs twice, it will run twice loaded tests...
|
169
|
+
def test(globs)
|
170
|
+
require 'test/unit'
|
171
|
+
require 'test/unit/testresult'
|
172
|
+
files = []
|
173
|
+
for glob in globs
|
174
|
+
error "Parameter must be a String or a list of Strings" unless
|
175
|
+
glob.kind_of?(String)
|
176
|
+
files += Dir.glob(evaluate_object(glob))
|
177
|
+
end
|
178
|
+
for file in files
|
179
|
+
load file
|
180
|
+
end
|
181
|
+
Test::Unit::AutoRunner.run
|
182
|
+
end
|
183
|
+
|
184
|
+
# Run an ERB file or source and store result in a file or property. Parameter
|
185
|
+
# is a Hash with following keys:
|
186
|
+
# - source: ERB source text (if no 'file').
|
187
|
+
# - file: ERB file name (if no 'source').
|
188
|
+
# - tofile: file where to store result (if no 'toprop').
|
189
|
+
# - toprop: property name where to store result (if no 'tofile').
|
83
190
|
def erb(params)
|
84
191
|
require 'erb'
|
85
192
|
# check parameters
|
@@ -89,11 +196,11 @@ def erb(params)
|
|
89
196
|
'tofile' => :optional,
|
90
197
|
'toprop' => :optional
|
91
198
|
}
|
92
|
-
|
199
|
+
check_task_parameters(params, params_desc)
|
93
200
|
source = params['source']
|
94
|
-
file =
|
95
|
-
tofile =
|
96
|
-
toprop =
|
201
|
+
file = evaluate_object(params['file'])
|
202
|
+
tofile = evaluate_object(params['tofile'])
|
203
|
+
toprop = evaluate_object(params['toprop'])
|
97
204
|
error "Must pass one of 'source' or 'file' parameters to erb task" if
|
98
205
|
not source and not file
|
99
206
|
error "Must pass one of 'tofile' or 'toprop' parameters to erb task" if
|
@@ -114,18 +221,224 @@ def erb(params)
|
|
114
221
|
end
|
115
222
|
end
|
116
223
|
|
224
|
+
# Generate RDoc documentation for a given list of globs and an output directory.
|
225
|
+
# Parameter is a Hash with following keys:
|
226
|
+
# - input: input files as a glob (or list of globs). File mays be directories.
|
227
|
+
# - output: output directory for generated documentation.
|
228
|
+
def rdoc(params)
|
229
|
+
require 'rdoc/rdoc'
|
230
|
+
params_desc = {
|
231
|
+
'input' => :mandatory,
|
232
|
+
'output' => :mandatory
|
233
|
+
}
|
234
|
+
check_task_parameters(params, params_desc)
|
235
|
+
files = []
|
236
|
+
input = params['input']
|
237
|
+
for glob in input
|
238
|
+
files += Dir.glob(evaluate_object(glob))
|
239
|
+
end
|
240
|
+
output = evaluate_object(params['output'])
|
241
|
+
command_line = ['-S', '-o', output] + files
|
242
|
+
rdoc = RDoc::RDoc.new
|
243
|
+
rdoc.document(command_line)
|
244
|
+
end
|
245
|
+
|
246
|
+
# Generate a Gem package. Parameter is the name of the Gem description file.
|
247
|
+
# Resulting Gem package is generated in current directory (as with command
|
248
|
+
# line tool).
|
249
|
+
def gembuild(description)
|
250
|
+
require 'rubygems'
|
251
|
+
description = evaluate_object(description)
|
252
|
+
arguments = ['build', description]
|
253
|
+
Gem.manage_gems
|
254
|
+
Gem::GemRunner.new.run(arguments)
|
255
|
+
end
|
256
|
+
|
257
|
+
# Generate a ZIP archive. Parameter is a Hash with following entries:
|
258
|
+
# - files: glob or list of globs for files to select for the archive.
|
259
|
+
# - archive: the archive name.
|
260
|
+
# - prefix: prefix for archive entries (default to nil).
|
261
|
+
# Note: if archive exists, files are added to the archive.
|
262
|
+
def zip(parameters)
|
263
|
+
require 'zip/zip'
|
264
|
+
# parse parameters
|
265
|
+
params_desc = {
|
266
|
+
'files' => :mandatory,
|
267
|
+
'archive' => :mandatory,
|
268
|
+
'prefix' => :optional
|
269
|
+
}
|
270
|
+
check_task_parameters(parameters, params_desc)
|
271
|
+
globs = evaluate_object(parameters['files'])
|
272
|
+
files = []
|
273
|
+
for glob in globs
|
274
|
+
files += Dir.glob(evaluate_object(glob))
|
275
|
+
end
|
276
|
+
archive = evaluate_object(parameters['archive'])
|
277
|
+
prefix = evaluate_object(parameters['prefix'])
|
278
|
+
# build the archive
|
279
|
+
zipfile = Zip::ZipFile.open(archive, Zip::ZipFile::CREATE) do |zip|
|
280
|
+
for file in files
|
281
|
+
entry = prefix ? File.join(prefix, file) : file
|
282
|
+
puts "Adding '#{entry}'"
|
283
|
+
zip.add(entry, file)
|
284
|
+
end
|
285
|
+
zip.close
|
286
|
+
end
|
287
|
+
end
|
288
|
+
|
117
289
|
############################## TASKS MAPPING ##############################
|
118
290
|
|
119
291
|
{
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
-
|
130
|
-
|
292
|
+
"print" =>
|
293
|
+
"Print a message on console. This message may be a String (standard output)
|
294
|
+
or any Ruby object. In this latter case, print its inspected value. Parameter
|
295
|
+
is the message to output as a String.
|
296
|
+
|
297
|
+
- message: message to print.
|
298
|
+
|
299
|
+
Example:
|
300
|
+
|
301
|
+
- print: \"Hello World!\"",
|
302
|
+
|
303
|
+
"cat" =>
|
304
|
+
"Print contents of a given file on the console. Parameter is file to output
|
305
|
+
as a String.
|
306
|
+
|
307
|
+
- file: file to print out.
|
308
|
+
|
309
|
+
Example:
|
310
|
+
|
311
|
+
- cat: \"doc/welcome-message.txt\"",
|
312
|
+
|
313
|
+
"cd" =>
|
314
|
+
"Change working directory. This change will persist for all tasks in the
|
315
|
+
target but not in other targets. Parameter is a String with directory to
|
316
|
+
change to.
|
317
|
+
|
318
|
+
Example:
|
319
|
+
|
320
|
+
- cd: \"build\"",
|
321
|
+
|
322
|
+
"mkdir" =>
|
323
|
+
"Make a directory and parent directories if necessary. Doesn't complain if
|
324
|
+
directory already exists. Parameter is directory to create as a String.
|
325
|
+
|
326
|
+
Example:
|
327
|
+
|
328
|
+
- mkdir \"foo/bar\"",
|
329
|
+
|
330
|
+
"cp" =>
|
331
|
+
"Copy files or directories to destination file or directory. Parameter is a
|
332
|
+
Hash with following entries:
|
333
|
+
|
334
|
+
- src: glob for source files or directories.
|
335
|
+
- dest: destination file or directory.
|
336
|
+
|
337
|
+
Example:
|
338
|
+
|
339
|
+
- cp:
|
340
|
+
src: \"doc/png/*.png\"
|
341
|
+
dest: :doc",
|
342
|
+
|
343
|
+
"mv" =>
|
344
|
+
"Move source file(s) or directories to dest file or directory. Parameter is
|
345
|
+
a Hahs with following entries:
|
346
|
+
|
347
|
+
- src: glob for files and directories to move.
|
348
|
+
- dest: file or directory to move file(s) to.
|
349
|
+
|
350
|
+
Example:
|
351
|
+
|
352
|
+
- mv: { src: :gem_package, dest: :build }",
|
353
|
+
|
354
|
+
"rm" =>
|
355
|
+
"Delete files for a given glob. Parameter is a String or list of Strings for
|
356
|
+
glob(s) of files to delete.
|
357
|
+
|
358
|
+
Example:
|
359
|
+
|
360
|
+
- rm: \"**/*~\"",
|
361
|
+
|
362
|
+
"rmdir" =>
|
363
|
+
"Delete directories recursively. Parameter is a string for glob of directories
|
364
|
+
to delete.
|
365
|
+
|
366
|
+
Example:
|
367
|
+
|
368
|
+
- rmdir: :build",
|
369
|
+
|
370
|
+
"find" =>
|
371
|
+
"Find files for a given glob and store list in a property. Parameter is
|
372
|
+
a Hash with entries:
|
373
|
+
|
374
|
+
- files: glob or list of globs for files to look for.
|
375
|
+
- toprop: name of the property to set.
|
376
|
+
|
377
|
+
Example:
|
378
|
+
|
379
|
+
- find: { files: \"**/*.rb\", toprop: \"rb_files_to_check\" }",
|
380
|
+
|
381
|
+
"test" =>
|
382
|
+
"Run a set of tests selected using globs. Parameter is a glob or list of
|
383
|
+
globs for files or directories to run.
|
384
|
+
|
385
|
+
Example:
|
386
|
+
|
387
|
+
- test: \"**/tc_*.rb\"
|
388
|
+
|
389
|
+
*FIXME*: if tasks runs twice, it will run twice loaded tests...",
|
390
|
+
|
391
|
+
"erb" =>
|
392
|
+
"Run an ERB file or source in bee context and store result in a file or
|
393
|
+
property. Parameter is a Hash with following entries:
|
394
|
+
|
395
|
+
- source: ERB source text (if no 'file').
|
396
|
+
- file: ERB file name (if no 'source').
|
397
|
+
- tofile: file where to store result (if no 'toprop').
|
398
|
+
- toprop: property name where to store result (if no 'tofile').
|
399
|
+
|
400
|
+
Example:
|
401
|
+
|
402
|
+
- erb: { file: \"gem.spec.erb\", tofile: \"gem.spec\" }
|
403
|
+
|
404
|
+
Notes: In these ERB files, you can access a property _foo_ writing:
|
405
|
+
|
406
|
+
<p>Hello <%= foo %>!</p>",
|
407
|
+
|
408
|
+
"rdoc" =>
|
409
|
+
"Generate RDoc documentation for a given list of globs and an output directory.
|
410
|
+
Parameter is a Hash with following entries:
|
411
|
+
|
412
|
+
- input: input files as a glob (or list of globs). File mays be directories.
|
413
|
+
- output: output directory for generated documentation.
|
414
|
+
|
415
|
+
Example:
|
416
|
+
|
417
|
+
- rdoc:
|
418
|
+
input: [\"README\", \"LICENSE\", :src]
|
419
|
+
output: :api",
|
420
|
+
|
421
|
+
"gembuild" =>
|
422
|
+
"Generate a Gem package. Parameter is the name of the Gem description file.
|
423
|
+
Resulting Gem package is generated in current directory (as with command
|
424
|
+
line tool).
|
425
|
+
|
426
|
+
Example:
|
427
|
+
|
428
|
+
- gembuild: :gem_spec",
|
429
|
+
|
430
|
+
"zip" =>
|
431
|
+
"Generate a ZIP archive. Parameter is a Hash with following entries:
|
432
|
+
|
433
|
+
- files: glob or list of globs for files to select for the archive.
|
434
|
+
- archive: the archive name.
|
435
|
+
- prefix: prefix for archive entries (default to nil).
|
436
|
+
|
437
|
+
Example:
|
438
|
+
|
439
|
+
- zip:
|
440
|
+
files: :zip_files
|
441
|
+
archive: :zip_archive
|
442
|
+
|
443
|
+
Note: if archive already exists, files are added to the archive."
|
131
444
|
}
|
metadata
CHANGED