sake 1.0.14 → 1.0.15
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/lib/sake.rb +34 -22
- data/sake.gemspec +19 -10
- metadata +66 -48
data/lib/sake.rb
CHANGED
@@ -77,7 +77,7 @@ class Sake
|
|
77
77
|
module Version #:nodoc:
|
78
78
|
Major = '1'
|
79
79
|
Minor = '0'
|
80
|
-
Tweak = '
|
80
|
+
Tweak = '15'
|
81
81
|
String = [ Major, Minor, Tweak ].join('.')
|
82
82
|
end
|
83
83
|
|
@@ -114,11 +114,22 @@ class Sake
|
|
114
114
|
begin
|
115
115
|
tasks = TasksFile.parse(@args[index + 1]).tasks
|
116
116
|
pattern = @args[index + 2]
|
117
|
-
rescue
|
117
|
+
rescue => parse_error
|
118
118
|
tasks = Store.tasks.sort
|
119
119
|
pattern = index ? @args[index + 1] : nil
|
120
120
|
end
|
121
|
-
|
121
|
+
output = show_tasks(tasks, pattern, display_hidden)
|
122
|
+
if output.empty? and @args.size > 1 # show_tasks didn't show any tasks
|
123
|
+
case parse_error
|
124
|
+
when Errno::ENOENT, OpenURI::HTTPError
|
125
|
+
die "# Can't find file (or task) `#{@args[index + 1]}'"
|
126
|
+
when SecurityError
|
127
|
+
die "# SecurityError parsing `#{@args[index + 1]}'"
|
128
|
+
else
|
129
|
+
die "# No matching tasks for `#{pattern}'" if pattern
|
130
|
+
end
|
131
|
+
end
|
132
|
+
return output
|
122
133
|
|
123
134
|
##
|
124
135
|
# Install a Rakefile or a single Rake task
|
@@ -308,6 +319,7 @@ class Sake
|
|
308
319
|
# Sake::TasksFile.parse('Rakefile')
|
309
320
|
# Sake::TasksFile.parse('http://errtheblog.com/code/errake')
|
310
321
|
class TasksFile
|
322
|
+
include Rake::TaskManager
|
311
323
|
attr_reader :tasks
|
312
324
|
|
313
325
|
##
|
@@ -322,13 +334,6 @@ class Sake
|
|
322
334
|
instance = new
|
323
335
|
Thread.new { instance.instance_eval "$SAFE = 3\n#{body}" }.join
|
324
336
|
instance
|
325
|
-
|
326
|
-
rescue Errno::ENOENT
|
327
|
-
STDERR.puts "Error: The file '#{file}' doesn't exist!"
|
328
|
-
exit 1
|
329
|
-
rescue OpenURI::HTTPError
|
330
|
-
STDERR.puts "Error: '#{file}' not found! (OpenURI::HTTPError)"
|
331
|
-
exit 1
|
332
337
|
end
|
333
338
|
|
334
339
|
def initialize
|
@@ -359,20 +364,16 @@ class Sake
|
|
359
364
|
|
360
365
|
##
|
361
366
|
# Define a task and any dependencies it may have.
|
362
|
-
def task(
|
363
|
-
#
|
364
|
-
|
365
|
-
if name.is_a? Hash
|
366
|
-
deps = name.values.first
|
367
|
-
name = name.keys.first
|
368
|
-
end
|
367
|
+
def task(*args, &block)
|
368
|
+
# Use Rake::TaskManager method to get task details
|
369
|
+
task_name, arg_names, deps = resolve_args(args)
|
369
370
|
|
370
371
|
# Our namespace is really just a convenience method. Essentially,
|
371
372
|
# a namespace is just part of the task name.
|
372
|
-
|
373
|
+
task_name = [ @namespace, task_name ].flatten * ':'
|
373
374
|
|
374
375
|
# Sake's version of a rake task
|
375
|
-
task = Task.new(
|
376
|
+
task = Task.new(task_name, arg_names, deps, @comment, &block)
|
376
377
|
|
377
378
|
@tasks << task
|
378
379
|
|
@@ -422,9 +423,10 @@ class Sake
|
|
422
423
|
class Task
|
423
424
|
attr_reader :name, :comment
|
424
425
|
|
425
|
-
def initialize(name, deps = nil, comment = nil, &block)
|
426
|
+
def initialize(name, args = nil, deps = nil, comment = nil, &block)
|
426
427
|
@name = name
|
427
428
|
@comment = comment
|
429
|
+
@args = Array(args)
|
428
430
|
@deps = Array(deps)
|
429
431
|
@body = block
|
430
432
|
end
|
@@ -436,12 +438,21 @@ class Sake
|
|
436
438
|
out << "desc '#{@comment.gsub("'", "\\\\'")}'\n" if @comment
|
437
439
|
out << "task '#{@name}'"
|
438
440
|
|
441
|
+
if @args.any?
|
442
|
+
args = @args.map { |arg| ":#{arg}" }.join(', ')
|
443
|
+
out << ", #{args} "
|
444
|
+
end
|
445
|
+
|
439
446
|
if @deps.any?
|
440
447
|
deps = @deps.map { |dep| "'#{dep}'" }.join(', ')
|
441
|
-
out << " => [ #{deps} ]"
|
448
|
+
out << ", :needs => [ #{deps} ]"
|
442
449
|
end
|
443
450
|
|
444
|
-
|
451
|
+
if @args.any?
|
452
|
+
out << " do |t, args|\n"
|
453
|
+
else
|
454
|
+
out << " do\n"
|
455
|
+
end
|
445
456
|
|
446
457
|
# get rid of the proc { / } lines
|
447
458
|
out << @body.to_ruby.split("\n")[1...-1].join("\n") rescue nil
|
@@ -508,6 +519,7 @@ class Sake
|
|
508
519
|
##
|
509
520
|
# Wrote our current tasks_file to disk, overwriting the current Store.
|
510
521
|
def save!
|
522
|
+
tasks_file # ensure the tasks_file is loaded before overwriting
|
511
523
|
File.open(path, 'w') do |file|
|
512
524
|
file.puts tasks_file.to_ruby
|
513
525
|
end
|
data/sake.gemspec
CHANGED
@@ -1,21 +1,30 @@
|
|
1
1
|
|
2
|
-
# Gem::Specification for Sake-1.0.
|
2
|
+
# Gem::Specification for Sake-1.0.15
|
3
3
|
# Originally generated by Echoe
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = %q{sake}
|
7
|
-
s.version = "1.0.
|
8
|
-
|
9
|
-
s.
|
7
|
+
s.version = "1.0.15"
|
8
|
+
|
9
|
+
s.specification_version = 2 if s.respond_to? :specification_version=
|
10
|
+
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.authors = ["Chris Wanstrath"]
|
13
|
+
s.date = %q{2008-06-15}
|
14
|
+
s.default_executable = %q{sake}
|
15
|
+
s.description = %q{Sake tastes great and helps maintain system-level Rake files.}
|
10
16
|
s.email = %q{chris@ozmm.org}
|
17
|
+
s.executables = ["sake"]
|
18
|
+
s.extra_rdoc_files = ["bin/sake", "lib/help.rb", "lib/pastie.rb", "lib/sake.rb", "lib/server.rb", "README", "LICENSE"]
|
19
|
+
s.files = ["bin/sake", "lib/help.rb", "lib/pastie.rb", "lib/sake.rb", "lib/server.rb", "Manifest", "Rakefile", "README", "LICENSE", "sake.gemspec"]
|
20
|
+
s.has_rdoc = true
|
11
21
|
s.homepage = %q{http://errtheblog.com/}
|
22
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Sake", "--main", "README"]
|
23
|
+
s.require_paths = ["lib"]
|
12
24
|
s.rubyforge_project = %q{err}
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
|
16
|
-
s.authors = ["Chris Wanstrath"]
|
17
|
-
s.files = ["bin/sake", "lib/help.rb", "lib/pastie.rb", "lib/sake.rb", "lib/server.rb", "Manifest", "Rakefile", "README", "LICENSE", "sake.gemspec"]
|
18
|
-
s.executables = ["sake"]
|
25
|
+
s.rubygems_version = %q{1.1.1}
|
26
|
+
s.summary = %q{Sake tastes great and helps maintain system-level Rake files.}
|
27
|
+
|
19
28
|
s.add_dependency(%q<ParseTree>, ["= 2.1.1"])
|
20
29
|
s.add_dependency(%q<ruby2ruby>, ["= 1.1.8"])
|
21
30
|
end
|
metadata
CHANGED
@@ -1,61 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.4
|
3
|
-
specification_version: 1
|
4
2
|
name: sake
|
5
3
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2008-03-16 00:00:00 -07:00
|
8
|
-
summary: Sake tastes great and helps maintain system-level Rake files.
|
9
|
-
require_paths:
|
10
|
-
- lib
|
11
|
-
email: chris@ozmm.org
|
12
|
-
homepage: http://errtheblog.com/
|
13
|
-
rubyforge_project: err
|
14
|
-
description: Sake tastes great and helps maintain system-level Rake files.
|
15
|
-
autorequire:
|
16
|
-
default_executable:
|
17
|
-
bindir: bin
|
18
|
-
has_rdoc: true
|
19
|
-
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
-
requirements:
|
21
|
-
- - ">"
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.0.0
|
24
|
-
version:
|
4
|
+
version: 1.0.15
|
25
5
|
platform: ruby
|
26
|
-
signing_key:
|
27
|
-
cert_chain:
|
28
|
-
post_install_message:
|
29
6
|
authors:
|
30
7
|
- Chris Wanstrath
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
- lib/pastie.rb
|
35
|
-
- lib/sake.rb
|
36
|
-
- lib/server.rb
|
37
|
-
- Manifest
|
38
|
-
- Rakefile
|
39
|
-
- README
|
40
|
-
- LICENSE
|
41
|
-
- sake.gemspec
|
42
|
-
test_files: []
|
43
|
-
|
44
|
-
rdoc_options: []
|
45
|
-
|
46
|
-
extra_rdoc_files: []
|
47
|
-
|
48
|
-
executables:
|
49
|
-
- sake
|
50
|
-
extensions: []
|
51
|
-
|
52
|
-
requirements: []
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
53
11
|
|
12
|
+
date: 2008-06-15 00:00:00 -07:00
|
13
|
+
default_executable:
|
54
14
|
dependencies:
|
55
15
|
- !ruby/object:Gem::Dependency
|
56
16
|
name: ParseTree
|
57
17
|
version_requirement:
|
58
|
-
version_requirements: !ruby/object:Gem::
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
19
|
requirements:
|
60
20
|
- - "="
|
61
21
|
- !ruby/object:Gem::Version
|
@@ -64,9 +24,67 @@ dependencies:
|
|
64
24
|
- !ruby/object:Gem::Dependency
|
65
25
|
name: ruby2ruby
|
66
26
|
version_requirement:
|
67
|
-
version_requirements: !ruby/object:Gem::
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
28
|
requirements:
|
69
29
|
- - "="
|
70
30
|
- !ruby/object:Gem::Version
|
71
31
|
version: 1.1.8
|
72
32
|
version:
|
33
|
+
description: Sake tastes great and helps maintain system-level Rake files.
|
34
|
+
email: chris@ozmm.org
|
35
|
+
executables:
|
36
|
+
- sake
|
37
|
+
extensions: []
|
38
|
+
|
39
|
+
extra_rdoc_files:
|
40
|
+
- bin/sake
|
41
|
+
- lib/help.rb
|
42
|
+
- lib/pastie.rb
|
43
|
+
- lib/sake.rb
|
44
|
+
- lib/server.rb
|
45
|
+
- README
|
46
|
+
- LICENSE
|
47
|
+
files:
|
48
|
+
- bin/sake
|
49
|
+
- lib/help.rb
|
50
|
+
- lib/pastie.rb
|
51
|
+
- lib/sake.rb
|
52
|
+
- lib/server.rb
|
53
|
+
- Manifest
|
54
|
+
- Rakefile
|
55
|
+
- README
|
56
|
+
- LICENSE
|
57
|
+
- sake.gemspec
|
58
|
+
has_rdoc: true
|
59
|
+
homepage: http://errtheblog.com/
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options:
|
62
|
+
- --line-numbers
|
63
|
+
- --inline-source
|
64
|
+
- --title
|
65
|
+
- Sake
|
66
|
+
- --main
|
67
|
+
- README
|
68
|
+
require_paths:
|
69
|
+
- lib
|
70
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: "0"
|
75
|
+
version:
|
76
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: "0"
|
81
|
+
version:
|
82
|
+
requirements: []
|
83
|
+
|
84
|
+
rubyforge_project: err
|
85
|
+
rubygems_version: 1.1.1
|
86
|
+
signing_key:
|
87
|
+
specification_version: 2
|
88
|
+
summary: Sake tastes great and helps maintain system-level Rake files.
|
89
|
+
test_files: []
|
90
|
+
|