bones 2.0.1 → 2.0.2

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.
@@ -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
@@ -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: Rakefile 596 2008-04-15 05:51:29Z tim_pease $
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 = 'Happy Tax Day'
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].unshift('version 2.0.0 changes')
33
+ PROJ.ann.paragraphs = %w[install synopsis features requirements]
34
34
  PROJ.ann.text = <<-ANN
35
35
  == FUN FACT
36
36
 
37
- The number of left-handed men is double that of left-handed women.
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
 
@@ -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'
@@ -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
@@ -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}"
@@ -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 .svn/ ^pkg/),
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.rb$),
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/ .txt$),
78
- :exclude => %w(extconf.rb$),
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.
@@ -1,9 +1,9 @@
1
- # $Id: bones.rb 593 2008-04-07 21:10:34Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  module Bones
4
4
 
5
5
  # :stopdoc:
6
- VERSION = '2.0.1'
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'
@@ -1,4 +1,4 @@
1
- # $Id: annotation_extractor.rb 588 2008-04-07 20:43:07Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  begin
4
4
  require 'facets/ansicode'
@@ -1,4 +1,4 @@
1
- # $Id: debug.rb 579 2008-03-19 18:53:22Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  require 'pp'
4
4
  require 'stringio'
@@ -1,4 +1,4 @@
1
- # $Id: main.rb 579 2008-03-19 18:53:22Z tim_pease $
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
- begin
119
- FileUtils.cd output_dir
120
- system "rake manifest:create 2>&1 > #{::Bones::DEV_NULL}"
121
- msg = "created '#{name}'"
122
- msg << " in directory '#{output_dir}'" if name != output_dir
123
- msg << "\nnow you need to fix these files"
124
- STDOUT.puts msg
125
- system "rake notes"
126
- ensure
127
- FileUtils.cd pwd
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
@@ -1,4 +1,4 @@
1
- # $Id: smtp_tls.rb 536 2008-02-18 23:07:49Z tim_pease $
1
+ # $Id$
2
2
 
3
3
  # This code enables SMTPTLS authentication requireed for sending mail
4
4
  # via the gmail servers. I found this code via a blog entry from James
@@ -1,4 +1,4 @@
1
- # $Id: gem.rake 596 2008-04-15 05:51:29Z tim_pease $
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'
@@ -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
@@ -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}"
@@ -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 .svn/ ^pkg/),
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.rb$),
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/ .txt$),
78
- :exclude => %w(extconf.rb$),
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.1
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-04-14 00:00:00 -06:00
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
@@ -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