bones 1.3.5 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +22 -1
- data/Manifest.txt +5 -4
- data/README.txt +76 -6
- data/Rakefile +21 -17
- data/bin/bones +0 -0
- data/data/Rakefile.erb +2 -2
- data/data/bin/NAME.erb +0 -0
- data/data/tasks/ann.rake +19 -14
- data/data/tasks/bones.rake +5 -24
- data/data/tasks/gem.rake +37 -35
- data/data/tasks/notes.rake +28 -0
- data/data/tasks/post_load.rake +16 -11
- data/data/tasks/{doc.rake → rdoc.rake} +10 -7
- data/data/tasks/rubyforge.rake +10 -10
- data/data/tasks/setup.rb +119 -80
- data/data/tasks/spec.rake +12 -13
- data/data/tasks/svn.rake +15 -11
- data/data/tasks/test.rake +6 -6
- data/lib/bones.rb +10 -2
- data/lib/bones/annotation_extractor.rb +32 -11
- data/lib/bones/debug.rb +72 -0
- data/lib/bones/main.rb +41 -25
- data/tasks/ann.rake +20 -15
- data/tasks/bones.rake +5 -24
- data/tasks/gem.rake +38 -36
- data/tasks/notes.rake +28 -0
- data/tasks/post_load.rake +16 -11
- data/tasks/{doc.rake → rdoc.rake} +11 -8
- data/tasks/rubyforge.rake +11 -11
- data/tasks/setup.rb +120 -81
- data/tasks/spec.rake +12 -13
- data/tasks/svn.rake +16 -12
- data/tasks/test.rake +6 -6
- metadata +9 -8
- data/data/tasks/annotations.rake +0 -22
- data/tasks/annotations.rake +0 -22
data/History.txt
CHANGED
@@ -1,4 +1,25 @@
|
|
1
|
-
==
|
1
|
+
== 2.0.0 / 2008-03-
|
2
|
+
|
3
|
+
* 2 major enhancements
|
4
|
+
- Reworked the PROJ open struct to use nested open struct
|
5
|
+
objects
|
6
|
+
- Renamed a few of the .rake files to match the namespaces
|
7
|
+
they define
|
8
|
+
* 4 minor enhancements
|
9
|
+
- Selectable project skeleton when creating a new project
|
10
|
+
- Added an empty 'prereqs' task to several of the namespaces
|
11
|
+
(can be used for running code before any of the
|
12
|
+
tasks in that namespace are invoked)
|
13
|
+
- Extra refinement on notes
|
14
|
+
rake notes TwP #=> all notes for TwP
|
15
|
+
rake notes:todo TwP #=> all todos for TwP
|
16
|
+
- Insalling a gem will no longer try to update the gem
|
17
|
+
sources from RubyForge
|
18
|
+
* 1 bug fix
|
19
|
+
- On some systems, the quiet method was not reopening
|
20
|
+
stdout and stderr correctly
|
21
|
+
|
22
|
+
== 1.3.5 / 2008-02-27
|
2
23
|
|
3
24
|
* 2 minor enhancements
|
4
25
|
- Added a bones:debug task to inspect the PROJ open struct or
|
data/Manifest.txt
CHANGED
@@ -12,12 +12,12 @@ data/lib/NAME.rb.erb
|
|
12
12
|
data/spec/NAME_spec.rb.erb
|
13
13
|
data/spec/spec_helper.rb.erb
|
14
14
|
data/tasks/ann.rake
|
15
|
-
data/tasks/annotations.rake
|
16
15
|
data/tasks/bones.rake
|
17
|
-
data/tasks/doc.rake
|
18
16
|
data/tasks/gem.rake
|
19
17
|
data/tasks/manifest.rake
|
18
|
+
data/tasks/notes.rake
|
20
19
|
data/tasks/post_load.rake
|
20
|
+
data/tasks/rdoc.rake
|
21
21
|
data/tasks/rubyforge.rake
|
22
22
|
data/tasks/setup.rb
|
23
23
|
data/tasks/spec.rake
|
@@ -26,15 +26,16 @@ data/tasks/test.rake
|
|
26
26
|
data/test/test_NAME.rb
|
27
27
|
lib/bones.rb
|
28
28
|
lib/bones/annotation_extractor.rb
|
29
|
+
lib/bones/debug.rb
|
29
30
|
lib/bones/main.rb
|
30
31
|
lib/bones/smtp_tls.rb
|
31
32
|
tasks/ann.rake
|
32
|
-
tasks/annotations.rake
|
33
33
|
tasks/bones.rake
|
34
|
-
tasks/doc.rake
|
35
34
|
tasks/gem.rake
|
36
35
|
tasks/manifest.rake
|
36
|
+
tasks/notes.rake
|
37
37
|
tasks/post_load.rake
|
38
|
+
tasks/rdoc.rake
|
38
39
|
tasks/rubyforge.rake
|
39
40
|
tasks/setup.rb
|
40
41
|
tasks/spec.rake
|
data/README.txt
CHANGED
@@ -10,7 +10,75 @@ ease the management and deployment of your source code. Mr Bones is not
|
|
10
10
|
viral -- all the code your project needs is included in the skeleton (no
|
11
11
|
gem dependency required).
|
12
12
|
|
13
|
-
==
|
13
|
+
== VERSION 2.0.0 CHANGES:
|
14
|
+
|
15
|
+
Version 2.0.0 of Mr Bones introduces backwards incompatibilities. Here is
|
16
|
+
what you need to update in order for your current projects to work with
|
17
|
+
this latest release.
|
18
|
+
|
19
|
+
Perform an update the tasks in your project directory:
|
20
|
+
|
21
|
+
bones -u your/project/directory
|
22
|
+
|
23
|
+
The following .rake files have been renamed in Mr Bones 2.0.0 (the old
|
24
|
+
name is on the left and the new name is on the right). You will need to
|
25
|
+
delete the old version and use only the new version.
|
26
|
+
|
27
|
+
doc.rake => rdoc.rake
|
28
|
+
annotations.rake => notes.rake
|
29
|
+
|
30
|
+
The PROJ openstruct has been amended to contain a collection of nested
|
31
|
+
openstructs. This will affect any settings you might have in the
|
32
|
+
top-level Rakefile for your project. Here is the translation key (old
|
33
|
+
names on the left and new names on the right).
|
34
|
+
|
35
|
+
rubyforge_name => rubyforge.name
|
36
|
+
|
37
|
+
specs => spec.files
|
38
|
+
spec_opts => spec.opts
|
39
|
+
|
40
|
+
tests => test.files
|
41
|
+
test_file => test.file
|
42
|
+
test_opts => test.opts
|
43
|
+
|
44
|
+
rcov_dir => rcov.dir
|
45
|
+
rcov_opts => rcov.opts
|
46
|
+
rcov_threshold => rcov.threshold
|
47
|
+
rcov_threshold_exact => rcov.threshold_exact
|
48
|
+
|
49
|
+
rdoc_opts => rdoc.opts
|
50
|
+
rdoc_include => rdoc.include
|
51
|
+
rdoc_exclude => rdoc.exclude
|
52
|
+
rdoc_main => rdoc.main
|
53
|
+
rdoc_dir => rdoc.dir
|
54
|
+
rdoc_remote_dir => rdoc.remote_dir
|
55
|
+
|
56
|
+
dependencies => gem.dependencies
|
57
|
+
executables => gem.executables
|
58
|
+
extensions => gem.extensions
|
59
|
+
files => gem.files
|
60
|
+
need_tar => gem.need_tar
|
61
|
+
need_zip => gem.need_zip
|
62
|
+
post_install_message => gem.extras['post_install_message']
|
63
|
+
|
64
|
+
annotation_exclude => notes.exclude
|
65
|
+
annotation_extensions => notes.extensions
|
66
|
+
annotation_tags => notes.tags
|
67
|
+
|
68
|
+
svn => svn.path
|
69
|
+
svn_root => svn.root
|
70
|
+
svn_trunk => svn.trunk
|
71
|
+
svn_tags => svn.tags
|
72
|
+
svn_branches => svn.branches
|
73
|
+
|
74
|
+
ann_file => ann.file
|
75
|
+
ann_text => ann.text
|
76
|
+
ann_paragraphs => ann.paragraphs
|
77
|
+
ann_email => ann.email
|
78
|
+
|
79
|
+
And of course, each name should be prepended with PROJ in your Rakefile.
|
80
|
+
|
81
|
+
== FEATURES:
|
14
82
|
|
15
83
|
Mr Bones provides the following rake tasks:
|
16
84
|
|
@@ -101,13 +169,15 @@ the Rakefile for the Mr Bones gem itself:
|
|
101
169
|
PROJ.authors = 'Tim Pease'
|
102
170
|
PROJ.email = 'not.real@fake.com'
|
103
171
|
PROJ.url = 'http://codeforpeople.rubyforge.org/bones'
|
104
|
-
PROJ.rubyforge_name = 'codeforpeople'
|
105
|
-
PROJ.rdoc_remote_dir = 'bones'
|
106
172
|
PROJ.version = Bones::VERSION
|
173
|
+
PROJ.rubyforge.name = 'codeforpeople'
|
174
|
+
|
175
|
+
PROJ.rdoc.remote_dir = 'bones'
|
176
|
+
PROJ.rdoc.exclude << '^data'
|
177
|
+
|
178
|
+
PROJ.notes.exclude = %w(^README\.txt$ ^data/)
|
107
179
|
|
108
|
-
PROJ.
|
109
|
-
PROJ.annotation_exclude = %w(^README\.txt$ ^data/)
|
110
|
-
PROJ.svn = 'bones'
|
180
|
+
PROJ.svn.path = 'bones'
|
111
181
|
|
112
182
|
PROJ.spec_opts << '--color'
|
113
183
|
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: Rakefile
|
1
|
+
# $Id: Rakefile 587 2008-04-07 20:28:43Z tim_pease $
|
2
2
|
|
3
3
|
$:.unshift('lib')
|
4
4
|
|
@@ -9,44 +9,48 @@ PROJ.name = 'bones'
|
|
9
9
|
PROJ.authors = 'Tim Pease'
|
10
10
|
PROJ.email = 'tim.pease@gmail.com'
|
11
11
|
PROJ.url = 'http://codeforpeople.rubyforge.org/bones'
|
12
|
-
PROJ.rubyforge_name = 'codeforpeople'
|
13
|
-
PROJ.rdoc_remote_dir = 'bones'
|
14
12
|
PROJ.version = Bones::VERSION
|
15
|
-
PROJ.release_name = '
|
13
|
+
PROJ.release_name = 'Pygmy Orchestra'
|
16
14
|
|
17
|
-
PROJ.
|
18
|
-
PROJ.annotation_exclude = %w(^README\.txt$ ^data/ ^tasks/setup.rb$)
|
19
|
-
PROJ.svn = 'bones'
|
15
|
+
PROJ.rubyforge.name = 'codeforpeople'
|
20
16
|
|
21
|
-
PROJ.
|
17
|
+
PROJ.rdoc.remote_dir = 'bones'
|
18
|
+
PROJ.rdoc.exclude << '^data/'
|
19
|
+
PROJ.notes.exclude = %w(^README\.txt$ ^data/ ^tasks/setup.rb$)
|
20
|
+
PROJ.svn.path = 'bones'
|
22
21
|
|
23
|
-
PROJ.
|
24
|
-
PROJ.ann_email[:port] = 587
|
22
|
+
PROJ.spec.opts << '--color'
|
25
23
|
|
26
|
-
PROJ.
|
24
|
+
PROJ.ann.email[:server] = 'smtp.gmail.com'
|
25
|
+
PROJ.ann.email[:port] = 587
|
26
|
+
|
27
|
+
PROJ.gem.extras[:required_rubygems_version] = '>= 1.1.0'
|
28
|
+
PROJ.gem.extras[:post_install_message] = <<-MSG
|
27
29
|
--------------------------
|
28
30
|
Keep rattlin' dem bones!
|
29
31
|
--------------------------
|
30
32
|
MSG
|
31
33
|
|
32
|
-
PROJ.
|
33
|
-
PROJ.
|
34
|
+
PROJ.ann.paragraphs = %w[install synopsis].unshift('version 2.0.0 changes')
|
35
|
+
#PROJ.ann.paragraphs = %w[install synopsis features requirements].unshift('version 2.0.0 changes')
|
36
|
+
PROJ.ann.text = <<-ANN
|
34
37
|
== FUN FACT
|
35
38
|
|
36
|
-
|
39
|
+
The number of left-handed men is double that of left-handed women.
|
37
40
|
|
38
41
|
== POST SCRIPT
|
39
42
|
|
40
43
|
Blessings,
|
41
44
|
TwP
|
42
45
|
|
43
|
-
#{PROJ.post_install_message}
|
46
|
+
#{PROJ.gem.extras[:post_install_message]}
|
44
47
|
ANN
|
45
48
|
|
46
49
|
task :default => 'spec:run'
|
47
50
|
task 'gem:package' => 'manifest:assert'
|
48
|
-
task
|
49
|
-
|
51
|
+
task 'ann:prereqs' do
|
52
|
+
PROJ.name = 'Mr Bones'
|
53
|
+
end
|
50
54
|
|
51
55
|
depend_on 'rake'
|
52
56
|
|
data/bin/bones
CHANGED
File without changes
|
data/data/Rakefile.erb
CHANGED
@@ -13,8 +13,8 @@ PROJ.name = '<%= name %>'
|
|
13
13
|
PROJ.authors = 'FIXME (who is writing this software)'
|
14
14
|
PROJ.email = 'FIXME (your e-mail)'
|
15
15
|
PROJ.url = 'FIXME (project homepage)'
|
16
|
-
PROJ.
|
16
|
+
PROJ.rubyforge.name = '<%= name %>'
|
17
17
|
|
18
|
-
PROJ.
|
18
|
+
PROJ.spec.opts << '--color'
|
19
19
|
|
20
20
|
# EOF
|
data/data/bin/NAME.erb
CHANGED
File without changes
|
data/data/tasks/ann.rake
CHANGED
@@ -9,12 +9,16 @@ require 'time'
|
|
9
9
|
|
10
10
|
namespace :ann do
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
# A prerequisites task that all other tasks depend upon
|
13
|
+
task :prereqs
|
14
|
+
|
15
|
+
file PROJ.ann.file do
|
16
|
+
ann = PROJ.ann
|
17
|
+
puts "Generating #{ann.file}"
|
18
|
+
File.open(ann.file,'w') do |fd|
|
15
19
|
fd.puts("#{PROJ.name} version #{PROJ.version}")
|
16
20
|
fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
|
17
|
-
fd.puts(" #{PROJ.url}") if PROJ.url
|
21
|
+
fd.puts(" #{PROJ.url}") if PROJ.url.valid?
|
18
22
|
fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
|
19
23
|
fd.puts
|
20
24
|
fd.puts("== DESCRIPTION")
|
@@ -23,23 +27,24 @@ namespace :ann do
|
|
23
27
|
fd.puts
|
24
28
|
fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
|
25
29
|
fd.puts
|
26
|
-
|
30
|
+
ann.paragraphs.each do |p|
|
27
31
|
fd.puts "== #{p.upcase}"
|
28
32
|
fd.puts
|
29
33
|
fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
|
30
34
|
fd.puts
|
31
35
|
end
|
32
|
-
fd.puts
|
36
|
+
fd.puts ann.text if ann.text
|
33
37
|
end
|
34
38
|
end
|
35
39
|
|
36
40
|
desc "Create an announcement file"
|
37
|
-
task :announcement => PROJ.
|
41
|
+
task :announcement => ['ann:prereqs', PROJ.ann.file]
|
38
42
|
|
39
43
|
desc "Send an email announcement"
|
40
|
-
task :email => PROJ.
|
41
|
-
|
42
|
-
|
44
|
+
task :email => ['ann:prereqs', PROJ.ann.file] do
|
45
|
+
ann = PROJ.ann
|
46
|
+
from = ann.email[:from] || PROJ.email
|
47
|
+
to = Array(ann.email[:to])
|
43
48
|
|
44
49
|
### build a mail header for RFC 822
|
45
50
|
rfc822msg = "From: #{from}\n"
|
@@ -49,11 +54,11 @@ namespace :ann do
|
|
49
54
|
rfc822msg << "\n"
|
50
55
|
rfc822msg << "Date: #{Time.new.rfc822}\n"
|
51
56
|
rfc822msg << "Message-Id: "
|
52
|
-
rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{
|
53
|
-
rfc822msg << File.read(
|
57
|
+
rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
|
58
|
+
rfc822msg << File.read(ann.file)
|
54
59
|
|
55
60
|
params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
|
56
|
-
|
61
|
+
ann.email[key]
|
57
62
|
end
|
58
63
|
|
59
64
|
params[3] = PROJ.email if params[3].nil?
|
@@ -71,6 +76,6 @@ end # namespace :ann
|
|
71
76
|
desc 'Alias to ann:announcement'
|
72
77
|
task :ann => 'ann:announcement'
|
73
78
|
|
74
|
-
CLOBBER << PROJ.
|
79
|
+
CLOBBER << PROJ.ann.file
|
75
80
|
|
76
81
|
# EOF
|
data/data/tasks/bones.rake
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# $Id$
|
2
2
|
|
3
|
-
|
4
|
-
require 'stringio'
|
3
|
+
if HAVE_BONES
|
5
4
|
|
6
5
|
namespace :bones do
|
7
6
|
|
@@ -10,31 +9,13 @@ namespace :bones do
|
|
10
9
|
atr = if ARGV.length == 2
|
11
10
|
t.application.top_level_tasks.pop
|
12
11
|
end
|
13
|
-
sio = StringIO.new
|
14
|
-
sep = "\n" + ' '*27
|
15
|
-
fmt = "%23s => %s"
|
16
12
|
|
17
|
-
if atr
|
18
|
-
|
19
|
-
sio.seek 0
|
20
|
-
val = sio.read
|
21
|
-
val = val.split("\n").join(sep)
|
22
|
-
|
23
|
-
puts fmt % [atr, val]
|
24
|
-
else
|
25
|
-
h = PROJ.instance_variable_get(:@table)
|
26
|
-
h.keys.map {|k| k.to_s}.sort.each do |k|
|
27
|
-
sio.truncate 0
|
28
|
-
PP.pp(h[k.to_sym], sio, 49)
|
29
|
-
sio.seek 0
|
30
|
-
val = sio.read
|
31
|
-
val = val.split("\n").join(sep)
|
32
|
-
|
33
|
-
puts fmt % [k, val]
|
34
|
-
end
|
35
|
-
end
|
13
|
+
if atr then Bones::Debug.show_attr(PROJ, atr)
|
14
|
+
else Bones::Debug.show PROJ end
|
36
15
|
end
|
37
16
|
|
38
17
|
end # namespace :bones
|
39
18
|
|
19
|
+
end # HAVE_BONES
|
20
|
+
|
40
21
|
# EOF
|
data/data/tasks/gem.rake
CHANGED
@@ -4,84 +4,86 @@ require 'rake/gempackagetask'
|
|
4
4
|
|
5
5
|
namespace :gem do
|
6
6
|
|
7
|
-
PROJ.
|
7
|
+
PROJ.gem._spec = Gem::Specification.new do |s|
|
8
8
|
s.name = PROJ.name
|
9
9
|
s.version = PROJ.version
|
10
10
|
s.summary = PROJ.summary
|
11
11
|
s.authors = Array(PROJ.authors)
|
12
12
|
s.email = PROJ.email
|
13
13
|
s.homepage = Array(PROJ.url).first
|
14
|
-
s.rubyforge_project = PROJ.
|
15
|
-
s.post_install_message = PROJ.post_install_message
|
14
|
+
s.rubyforge_project = PROJ.rubyforge.name
|
16
15
|
|
17
16
|
s.description = PROJ.description
|
18
17
|
|
19
|
-
PROJ.dependencies.each do |dep|
|
18
|
+
PROJ.gem.dependencies.each do |dep|
|
20
19
|
s.add_dependency(*dep)
|
21
20
|
end
|
22
21
|
|
23
|
-
s.files = PROJ.files
|
24
|
-
s.executables = PROJ.executables.map {|fn| File.basename(fn)}
|
25
|
-
s.extensions = PROJ.files.grep %r/extconf\.rb$/
|
22
|
+
s.files = PROJ.gem.files
|
23
|
+
s.executables = PROJ.gem.executables.map {|fn| File.basename(fn)}
|
24
|
+
s.extensions = PROJ.gem.files.grep %r/extconf\.rb$/
|
26
25
|
|
27
26
|
s.bindir = 'bin'
|
28
27
|
dirs = Dir["{#{PROJ.libs.join(',')}}"]
|
29
28
|
s.require_paths = dirs unless dirs.empty?
|
30
29
|
|
31
|
-
incl = Regexp.new(PROJ.
|
32
|
-
excl = PROJ.
|
30
|
+
incl = Regexp.new(PROJ.rdoc.include.join('|'))
|
31
|
+
excl = PROJ.rdoc.exclude.dup.concat %w[\.rb$ ^(\.\/|\/)?ext]
|
33
32
|
excl = Regexp.new(excl.join('|'))
|
34
|
-
rdoc_files = PROJ.files.find_all do |fn|
|
33
|
+
rdoc_files = PROJ.gem.files.find_all do |fn|
|
35
34
|
case fn
|
36
35
|
when excl; false
|
37
36
|
when incl; true
|
38
37
|
else false end
|
39
38
|
end
|
40
|
-
s.rdoc_options = PROJ.
|
39
|
+
s.rdoc_options = PROJ.rdoc.opts + ['--main', PROJ.rdoc.main]
|
41
40
|
s.extra_rdoc_files = rdoc_files
|
42
41
|
s.has_rdoc = true
|
43
42
|
|
44
|
-
if test ?f, PROJ.
|
45
|
-
s.test_file = PROJ.
|
43
|
+
if test ?f, PROJ.test.file
|
44
|
+
s.test_file = PROJ.test.file
|
46
45
|
else
|
47
|
-
s.test_files = PROJ.
|
46
|
+
s.test_files = PROJ.test.files.to_a
|
48
47
|
end
|
49
48
|
|
50
49
|
# Do any extra stuff the user wants
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
end
|
50
|
+
PROJ.gem.extras.each do |msg, val|
|
51
|
+
case val
|
52
|
+
when Proc
|
53
|
+
val.call(s.send(msg))
|
54
|
+
else
|
55
|
+
s.send "#{msg}=", val
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end # Gem::Specification.new
|
59
|
+
|
60
|
+
# A prerequisites task that all other tasks depend upon
|
61
|
+
task :prereqs
|
60
62
|
|
61
63
|
desc 'Show information about the gem'
|
62
|
-
task :debug do
|
63
|
-
puts PROJ.
|
64
|
+
task :debug => 'gem:prereqs' do
|
65
|
+
puts PROJ.gem._spec.to_ruby
|
64
66
|
end
|
65
67
|
|
66
68
|
pkg = Rake::PackageTask.new(PROJ.name, PROJ.version) do |pkg|
|
67
|
-
pkg.need_tar = PROJ.need_tar
|
68
|
-
pkg.need_zip = PROJ.need_zip
|
69
|
-
pkg.package_files += PROJ.
|
69
|
+
pkg.need_tar = PROJ.gem.need_tar
|
70
|
+
pkg.need_zip = PROJ.gem.need_zip
|
71
|
+
pkg.package_files += PROJ.gem._spec.files
|
70
72
|
end
|
71
73
|
Rake::Task['gem:package'].instance_variable_set(:@full_comment, nil)
|
72
74
|
|
73
|
-
gem_file = if PROJ.
|
75
|
+
gem_file = if PROJ.gem._spec.platform == Gem::Platform::RUBY
|
74
76
|
"#{pkg.package_name}.gem"
|
75
77
|
else
|
76
|
-
"#{pkg.package_name}-#{PROJ.
|
78
|
+
"#{pkg.package_name}-#{PROJ.gem._spec.platform}.gem"
|
77
79
|
end
|
78
80
|
|
79
81
|
desc "Build the gem file #{gem_file}"
|
80
|
-
task :package => "#{pkg.package_dir}/#{gem_file}"
|
82
|
+
task :package => ['gem:prereqs', "#{pkg.package_dir}/#{gem_file}"]
|
81
83
|
|
82
|
-
file "#{pkg.package_dir}/#{gem_file}" => [pkg.package_dir] + PROJ.
|
84
|
+
file "#{pkg.package_dir}/#{gem_file}" => [pkg.package_dir] + PROJ.gem._spec.files do
|
83
85
|
when_writing("Creating GEM") {
|
84
|
-
Gem::Builder.new(PROJ.
|
86
|
+
Gem::Builder.new(PROJ.gem._spec).build
|
85
87
|
verbose(true) {
|
86
88
|
mv gem_file, "#{pkg.package_dir}/#{gem_file}"
|
87
89
|
}
|
@@ -90,14 +92,14 @@ namespace :gem do
|
|
90
92
|
|
91
93
|
desc 'Install the gem'
|
92
94
|
task :install => [:clobber, :package] do
|
93
|
-
sh "#{SUDO} #{GEM} install pkg/#{PROJ.
|
95
|
+
sh "#{SUDO} #{GEM} install --no-update-sources pkg/#{PROJ.gem._spec.full_name}"
|
94
96
|
end
|
95
97
|
|
96
98
|
desc 'Uninstall the gem'
|
97
99
|
task :uninstall do
|
98
100
|
installed_list = Gem.source_index.find_name(PROJ.name)
|
99
101
|
if installed_list and installed_list.collect { |s| s.version.to_s}.include?(PROJ.version) then
|
100
|
-
sh "#{SUDO} #{GEM} uninstall -v '#{PROJ.version}' -
|
102
|
+
sh "#{SUDO} #{GEM} uninstall -v '#{PROJ.version}' -I -x #{PROJ.name}"
|
101
103
|
end
|
102
104
|
end
|
103
105
|
|