turn 0.6.0 → 0.6.1
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/.meta/package +1 -0
- data/.meta/ruby +1 -0
- data/.meta/version +1 -0
- data/History.txt +3 -0
- data/Rakefile +15 -19
- data/Release.txt +15 -2
- data/lib/turn.rb +3 -3
- data/lib/turn/colorize.rb +7 -7
- data/lib/turn/reporters/marshal_reporter.rb +2 -2
- data/lib/turn/reporters/outline_reporter.rb +4 -4
- data/lib/turn/reporters/progress_reporter.rb +2 -2
- metadata +32 -25
- data/VERSION +0 -1
- data/tasks/ann.rake +0 -80
- data/tasks/bones.rake +0 -20
- data/tasks/gem.rake +0 -201
- data/tasks/git.rake +0 -40
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -51
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -292
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/zentest.rake +0 -36
- data/turn.gemspec +0 -37
- data/work/quicktest.rb +0 -42
- data/work/turn.rb +0 -119
data/.meta/package
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
turn
|
data/.meta/ruby
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.8+
|
data/.meta/version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.6.1
|
data/History.txt
CHANGED
data/Rakefile
CHANGED
@@ -1,32 +1,28 @@
|
|
1
1
|
|
2
2
|
begin
|
3
3
|
require 'bones'
|
4
|
-
Bones.setup
|
5
4
|
rescue LoadError
|
6
|
-
|
7
|
-
load 'tasks/setup.rb'
|
8
|
-
rescue LoadError
|
9
|
-
raise RuntimeError, '### please install the "bones" gem ###'
|
10
|
-
end
|
5
|
+
abort '### please install the "bones" gem ###'
|
11
6
|
end
|
12
7
|
|
13
8
|
task :default => 'test'
|
14
9
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
10
|
+
Bones {
|
11
|
+
name 'turn'
|
12
|
+
summary 'Test::Unit Reporter (New) -- new output format for Test::Unit'
|
13
|
+
authors 'Tim Pease'
|
14
|
+
email 'tim.pease@gmail.com'
|
15
|
+
url 'http://gemcutter.org/gems/turn'
|
16
|
+
version File.read('.meta/version').strip
|
17
|
+
ignore_file '.gitignore'
|
22
18
|
|
23
|
-
|
19
|
+
exclude << '^work'
|
20
|
+
rdoc.exclude << '^lib'
|
24
21
|
|
25
|
-
|
26
|
-
|
22
|
+
use_gmail
|
23
|
+
enable_sudo
|
27
24
|
|
28
|
-
|
29
|
-
|
30
|
-
PROJ.ann.email[:from] = 'Tim Pease'
|
25
|
+
depend_on 'bones-git', :development => true
|
26
|
+
}
|
31
27
|
|
32
28
|
# EOF
|
data/Release.txt
CHANGED
@@ -1,4 +1,15 @@
|
|
1
|
-
= Turn 0.6
|
1
|
+
= Turn 0.6.1
|
2
|
+
|
3
|
+
The facets/ansicode.rb library has been spun off as a separate
|
4
|
+
project called 'ansi'. So this version swaps out its optional
|
5
|
+
color support for the new project as well. You can install it via:
|
6
|
+
|
7
|
+
gem install ansi
|
8
|
+
|
9
|
+
You might want to take at the library, it has a few other
|
10
|
+
interesting ANSI-related classes as well.
|
11
|
+
|
12
|
+
== As of 0.6.0
|
2
13
|
|
3
14
|
Turn 0.6 is now compatible with Test/Unit 2.0.
|
4
15
|
|
@@ -8,7 +19,9 @@ correctly.
|
|
8
19
|
|
9
20
|
Other than that this release is the same as the 0.5.1 release.
|
10
21
|
|
11
|
-
As of 0.5
|
22
|
+
== As of 0.5.0
|
23
|
+
|
24
|
+
As of 0.5.0, Turn has some signifficant new features:
|
12
25
|
|
13
26
|
While Turn still provides the exact same functionality for running
|
14
27
|
tests via ruby or testrb as previous versions. The turn commandline
|
data/lib/turn.rb
CHANGED
@@ -35,8 +35,8 @@ module Console
|
|
35
35
|
|
36
36
|
bar = '=' * 78
|
37
37
|
if COLORIZE
|
38
|
-
bar = if pass == total then ::
|
39
|
-
else ::
|
38
|
+
bar = if pass == total then ::ANSI::Code.green bar
|
39
|
+
else ::ANSI::Code.red bar end
|
40
40
|
end
|
41
41
|
|
42
42
|
turn_out.puts bar
|
@@ -73,7 +73,7 @@ module Console
|
|
73
73
|
msg << fault.message.gsub("\n","\n\t")
|
74
74
|
end
|
75
75
|
|
76
|
-
msg = ::
|
76
|
+
msg = ::ANSI::Code.magenta msg if COLORIZE
|
77
77
|
turn_out.puts msg
|
78
78
|
end
|
79
79
|
|
data/lib/turn/colorize.rb
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
begin
|
2
|
-
require '
|
2
|
+
require 'ansi/code'
|
3
3
|
rescue LoadError
|
4
4
|
begin
|
5
5
|
require 'rubygems'
|
6
|
-
require '
|
6
|
+
require 'ansi/code'
|
7
7
|
rescue LoadError
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
11
|
module Turn
|
12
|
-
|
12
|
+
|
13
13
|
module Colorize
|
14
14
|
|
15
|
-
COLORIZE = defined?(::
|
15
|
+
COLORIZE = defined?(::ANSI::Code) && ENV.has_key?('TERM')
|
16
16
|
|
17
17
|
if COLORIZE
|
18
|
-
PASS = ::
|
19
|
-
FAIL = ::
|
20
|
-
ERROR = ::
|
18
|
+
PASS = ::ANSI::Code.green('PASS')
|
19
|
+
FAIL = ::ANSI::Code.red('FAIL')
|
20
|
+
ERROR = ::ANSI::Code.white(::ANSI::Code.on_red('ERROR'))
|
21
21
|
else
|
22
22
|
PASS = "PASS"
|
23
23
|
FAIL = "FAIL"
|
@@ -30,7 +30,7 @@ module Turn
|
|
30
30
|
#def pass(message=nil)
|
31
31
|
# io.puts " #{PASS}"
|
32
32
|
# if message
|
33
|
-
# message = ::
|
33
|
+
# message = ::ANSI::Code.magenta(message) if COLORIZE
|
34
34
|
# io.puts(message.to_s)
|
35
35
|
# end
|
36
36
|
#end
|
@@ -38,7 +38,7 @@ module Turn
|
|
38
38
|
#def fail(message=nil)
|
39
39
|
# io.puts(" #{FAIL}")
|
40
40
|
# if message
|
41
|
-
# message = ::
|
41
|
+
# message = ::ANSI::Code.magenta(message) if COLORIZE
|
42
42
|
# io.puts(message.to_s)
|
43
43
|
# end
|
44
44
|
#end
|
@@ -33,7 +33,7 @@ module Turn
|
|
33
33
|
def pass(message=nil)
|
34
34
|
io.puts " #{PASS}"
|
35
35
|
if message
|
36
|
-
message = ::
|
36
|
+
message = ::ANSI::Code.magenta(message) if COLORIZE
|
37
37
|
message = message.to_s.tabto(8)
|
38
38
|
io.puts(message)
|
39
39
|
end
|
@@ -42,7 +42,7 @@ module Turn
|
|
42
42
|
def fail(message=nil)
|
43
43
|
io.puts(" #{FAIL}")
|
44
44
|
if message
|
45
|
-
message = ::
|
45
|
+
message = ::ANSI::Code.magenta(message) if COLORIZE
|
46
46
|
message = message.to_s.tabto(8)
|
47
47
|
io.puts(message)
|
48
48
|
end
|
@@ -67,8 +67,8 @@ module Turn
|
|
67
67
|
|
68
68
|
bar = '=' * 78
|
69
69
|
if COLORIZE
|
70
|
-
bar = if pass == total then ::
|
71
|
-
else ::
|
70
|
+
bar = if pass == total then ::ANSI::Code.green bar
|
71
|
+
else ::ANSI::Code.red bar end
|
72
72
|
end
|
73
73
|
|
74
74
|
tally = [total, suite.count_assertions]
|
@@ -53,7 +53,7 @@ module Turn
|
|
53
53
|
suite.each do |testrun|
|
54
54
|
if testrun.files != [testrun.name] && testrun.files != files
|
55
55
|
label = testrun.files.join(' ')
|
56
|
-
label = ::
|
56
|
+
label = ::ANSI::Code.magenta(label) if COLORIZE
|
57
57
|
io.puts(label + "\n")
|
58
58
|
files = testrun.files
|
59
59
|
end
|
@@ -77,7 +77,7 @@ module Turn
|
|
77
77
|
io.puts "\n\n-- Failures and Errors --\n\n"
|
78
78
|
fails.uniq.each do |testrun|
|
79
79
|
message = testrun.message.tabto(0).strip
|
80
|
-
message = ::
|
80
|
+
message = ::ANSI::Code.red(message) if COLORIZE
|
81
81
|
io.puts(message+"\n\n")
|
82
82
|
end
|
83
83
|
io.puts
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Pease
|
@@ -9,9 +9,19 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-11-07 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: bones-git
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.0.0
|
24
|
+
version:
|
15
25
|
- !ruby/object:Gem::Dependency
|
16
26
|
name: bones
|
17
27
|
type: :development
|
@@ -20,9 +30,18 @@ dependencies:
|
|
20
30
|
requirements:
|
21
31
|
- - ">="
|
22
32
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
33
|
+
version: 3.0.0
|
24
34
|
version:
|
25
|
-
description:
|
35
|
+
description: |-
|
36
|
+
TURN is a new way to view Test::Unit results. With longer running tests, it
|
37
|
+
can be very frustrating to see a failure (....F...) and then have to wait till
|
38
|
+
all the tests finish before you can see what the exact failure was. TURN
|
39
|
+
displays each test on a separate line with failures being displayed
|
40
|
+
immediately instead of at the end of the tests.
|
41
|
+
|
42
|
+
If you have the 'facets' gem installed, then TURN output will be displayed in
|
43
|
+
wonderful technicolor (but only if your terminal supports ANSI color codes).
|
44
|
+
Well, the only colors are green and red, but that is still color.
|
26
45
|
email: tim.pease@gmail.com
|
27
46
|
executables:
|
28
47
|
- turn
|
@@ -34,11 +53,13 @@ extra_rdoc_files:
|
|
34
53
|
- Release.txt
|
35
54
|
- bin/turn
|
36
55
|
files:
|
56
|
+
- .meta/package
|
57
|
+
- .meta/ruby
|
58
|
+
- .meta/version
|
37
59
|
- History.txt
|
38
60
|
- README.txt
|
39
61
|
- Rakefile
|
40
62
|
- Release.txt
|
41
|
-
- VERSION
|
42
63
|
- bin/turn
|
43
64
|
- lib/turn.rb
|
44
65
|
- lib/turn/colorize.rb
|
@@ -57,26 +78,12 @@ files:
|
|
57
78
|
- lib/turn/runners/loadrunner.rb
|
58
79
|
- lib/turn/runners/solorunner.rb
|
59
80
|
- lib/turn/runners/testrunner.rb
|
60
|
-
- tasks/ann.rake
|
61
|
-
- tasks/bones.rake
|
62
|
-
- tasks/gem.rake
|
63
|
-
- tasks/git.rake
|
64
|
-
- tasks/notes.rake
|
65
|
-
- tasks/post_load.rake
|
66
|
-
- tasks/rdoc.rake
|
67
|
-
- tasks/rubyforge.rake
|
68
|
-
- tasks/setup.rb
|
69
|
-
- tasks/spec.rake
|
70
|
-
- tasks/svn.rake
|
71
|
-
- tasks/test.rake
|
72
|
-
- tasks/zentest.rake
|
73
81
|
- test/test_example.rb
|
74
82
|
- test/test_sample.rb
|
75
|
-
- turn.gemspec
|
76
|
-
- work/quicktest.rb
|
77
|
-
- work/turn.rb
|
78
83
|
has_rdoc: true
|
79
|
-
homepage: http://
|
84
|
+
homepage: http://gemcutter.org/gems/turn
|
85
|
+
licenses: []
|
86
|
+
|
80
87
|
post_install_message:
|
81
88
|
rdoc_options:
|
82
89
|
- --main
|
@@ -97,10 +104,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
104
|
version:
|
98
105
|
requirements: []
|
99
106
|
|
100
|
-
rubyforge_project:
|
101
|
-
rubygems_version: 1.3.
|
107
|
+
rubyforge_project: turn
|
108
|
+
rubygems_version: 1.3.5
|
102
109
|
signing_key:
|
103
|
-
specification_version:
|
110
|
+
specification_version: 3
|
104
111
|
summary: Test::Unit Reporter (New) -- new output format for Test::Unit
|
105
112
|
test_files:
|
106
113
|
- test/test_example.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
turn 0.6.0 stable (2009-05-30)
|
data/tasks/ann.rake
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
|
2
|
-
begin
|
3
|
-
require 'bones/smtp_tls'
|
4
|
-
rescue LoadError
|
5
|
-
require 'net/smtp'
|
6
|
-
end
|
7
|
-
require 'time'
|
8
|
-
|
9
|
-
namespace :ann do
|
10
|
-
|
11
|
-
# A prerequisites task that all other tasks depend upon
|
12
|
-
task :prereqs
|
13
|
-
|
14
|
-
file PROJ.ann.file do
|
15
|
-
ann = PROJ.ann
|
16
|
-
puts "Generating #{ann.file}"
|
17
|
-
File.open(ann.file,'w') do |fd|
|
18
|
-
fd.puts("#{PROJ.name} version #{PROJ.version}")
|
19
|
-
fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
|
20
|
-
fd.puts(" #{PROJ.url}") if PROJ.url.valid?
|
21
|
-
fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
|
22
|
-
fd.puts
|
23
|
-
fd.puts("== DESCRIPTION")
|
24
|
-
fd.puts
|
25
|
-
fd.puts(PROJ.description)
|
26
|
-
fd.puts
|
27
|
-
fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
|
28
|
-
fd.puts
|
29
|
-
ann.paragraphs.each do |p|
|
30
|
-
fd.puts "== #{p.upcase}"
|
31
|
-
fd.puts
|
32
|
-
fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
|
33
|
-
fd.puts
|
34
|
-
end
|
35
|
-
fd.puts ann.text if ann.text
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
desc "Create an announcement file"
|
40
|
-
task :announcement => ['ann:prereqs', PROJ.ann.file]
|
41
|
-
|
42
|
-
desc "Send an email announcement"
|
43
|
-
task :email => ['ann:prereqs', PROJ.ann.file] do
|
44
|
-
ann = PROJ.ann
|
45
|
-
from = ann.email[:from] || Array(PROJ.authors).first || PROJ.email
|
46
|
-
to = Array(ann.email[:to])
|
47
|
-
|
48
|
-
### build a mail header for RFC 822
|
49
|
-
rfc822msg = "From: #{from}\n"
|
50
|
-
rfc822msg << "To: #{to.join(',')}\n"
|
51
|
-
rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
|
52
|
-
rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
|
53
|
-
rfc822msg << "\n"
|
54
|
-
rfc822msg << "Date: #{Time.new.rfc822}\n"
|
55
|
-
rfc822msg << "Message-Id: "
|
56
|
-
rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
|
57
|
-
rfc822msg << File.read(ann.file)
|
58
|
-
|
59
|
-
params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
|
60
|
-
ann.email[key]
|
61
|
-
end
|
62
|
-
|
63
|
-
params[3] = PROJ.email if params[3].nil?
|
64
|
-
|
65
|
-
if params[4].nil?
|
66
|
-
STDOUT.write "Please enter your e-mail password (#{params[3]}): "
|
67
|
-
params[4] = STDIN.gets.chomp
|
68
|
-
end
|
69
|
-
|
70
|
-
### send email
|
71
|
-
Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
|
72
|
-
end
|
73
|
-
end # namespace :ann
|
74
|
-
|
75
|
-
desc 'Alias to ann:announcement'
|
76
|
-
task :ann => 'ann:announcement'
|
77
|
-
|
78
|
-
CLOBBER << PROJ.ann.file
|
79
|
-
|
80
|
-
# EOF
|
data/tasks/bones.rake
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
|
2
|
-
if HAVE_BONES
|
3
|
-
|
4
|
-
namespace :bones do
|
5
|
-
|
6
|
-
desc 'Show the PROJ open struct'
|
7
|
-
task :debug do |t|
|
8
|
-
atr = if t.application.top_level_tasks.length == 2
|
9
|
-
t.application.top_level_tasks.pop
|
10
|
-
end
|
11
|
-
|
12
|
-
if atr then Bones::Debug.show_attr(PROJ, atr)
|
13
|
-
else Bones::Debug.show PROJ end
|
14
|
-
end
|
15
|
-
|
16
|
-
end # namespace :bones
|
17
|
-
|
18
|
-
end # HAVE_BONES
|
19
|
-
|
20
|
-
# EOF
|
data/tasks/gem.rake
DELETED
@@ -1,201 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'find'
|
3
|
-
require 'rake/packagetask'
|
4
|
-
require 'rubygems/user_interaction'
|
5
|
-
require 'rubygems/builder'
|
6
|
-
|
7
|
-
module Bones
|
8
|
-
class GemPackageTask < Rake::PackageTask
|
9
|
-
# Ruby GEM spec containing the metadata for this package. The
|
10
|
-
# name, version and package_files are automatically determined
|
11
|
-
# from the GEM spec and don't need to be explicitly provided.
|
12
|
-
#
|
13
|
-
attr_accessor :gem_spec
|
14
|
-
|
15
|
-
# Tasks from the Bones gem directory
|
16
|
-
attr_reader :bones_files
|
17
|
-
|
18
|
-
# Create a GEM Package task library. Automatically define the gem
|
19
|
-
# if a block is given. If no block is supplied, then +define+
|
20
|
-
# needs to be called to define the task.
|
21
|
-
#
|
22
|
-
def initialize(gem_spec)
|
23
|
-
init(gem_spec)
|
24
|
-
yield self if block_given?
|
25
|
-
define if block_given?
|
26
|
-
end
|
27
|
-
|
28
|
-
# Initialization tasks without the "yield self" or define
|
29
|
-
# operations.
|
30
|
-
#
|
31
|
-
def init(gem)
|
32
|
-
super(gem.name, gem.version)
|
33
|
-
@gem_spec = gem
|
34
|
-
@package_files += gem_spec.files if gem_spec.files
|
35
|
-
@bones_files = []
|
36
|
-
|
37
|
-
local_setup = File.join(Dir.pwd, %w[tasks setup.rb])
|
38
|
-
if !test(?e, local_setup)
|
39
|
-
Dir.glob(::Bones.path(%w[lib bones tasks *])).each {|fn| bones_files << fn}
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# Create the Rake tasks and actions specified by this
|
44
|
-
# GemPackageTask. (+define+ is automatically called if a block is
|
45
|
-
# given to +new+).
|
46
|
-
#
|
47
|
-
def define
|
48
|
-
super
|
49
|
-
task :prereqs
|
50
|
-
task :package => ['gem:prereqs', "#{package_dir_path}/#{gem_file}"]
|
51
|
-
file "#{package_dir_path}/#{gem_file}" => [package_dir_path] + package_files + bones_files do
|
52
|
-
when_writing("Creating GEM") {
|
53
|
-
chdir(package_dir_path) do
|
54
|
-
Gem::Builder.new(gem_spec).build
|
55
|
-
verbose(true) {
|
56
|
-
mv gem_file, "../#{gem_file}"
|
57
|
-
}
|
58
|
-
end
|
59
|
-
}
|
60
|
-
end
|
61
|
-
|
62
|
-
file package_dir_path => bones_files do
|
63
|
-
mkdir_p package_dir rescue nil
|
64
|
-
|
65
|
-
gem_spec.files = (gem_spec.files +
|
66
|
-
bones_files.map {|fn| File.join('tasks', File.basename(fn))}).sort
|
67
|
-
|
68
|
-
bones_files.each do |fn|
|
69
|
-
base_fn = File.join('tasks', File.basename(fn))
|
70
|
-
f = File.join(package_dir_path, base_fn)
|
71
|
-
fdir = File.dirname(f)
|
72
|
-
mkdir_p(fdir) if !File.exist?(fdir)
|
73
|
-
if File.directory?(fn)
|
74
|
-
mkdir_p(f)
|
75
|
-
else
|
76
|
-
raise "file name conflict for '#{base_fn}' (conflicts with '#{fn}')" if test(?e, f)
|
77
|
-
safe_ln(fn, f)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def gem_file
|
84
|
-
if @gem_spec.platform == Gem::Platform::RUBY
|
85
|
-
"#{package_name}.gem"
|
86
|
-
else
|
87
|
-
"#{package_name}-#{@gem_spec.platform}.gem"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end # class GemPackageTask
|
91
|
-
end # module Bones
|
92
|
-
|
93
|
-
namespace :gem do
|
94
|
-
|
95
|
-
PROJ.gem._spec = Gem::Specification.new do |s|
|
96
|
-
s.name = PROJ.name
|
97
|
-
s.version = PROJ.version
|
98
|
-
s.summary = PROJ.summary
|
99
|
-
s.authors = Array(PROJ.authors)
|
100
|
-
s.email = PROJ.email
|
101
|
-
s.homepage = Array(PROJ.url).first
|
102
|
-
s.rubyforge_project = PROJ.rubyforge.name
|
103
|
-
|
104
|
-
s.description = PROJ.description
|
105
|
-
|
106
|
-
PROJ.gem.dependencies.each do |dep|
|
107
|
-
s.add_dependency(*dep)
|
108
|
-
end
|
109
|
-
|
110
|
-
PROJ.gem.development_dependencies.each do |dep|
|
111
|
-
s.add_development_dependency(*dep)
|
112
|
-
end
|
113
|
-
|
114
|
-
s.files = PROJ.gem.files
|
115
|
-
s.executables = PROJ.gem.executables.map {|fn| File.basename(fn)}
|
116
|
-
s.extensions = PROJ.gem.files.grep %r/extconf\.rb$/
|
117
|
-
|
118
|
-
s.bindir = 'bin'
|
119
|
-
dirs = Dir["{#{PROJ.libs.join(',')}}"]
|
120
|
-
s.require_paths = dirs unless dirs.empty?
|
121
|
-
|
122
|
-
incl = Regexp.new(PROJ.rdoc.include.join('|'))
|
123
|
-
excl = PROJ.rdoc.exclude.dup.concat %w[\.rb$ ^(\.\/|\/)?ext]
|
124
|
-
excl = Regexp.new(excl.join('|'))
|
125
|
-
rdoc_files = PROJ.gem.files.find_all do |fn|
|
126
|
-
case fn
|
127
|
-
when excl; false
|
128
|
-
when incl; true
|
129
|
-
else false end
|
130
|
-
end
|
131
|
-
s.rdoc_options = PROJ.rdoc.opts + ['--main', PROJ.rdoc.main]
|
132
|
-
s.extra_rdoc_files = rdoc_files
|
133
|
-
s.has_rdoc = true
|
134
|
-
|
135
|
-
if test ?f, PROJ.test.file
|
136
|
-
s.test_file = PROJ.test.file
|
137
|
-
else
|
138
|
-
s.test_files = PROJ.test.files.to_a
|
139
|
-
end
|
140
|
-
|
141
|
-
# Do any extra stuff the user wants
|
142
|
-
PROJ.gem.extras.each do |msg, val|
|
143
|
-
case val
|
144
|
-
when Proc
|
145
|
-
val.call(s.send(msg))
|
146
|
-
else
|
147
|
-
s.send "#{msg}=", val
|
148
|
-
end
|
149
|
-
end
|
150
|
-
end # Gem::Specification.new
|
151
|
-
|
152
|
-
Bones::GemPackageTask.new(PROJ.gem._spec) do |pkg|
|
153
|
-
pkg.need_tar = PROJ.gem.need_tar
|
154
|
-
pkg.need_zip = PROJ.gem.need_zip
|
155
|
-
end
|
156
|
-
|
157
|
-
desc 'Show information about the gem'
|
158
|
-
task :debug => 'gem:prereqs' do
|
159
|
-
puts PROJ.gem._spec.to_ruby
|
160
|
-
end
|
161
|
-
|
162
|
-
desc 'Write the gemspec '
|
163
|
-
task :spec => 'gem:prereqs' do
|
164
|
-
File.open("#{PROJ.name}.gemspec", 'w') do |f|
|
165
|
-
f.write PROJ.gem._spec.to_ruby
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
desc 'Install the gem'
|
170
|
-
task :install => [:clobber, 'gem:package'] do
|
171
|
-
sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
|
172
|
-
|
173
|
-
# use this version of the command for rubygems > 1.0.0
|
174
|
-
#sh "#{SUDO} #{GEM} install --no-update-sources pkg/#{PROJ.gem._spec.full_name}"
|
175
|
-
end
|
176
|
-
|
177
|
-
desc 'Uninstall the gem'
|
178
|
-
task :uninstall do
|
179
|
-
installed_list = Gem.source_index.find_name(PROJ.name)
|
180
|
-
if installed_list and installed_list.collect { |s| s.version.to_s}.include?(PROJ.version) then
|
181
|
-
sh "#{SUDO} #{GEM} uninstall --version '#{PROJ.version}' --ignore-dependencies --executables #{PROJ.name}"
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
desc 'Reinstall the gem'
|
186
|
-
task :reinstall => [:uninstall, :install]
|
187
|
-
|
188
|
-
desc 'Cleanup the gem'
|
189
|
-
task :cleanup do
|
190
|
-
sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
|
191
|
-
end
|
192
|
-
end # namespace :gem
|
193
|
-
|
194
|
-
|
195
|
-
desc 'Alias to gem:package'
|
196
|
-
task :gem => 'gem:package'
|
197
|
-
|
198
|
-
task :clobber => 'gem:clobber_package'
|
199
|
-
remove_desc_for_task 'gem:clobber_package'
|
200
|
-
|
201
|
-
# EOF
|