bones 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +9 -0
- data/Manifest.txt +2 -1
- data/README.txt +2 -0
- data/Rakefile +5 -4
- data/data/tasks/gem.rake +6 -1
- data/data/tasks/git.rake +41 -0
- data/data/tasks/rubyforge.rake +1 -1
- data/data/tasks/setup.rb +6 -4
- data/lib/bones.rb +2 -2
- data/lib/bones/annotation_extractor.rb +1 -1
- data/lib/bones/debug.rb +1 -1
- data/lib/bones/main.rb +14 -11
- data/lib/bones/smtp_tls.rb +1 -1
- data/tasks/gem.rake +7 -2
- data/tasks/git.rake +41 -0
- data/tasks/rubyforge.rake +1 -1
- data/tasks/setup.rb +6 -4
- metadata +4 -3
- data/tasks/svn.rake +0 -48
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 2.0.2 / 2008-06-02
|
2
|
+
|
3
|
+
* 2 minor enhancements
|
4
|
+
- Added a gem cleanup rake task
|
5
|
+
- Tasks to support Git projects
|
6
|
+
* 2 bug fixes
|
7
|
+
- Check for Rakefile when creating a new project
|
8
|
+
- Failed dependency resolution when not using fully qualified task names
|
9
|
+
|
1
10
|
== 2.0.1 / 2008-04-15
|
2
11
|
|
3
12
|
* 1 minor enchancement
|
data/Manifest.txt
CHANGED
@@ -14,6 +14,7 @@ data/spec/spec_helper.rb.erb
|
|
14
14
|
data/tasks/ann.rake
|
15
15
|
data/tasks/bones.rake
|
16
16
|
data/tasks/gem.rake
|
17
|
+
data/tasks/git.rake
|
17
18
|
data/tasks/manifest.rake
|
18
19
|
data/tasks/notes.rake
|
19
20
|
data/tasks/post_load.rake
|
@@ -32,6 +33,7 @@ lib/bones/smtp_tls.rb
|
|
32
33
|
tasks/ann.rake
|
33
34
|
tasks/bones.rake
|
34
35
|
tasks/gem.rake
|
36
|
+
tasks/git.rake
|
35
37
|
tasks/manifest.rake
|
36
38
|
tasks/notes.rake
|
37
39
|
tasks/post_load.rake
|
@@ -39,5 +41,4 @@ tasks/rdoc.rake
|
|
39
41
|
tasks/rubyforge.rake
|
40
42
|
tasks/setup.rb
|
41
43
|
tasks/spec.rake
|
42
|
-
tasks/svn.rake
|
43
44
|
tasks/test.rake
|
data/README.txt
CHANGED
@@ -100,6 +100,8 @@ Mr Bones provides the following rake tasks:
|
|
100
100
|
gem:release # Package and upload to RubyForge
|
101
101
|
gem:repackage # Force a rebuild of the package files
|
102
102
|
gem:uninstall # Uninstall the gem
|
103
|
+
git:create_tag # Create a new tag in the Git repository
|
104
|
+
git:show_tags # Show tags from the Git repository
|
103
105
|
manifest # Alias to manifest:check
|
104
106
|
manifest:check # Verify the manifest
|
105
107
|
manifest:create # Create a new manifest
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id
|
1
|
+
# $Id$
|
2
2
|
|
3
3
|
$:.unshift('lib')
|
4
4
|
|
@@ -10,7 +10,7 @@ PROJ.authors = 'Tim Pease'
|
|
10
10
|
PROJ.email = 'tim.pease@gmail.com'
|
11
11
|
PROJ.url = 'http://codeforpeople.rubyforge.org/bones'
|
12
12
|
PROJ.version = Bones::VERSION
|
13
|
-
PROJ.release_name = '
|
13
|
+
PROJ.release_name = 'Haughty Hen'
|
14
14
|
|
15
15
|
PROJ.rubyforge.name = 'codeforpeople'
|
16
16
|
|
@@ -30,11 +30,12 @@ PROJ.gem.extras[:post_install_message] = <<-MSG
|
|
30
30
|
--------------------------
|
31
31
|
MSG
|
32
32
|
|
33
|
-
PROJ.ann.paragraphs = %w[install synopsis features requirements]
|
33
|
+
PROJ.ann.paragraphs = %w[install synopsis features requirements]
|
34
34
|
PROJ.ann.text = <<-ANN
|
35
35
|
== FUN FACT
|
36
36
|
|
37
|
-
|
37
|
+
XML is much like violence --
|
38
|
+
if it's not solving your problem then you are not using enough of it.
|
38
39
|
|
39
40
|
== POST SCRIPT
|
40
41
|
|
data/data/tasks/gem.rake
CHANGED
@@ -91,7 +91,7 @@ namespace :gem do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
desc 'Install the gem'
|
94
|
-
task :install => [:clobber, :package] do
|
94
|
+
task :install => [:clobber, 'gem:package'] do
|
95
95
|
sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
|
96
96
|
|
97
97
|
# use this version of the command for rubygems > 1.0.0
|
@@ -109,6 +109,11 @@ namespace :gem do
|
|
109
109
|
desc 'Reinstall the gem'
|
110
110
|
task :reinstall => [:uninstall, :install]
|
111
111
|
|
112
|
+
desc 'Cleanup the gem'
|
113
|
+
task :cleanup do
|
114
|
+
sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
|
115
|
+
end
|
116
|
+
|
112
117
|
end # namespace :gem
|
113
118
|
|
114
119
|
desc 'Alias to gem:package'
|
data/data/tasks/git.rake
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# $Id$
|
2
|
+
|
3
|
+
if HAVE_GIT
|
4
|
+
|
5
|
+
namespace :git do
|
6
|
+
|
7
|
+
# A prerequisites task that all other tasks depend upon
|
8
|
+
task :prereqs
|
9
|
+
|
10
|
+
desc 'Show tags from the Git repository'
|
11
|
+
task :show_tags => 'git:prereqs' do |t|
|
12
|
+
puts %x/git tag/
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Create a new tag in the Git repository'
|
16
|
+
task :create_tag => 'git:prereqs' do |t|
|
17
|
+
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
18
|
+
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
19
|
+
|
20
|
+
tag = "%s-%s" % [PROJ.name, PROJ.version]
|
21
|
+
msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
|
22
|
+
|
23
|
+
puts "Creating Git tag '#{tag}'"
|
24
|
+
unless system "git tag -a -m '#{msg}' #{tag}"
|
25
|
+
abort "Tag creation failed"
|
26
|
+
end
|
27
|
+
|
28
|
+
if %x/git remote/ =~ %r/^origin\s*$/
|
29
|
+
unless system "git push origin #{tag}"
|
30
|
+
abort "Could not push tag to remote Git repository"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end # namespace :git
|
36
|
+
|
37
|
+
task 'gem:release' => 'git:create_tag'
|
38
|
+
|
39
|
+
end # if HAVE_GIT
|
40
|
+
|
41
|
+
# EOF
|
data/data/tasks/rubyforge.rake
CHANGED
@@ -7,7 +7,7 @@ require 'rake/contrib/sshpublisher'
|
|
7
7
|
|
8
8
|
namespace :gem do
|
9
9
|
desc 'Package and upload to RubyForge'
|
10
|
-
task :release => [:clobber, :package] do |t|
|
10
|
+
task :release => [:clobber, 'gem:package'] do |t|
|
11
11
|
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
12
12
|
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
13
13
|
pkg = "pkg/#{PROJ.gem._spec.full_name}"
|
data/data/tasks/setup.rb
CHANGED
@@ -18,7 +18,7 @@ PROJ = OpenStruct.new(
|
|
18
18
|
:email => nil,
|
19
19
|
:url => "\000",
|
20
20
|
:version => ENV['VERSION'] || '0.0.0',
|
21
|
-
:exclude => %w(tmp$ bak$ ~$ CVS
|
21
|
+
:exclude => %w(tmp$ bak$ ~$ CVS \.svn/ \.git/ ^pkg/),
|
22
22
|
:release_name => ENV['RELEASE'],
|
23
23
|
|
24
24
|
# System Defaults
|
@@ -58,7 +58,7 @@ PROJ = OpenStruct.new(
|
|
58
58
|
|
59
59
|
# File Annotations
|
60
60
|
:notes => OpenStruct.new(
|
61
|
-
:exclude => %w(^tasks/setup
|
61
|
+
:exclude => %w(^tasks/setup\.rb$),
|
62
62
|
:extensions => %w(.txt .rb .erb) << '',
|
63
63
|
:tags => %w(FIXME OPTIMIZE TODO)
|
64
64
|
),
|
@@ -74,8 +74,8 @@ PROJ = OpenStruct.new(
|
|
74
74
|
# Rdoc
|
75
75
|
:rdoc => OpenStruct.new(
|
76
76
|
:opts => [],
|
77
|
-
:include => %w(^lib/ ^bin/ ^ext/
|
78
|
-
:exclude => %w(extconf
|
77
|
+
:include => %w(^lib/ ^bin/ ^ext/ \.txt$),
|
78
|
+
:exclude => %w(extconf\.rb$),
|
79
79
|
:main => nil,
|
80
80
|
:dir => 'doc',
|
81
81
|
:remote_dir => nil
|
@@ -159,6 +159,8 @@ GEM = WIN32 ? 'gem.bat' : 'gem'
|
|
159
159
|
end
|
160
160
|
HAVE_SVN = (Dir.entries(Dir.pwd).include?('.svn') and
|
161
161
|
system("svn --version 2>&1 > #{DEV_NULL}"))
|
162
|
+
HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and
|
163
|
+
system("git --version 2>&1 > #{DEV_NULL}"))
|
162
164
|
|
163
165
|
# Reads a file at +path+ and spits out an array of the +paragraphs+
|
164
166
|
# specified.
|
data/lib/bones.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# $Id
|
1
|
+
# $Id$
|
2
2
|
|
3
3
|
module Bones
|
4
4
|
|
5
5
|
# :stopdoc:
|
6
|
-
VERSION = '2.0.
|
6
|
+
VERSION = '2.0.2'
|
7
7
|
PATH = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
8
8
|
WIN32 = %r/win32/ =~ RUBY_PLATFORM
|
9
9
|
DEV_NULL = WIN32 ? 'NUL:' : '/dev/null'
|
data/lib/bones/debug.rb
CHANGED
data/lib/bones/main.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id
|
1
|
+
# $Id$
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'optparse'
|
@@ -115,16 +115,19 @@ class Main
|
|
115
115
|
files_to_copy.each {|fn| cp fn}
|
116
116
|
|
117
117
|
pwd = File.expand_path(FileUtils.pwd)
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
118
|
+
msg = "created '#{name}'"
|
119
|
+
msg << " in directory '#{output_dir}'" if name != output_dir
|
120
|
+
STDOUT.puts msg
|
121
|
+
|
122
|
+
if test(?f, File.join(output_dir, 'Rakefile'))
|
123
|
+
begin
|
124
|
+
FileUtils.cd output_dir
|
125
|
+
system "rake manifest:create 2>&1 > #{::Bones::DEV_NULL}"
|
126
|
+
STDOUT.puts "now you need to fix these files"
|
127
|
+
system "rake notes"
|
128
|
+
ensure
|
129
|
+
FileUtils.cd pwd
|
130
|
+
end
|
128
131
|
end
|
129
132
|
rescue Exception => err
|
130
133
|
FileUtils.rm_rf output_dir
|
data/lib/bones/smtp_tls.rb
CHANGED
data/tasks/gem.rake
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id
|
1
|
+
# $Id$
|
2
2
|
|
3
3
|
require 'rake/gempackagetask'
|
4
4
|
|
@@ -91,7 +91,7 @@ namespace :gem do
|
|
91
91
|
end
|
92
92
|
|
93
93
|
desc 'Install the gem'
|
94
|
-
task :install => [:clobber, :package] do
|
94
|
+
task :install => [:clobber, 'gem:package'] do
|
95
95
|
sh "#{SUDO} #{GEM} install --local pkg/#{PROJ.gem._spec.full_name}"
|
96
96
|
|
97
97
|
# use this version of the command for rubygems > 1.0.0
|
@@ -109,6 +109,11 @@ namespace :gem do
|
|
109
109
|
desc 'Reinstall the gem'
|
110
110
|
task :reinstall => [:uninstall, :install]
|
111
111
|
|
112
|
+
desc 'Cleanup the gem'
|
113
|
+
task :cleanup do
|
114
|
+
sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
|
115
|
+
end
|
116
|
+
|
112
117
|
end # namespace :gem
|
113
118
|
|
114
119
|
desc 'Alias to gem:package'
|
data/tasks/git.rake
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# $Id$
|
2
|
+
|
3
|
+
if HAVE_GIT
|
4
|
+
|
5
|
+
namespace :git do
|
6
|
+
|
7
|
+
# A prerequisites task that all other tasks depend upon
|
8
|
+
task :prereqs
|
9
|
+
|
10
|
+
desc 'Show tags from the Git repository'
|
11
|
+
task :show_tags => 'git:prereqs' do |t|
|
12
|
+
puts %x/git tag/
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Create a new tag in the Git repository'
|
16
|
+
task :create_tag => 'git:prereqs' do |t|
|
17
|
+
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
18
|
+
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
19
|
+
|
20
|
+
tag = "%s-%s" % [PROJ.name, PROJ.version]
|
21
|
+
msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
|
22
|
+
|
23
|
+
puts "Creating Git tag '#{tag}'"
|
24
|
+
unless system "git tag -a -m '#{msg}' #{tag}"
|
25
|
+
abort "Tag creation failed"
|
26
|
+
end
|
27
|
+
|
28
|
+
if %x/git remote/ =~ %r/^origin\s*$/
|
29
|
+
unless system "git push origin #{tag}"
|
30
|
+
abort "Could not push tag to remote Git repository"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
end # namespace :git
|
36
|
+
|
37
|
+
task 'gem:release' => 'git:create_tag'
|
38
|
+
|
39
|
+
end # if HAVE_GIT
|
40
|
+
|
41
|
+
# EOF
|
data/tasks/rubyforge.rake
CHANGED
@@ -7,7 +7,7 @@ require 'rake/contrib/sshpublisher'
|
|
7
7
|
|
8
8
|
namespace :gem do
|
9
9
|
desc 'Package and upload to RubyForge'
|
10
|
-
task :release => [:clobber, :package] do |t|
|
10
|
+
task :release => [:clobber, 'gem:package'] do |t|
|
11
11
|
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
12
12
|
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
13
13
|
pkg = "pkg/#{PROJ.gem._spec.full_name}"
|
data/tasks/setup.rb
CHANGED
@@ -18,7 +18,7 @@ PROJ = OpenStruct.new(
|
|
18
18
|
:email => nil,
|
19
19
|
:url => "\000",
|
20
20
|
:version => ENV['VERSION'] || '0.0.0',
|
21
|
-
:exclude => %w(tmp$ bak$ ~$ CVS
|
21
|
+
:exclude => %w(tmp$ bak$ ~$ CVS \.svn/ \.git/ ^pkg/),
|
22
22
|
:release_name => ENV['RELEASE'],
|
23
23
|
|
24
24
|
# System Defaults
|
@@ -58,7 +58,7 @@ PROJ = OpenStruct.new(
|
|
58
58
|
|
59
59
|
# File Annotations
|
60
60
|
:notes => OpenStruct.new(
|
61
|
-
:exclude => %w(^tasks/setup
|
61
|
+
:exclude => %w(^tasks/setup\.rb$),
|
62
62
|
:extensions => %w(.txt .rb .erb) << '',
|
63
63
|
:tags => %w(FIXME OPTIMIZE TODO)
|
64
64
|
),
|
@@ -74,8 +74,8 @@ PROJ = OpenStruct.new(
|
|
74
74
|
# Rdoc
|
75
75
|
:rdoc => OpenStruct.new(
|
76
76
|
:opts => [],
|
77
|
-
:include => %w(^lib/ ^bin/ ^ext/
|
78
|
-
:exclude => %w(extconf
|
77
|
+
:include => %w(^lib/ ^bin/ ^ext/ \.txt$),
|
78
|
+
:exclude => %w(extconf\.rb$),
|
79
79
|
:main => nil,
|
80
80
|
:dir => 'doc',
|
81
81
|
:remote_dir => nil
|
@@ -159,6 +159,8 @@ GEM = WIN32 ? 'gem.bat' : 'gem'
|
|
159
159
|
end
|
160
160
|
HAVE_SVN = (Dir.entries(Dir.pwd).include?('.svn') and
|
161
161
|
system("svn --version 2>&1 > #{DEV_NULL}"))
|
162
|
+
HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and
|
163
|
+
system("git --version 2>&1 > #{DEV_NULL}"))
|
162
164
|
|
163
165
|
# Reads a file at +path+ and spits out an array of the +paragraphs+
|
164
166
|
# specified.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bones
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Pease
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-06-02 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -48,6 +48,7 @@ files:
|
|
48
48
|
- data/tasks/ann.rake
|
49
49
|
- data/tasks/bones.rake
|
50
50
|
- data/tasks/gem.rake
|
51
|
+
- data/tasks/git.rake
|
51
52
|
- data/tasks/manifest.rake
|
52
53
|
- data/tasks/notes.rake
|
53
54
|
- data/tasks/post_load.rake
|
@@ -66,6 +67,7 @@ files:
|
|
66
67
|
- tasks/ann.rake
|
67
68
|
- tasks/bones.rake
|
68
69
|
- tasks/gem.rake
|
70
|
+
- tasks/git.rake
|
69
71
|
- tasks/manifest.rake
|
70
72
|
- tasks/notes.rake
|
71
73
|
- tasks/post_load.rake
|
@@ -73,7 +75,6 @@ files:
|
|
73
75
|
- tasks/rubyforge.rake
|
74
76
|
- tasks/setup.rb
|
75
77
|
- tasks/spec.rake
|
76
|
-
- tasks/svn.rake
|
77
78
|
- tasks/test.rake
|
78
79
|
has_rdoc: true
|
79
80
|
homepage: http://codeforpeople.rubyforge.org/bones
|
data/tasks/svn.rake
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
if HAVE_SVN
|
4
|
-
|
5
|
-
unless PROJ.svn.root
|
6
|
-
info = %x/svn info ./
|
7
|
-
m = %r/^Repository Root:\s+(.*)$/.match(info)
|
8
|
-
PROJ.svn.root = (m.nil? ? '' : m[1])
|
9
|
-
end
|
10
|
-
PROJ.svn.root = File.join(PROJ.svn.root, PROJ.svn.path) unless PROJ.svn.path.empty?
|
11
|
-
|
12
|
-
namespace :svn do
|
13
|
-
|
14
|
-
# A prerequisites task that all other tasks depend upon
|
15
|
-
task :prereqs
|
16
|
-
|
17
|
-
desc 'Show tags from the SVN repository'
|
18
|
-
task :show_tags => 'svn:prereqs' do |t|
|
19
|
-
tags = %x/svn list #{File.join(PROJ.svn.root, PROJ.svn.tags)}/
|
20
|
-
tags.gsub!(%r/\/$/, '')
|
21
|
-
tags = tags.split("\n").sort {|a,b| b <=> a}
|
22
|
-
puts tags
|
23
|
-
end
|
24
|
-
|
25
|
-
desc 'Create a new tag in the SVN repository'
|
26
|
-
task :create_tag => 'svn:prereqs' do |t|
|
27
|
-
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
28
|
-
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
29
|
-
|
30
|
-
svn = PROJ.svn
|
31
|
-
trunk = File.join(svn.root, svn.trunk)
|
32
|
-
tag = "%s-%s" % [PROJ.name, PROJ.version]
|
33
|
-
tag = File.join(svn.root, svn.tags, tag)
|
34
|
-
msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
|
35
|
-
|
36
|
-
puts "Creating SVN tag '#{tag}'"
|
37
|
-
unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
|
38
|
-
abort "Tag creation failed"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
end # namespace :svn
|
43
|
-
|
44
|
-
task 'gem:release' => 'svn:create_tag'
|
45
|
-
|
46
|
-
end # if PROJ.svn.path
|
47
|
-
|
48
|
-
# EOF
|