bones 1.2.1 → 1.3.0
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/History.txt +10 -1
- data/Manifest.txt +2 -0
- data/README.txt +7 -4
- data/Rakefile +4 -3
- data/data/lib/NAME.rb.erb +51 -2
- data/data/tasks/rubyforge.rake +1 -1
- data/data/tasks/setup.rb +10 -3
- data/data/tasks/svn.rake +44 -0
- data/lib/bones.rb +2 -2
- data/lib/bones/main.rb +2 -2
- data/tasks/annotations.rake +1 -1
- data/tasks/doc.rake +1 -1
- data/tasks/gem.rake +1 -1
- data/tasks/manifest.rake +1 -1
- data/tasks/rubyforge.rake +2 -2
- data/tasks/setup.rb +11 -4
- data/tasks/spec.rake +2 -2
- data/tasks/svn.rake +44 -0
- data/tasks/test.rake +1 -1
- metadata +4 -2
data/History.txt
CHANGED
@@ -1,4 +1,13 @@
|
|
1
|
-
== 1.
|
1
|
+
== 1.3.0 /
|
2
|
+
|
3
|
+
* 2 minor enhancements
|
4
|
+
- Added a few more methods to the default framework
|
5
|
+
- Added tasks to support tagging releases in SVN
|
6
|
+
* 1 bug fix
|
7
|
+
- Fixed a nil value error for the remote rdoc directory
|
8
|
+
(patch supplied by Chris Shea)
|
9
|
+
|
10
|
+
== 1.2.1 / 2008-01-02
|
2
11
|
|
3
12
|
* 2 bug fixes
|
4
13
|
- With no arguments, the bones command was not showing the help message
|
data/Manifest.txt
CHANGED
@@ -17,6 +17,7 @@ data/tasks/manifest.rake
|
|
17
17
|
data/tasks/rubyforge.rake
|
18
18
|
data/tasks/setup.rb
|
19
19
|
data/tasks/spec.rake
|
20
|
+
data/tasks/svn.rake
|
20
21
|
data/tasks/test.rake
|
21
22
|
data/test/test_NAME.rb
|
22
23
|
lib/bones.rb
|
@@ -29,4 +30,5 @@ tasks/manifest.rake
|
|
29
30
|
tasks/rubyforge.rake
|
30
31
|
tasks/setup.rb
|
31
32
|
tasks/spec.rake
|
33
|
+
tasks/svn.rake
|
32
34
|
tasks/test.rake
|
data/README.txt
CHANGED
@@ -22,7 +22,7 @@ Mr Bones provides the following rake tasks:
|
|
22
22
|
doc:ri # Generate ri locally for testing
|
23
23
|
gem # Alias to gem:package
|
24
24
|
gem:debug # Show information about the gem
|
25
|
-
gem:gem # Build the gem file bones-1.
|
25
|
+
gem:gem # Build the gem file bones-1.3.0.gem
|
26
26
|
gem:install # Install the gem
|
27
27
|
gem:package # Build all the packages
|
28
28
|
gem:release # Package and upload to RubyForge
|
@@ -38,6 +38,8 @@ Mr Bones provides the following rake tasks:
|
|
38
38
|
spec:rcov # Run all specs with RCov
|
39
39
|
spec:run # Run all specs with basic output
|
40
40
|
spec:specdoc # Run all specs with text output
|
41
|
+
svn:create_tag # Create a new tag in the SVN repository
|
42
|
+
svn:show_tags # Show tags from the SVN repository
|
41
43
|
test # Alias to test:run
|
42
44
|
test:rcov # Run rcov on the unit tests
|
43
45
|
test:run # Run tests for run
|
@@ -99,8 +101,9 @@ the Rakefile for the Mr Bones gem itself:
|
|
99
101
|
PROJ.rdoc_remote_dir = 'bones'
|
100
102
|
PROJ.version = Bones::VERSION
|
101
103
|
|
102
|
-
PROJ.exclude << '^doc'
|
103
104
|
PROJ.rdoc_exclude << '^data'
|
105
|
+
PROJ.annotation_exclude = %w(^README\.txt$ ^data/)
|
106
|
+
PROJ.svn = 'bones'
|
104
107
|
|
105
108
|
PROJ.spec_opts << '--color'
|
106
109
|
|
@@ -123,8 +126,8 @@ directories, backup files, or anything else you don't want gumming up the
|
|
123
126
|
works. The files to exclude are given as an array of regular expression
|
124
127
|
patterns; a file is excluded if it matches any of the patterns.
|
125
128
|
|
126
|
-
PROJ.exclude = %w(tmp$ bak$ ~$ CVS \.svn ^pkg)
|
127
|
-
PROJ.exclude << '^
|
129
|
+
PROJ.exclude = %w(tmp$ bak$ ~$ CVS \.svn ^pkg ^doc)
|
130
|
+
PROJ.exclude << '^tags$'
|
128
131
|
|
129
132
|
If your project depends on other gems, use the +depend_on+ command in your
|
130
133
|
Rakefile to declare the dependency. If you do not specify a version, the
|
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id$
|
1
|
+
# $Id: Rakefile 460 2008-01-04 20:53:46Z tim_pease $
|
2
2
|
|
3
3
|
$:.unshift('lib')
|
4
4
|
|
@@ -18,8 +18,9 @@ PROJ.rubyforge_name = 'codeforpeople'
|
|
18
18
|
PROJ.rdoc_remote_dir = 'bones'
|
19
19
|
PROJ.version = Bones::VERSION
|
20
20
|
|
21
|
-
PROJ.rdoc_exclude << '^data'
|
22
|
-
PROJ.annotation_exclude = %w(^README\.txt$ ^data
|
21
|
+
PROJ.rdoc_exclude << '^data/'
|
22
|
+
PROJ.annotation_exclude = %w(^README\.txt$ ^data/)
|
23
|
+
PROJ.svn = 'bones'
|
23
24
|
|
24
25
|
PROJ.spec_opts << '--color'
|
25
26
|
|
data/data/lib/NAME.rb.erb
CHANGED
@@ -1,7 +1,56 @@
|
|
1
1
|
# $Id$
|
2
2
|
|
3
|
-
|
3
|
+
# Equivalent to a header guard in C/C++
|
4
|
+
# Used to prevent the class/module from being loaded more than once
|
5
|
+
unless defined? <%= classname %>
|
6
|
+
|
7
|
+
module <%= classname %>
|
8
|
+
|
9
|
+
# :stopdoc:
|
4
10
|
VERSION = '1.0.0'
|
5
|
-
|
11
|
+
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
|
12
|
+
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
13
|
+
# :startdoc:
|
14
|
+
|
15
|
+
# Returns the version string for the library.
|
16
|
+
#
|
17
|
+
def self.version
|
18
|
+
VERSION
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns the library path for the module. If any arguments are given,
|
22
|
+
# they will be joined to the end of the libray path using
|
23
|
+
# <tt>File.join</tt>.
|
24
|
+
#
|
25
|
+
def self.libpath( *args )
|
26
|
+
args.empty? ? LIBPATH : ::File.join(LIBPATH, *args)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Returns the lpath for the module. If any arguments are given,
|
30
|
+
# they will be joined to the end of the path using
|
31
|
+
# <tt>File.join</tt>.
|
32
|
+
#
|
33
|
+
def self.path( *args )
|
34
|
+
args.empty? ? PATH : ::File.join(PATH, *args)
|
35
|
+
end
|
36
|
+
|
37
|
+
# Utility method used to rquire all files ending in .rb that lie in the
|
38
|
+
# directory below this file that has the same name as the filename passed
|
39
|
+
# in. Optionally, a specific _directory_ name can be passed in such that
|
40
|
+
# the _filename_ does not have to be equivalent to the directory.
|
41
|
+
#
|
42
|
+
def self.require_all_libs_relative_to( fname, dir = nil )
|
43
|
+
dir ||= ::File.basename(fname, '.*')
|
44
|
+
search_me = ::File.expand_path(
|
45
|
+
::File.join(::File.dirname(fname), dir, '**', '*.rb'))
|
46
|
+
|
47
|
+
Dir.glob(search_me).sort.each {|rb| require rb}
|
48
|
+
end
|
49
|
+
|
50
|
+
end # module <%= classname %>
|
51
|
+
|
52
|
+
<%= classname %>.require_all_libs_relative_to __FILE__
|
53
|
+
|
54
|
+
end # unless defined?
|
6
55
|
|
7
56
|
# EOF
|
data/data/tasks/rubyforge.rake
CHANGED
@@ -45,7 +45,7 @@ namespace :doc do
|
|
45
45
|
|
46
46
|
host = "#{config['username']}@rubyforge.org"
|
47
47
|
remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge_name}/"
|
48
|
-
remote_dir << PROJ.rdoc_remote_dir
|
48
|
+
remote_dir << PROJ.rdoc_remote_dir if PROJ.rdoc_remote_dir
|
49
49
|
local_dir = PROJ.rdoc_dir
|
50
50
|
|
51
51
|
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
data/data/tasks/setup.rb
CHANGED
@@ -16,7 +16,7 @@ PROJ.email = nil
|
|
16
16
|
PROJ.url = nil
|
17
17
|
PROJ.version = ENV['VERSION'] || '0.0.0'
|
18
18
|
PROJ.rubyforge_name = nil
|
19
|
-
PROJ.exclude = %w(tmp$ bak$ ~$ CVS
|
19
|
+
PROJ.exclude = %w(tmp$ bak$ ~$ CVS .svn/ ^pkg/ ^doc/)
|
20
20
|
|
21
21
|
# Rspec
|
22
22
|
PROJ.specs = FileList['spec/**/*_spec.rb']
|
@@ -32,8 +32,8 @@ PROJ.rcov_opts = ['--sort', 'coverage', '-T']
|
|
32
32
|
|
33
33
|
# Rdoc
|
34
34
|
PROJ.rdoc_opts = []
|
35
|
-
PROJ.rdoc_include = %w(^lib ^bin ^ext txt$)
|
36
|
-
PROJ.rdoc_exclude = %w(extconf
|
35
|
+
PROJ.rdoc_include = %w(^lib/ ^bin/ ^ext/ .txt$)
|
36
|
+
PROJ.rdoc_exclude = %w(extconf.rb$ ^Manifest.txt$)
|
37
37
|
PROJ.rdoc_main = 'README.txt'
|
38
38
|
PROJ.rdoc_dir = 'doc'
|
39
39
|
PROJ.rdoc_remote_dir = nil
|
@@ -60,6 +60,13 @@ PROJ.need_zip = false
|
|
60
60
|
PROJ.annotation_exclude = []
|
61
61
|
PROJ.annotation_extensions = %w(.txt .rb .erb) << ''
|
62
62
|
|
63
|
+
# Subversion Repository
|
64
|
+
PROJ.svn = false
|
65
|
+
PROJ.svn_root = nil
|
66
|
+
PROJ.svn_trunk = 'trunk'
|
67
|
+
PROJ.svn_tags = 'tags'
|
68
|
+
PROJ.svn_branches = 'branches'
|
69
|
+
|
63
70
|
# Load the other rake files in the tasks folder
|
64
71
|
Dir.glob('tasks/*.rake').sort.each {|fn| import fn}
|
65
72
|
|
data/data/tasks/svn.rake
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# $Id$
|
2
|
+
|
3
|
+
|
4
|
+
if PROJ.svn and system("svn --version 2>&1 > #{DEV_NULL}")
|
5
|
+
|
6
|
+
unless PROJ.svn_root
|
7
|
+
info = %x/svn info ./
|
8
|
+
m = %r/^Repository Root:\s+(.*)$/.match(info)
|
9
|
+
PROJ.svn_root = (m.nil? ? '' : m[1])
|
10
|
+
end
|
11
|
+
PROJ.svn_root = File.join(PROJ.svn_root, PROJ.svn) if String === PROJ.svn
|
12
|
+
|
13
|
+
namespace :svn do
|
14
|
+
|
15
|
+
desc 'Show tags from the SVN repository'
|
16
|
+
task :show_tags do |t|
|
17
|
+
tags = %x/svn list #{File.join(PROJ.svn_root, PROJ.svn_tags)}/
|
18
|
+
tags.gsub!(%r/\/$/, '')
|
19
|
+
puts tags
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'Create a new tag in the SVN repository'
|
23
|
+
task :create_tag do |t|
|
24
|
+
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
25
|
+
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
26
|
+
|
27
|
+
trunk = File.join(PROJ.svn_root, PROJ.svn_trunk)
|
28
|
+
tag = "%s-%s" % [PROJ.name, PROJ.version]
|
29
|
+
tag = File.join(PROJ.svn_root, PROJ.svn_tags, tag)
|
30
|
+
msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
|
31
|
+
|
32
|
+
puts "Creating SVN tag '#{tag}'"
|
33
|
+
unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
|
34
|
+
abort "Tag creation failed"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end # namespace :svn
|
39
|
+
|
40
|
+
task 'gem:release' => 'svn:create_tag'
|
41
|
+
|
42
|
+
end # if PROJ.svn
|
43
|
+
|
44
|
+
# EOF
|
data/lib/bones.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
# $Id: bones.rb
|
1
|
+
# $Id: bones.rb 449 2008-01-04 17:54:36Z tim_pease $
|
2
2
|
|
3
3
|
module Bones
|
4
4
|
|
5
5
|
# :stopdoc:
|
6
|
-
VERSION = '1.
|
6
|
+
VERSION = '1.3.0'
|
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/main.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: main.rb
|
1
|
+
# $Id: main.rb 462 2008-01-04 20:56:16Z tim_pease $
|
2
2
|
|
3
3
|
require 'fileutils'
|
4
4
|
require 'optparse'
|
@@ -55,7 +55,7 @@ class Main
|
|
55
55
|
|
56
56
|
opts.on_tail( '-h', '--help', 'show this message' ) {puts opts; exit}
|
57
57
|
opts.on_tail( '--version', 'show version' ) do
|
58
|
-
puts "Bones #{::Bones::VERSION}"
|
58
|
+
puts "Mr Bones #{::Bones::VERSION}"
|
59
59
|
exit
|
60
60
|
end
|
61
61
|
|
data/tasks/annotations.rake
CHANGED
data/tasks/doc.rake
CHANGED
data/tasks/gem.rake
CHANGED
data/tasks/manifest.rake
CHANGED
data/tasks/rubyforge.rake
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id
|
1
|
+
# $Id$
|
2
2
|
|
3
3
|
if PROJ.rubyforge_name && HAVE_RUBYFORGE
|
4
4
|
|
@@ -45,7 +45,7 @@ namespace :doc do
|
|
45
45
|
|
46
46
|
host = "#{config['username']}@rubyforge.org"
|
47
47
|
remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge_name}/"
|
48
|
-
remote_dir << PROJ.rdoc_remote_dir
|
48
|
+
remote_dir << PROJ.rdoc_remote_dir if PROJ.rdoc_remote_dir
|
49
49
|
local_dir = PROJ.rdoc_dir
|
50
50
|
|
51
51
|
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
|
data/tasks/setup.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id
|
1
|
+
# $Id$
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'rake'
|
@@ -16,7 +16,7 @@ PROJ.email = nil
|
|
16
16
|
PROJ.url = nil
|
17
17
|
PROJ.version = ENV['VERSION'] || '0.0.0'
|
18
18
|
PROJ.rubyforge_name = nil
|
19
|
-
PROJ.exclude = %w(tmp$ bak$ ~$ CVS
|
19
|
+
PROJ.exclude = %w(tmp$ bak$ ~$ CVS .svn/ ^pkg/ ^doc/)
|
20
20
|
|
21
21
|
# Rspec
|
22
22
|
PROJ.specs = FileList['spec/**/*_spec.rb']
|
@@ -32,8 +32,8 @@ PROJ.rcov_opts = ['--sort', 'coverage', '-T']
|
|
32
32
|
|
33
33
|
# Rdoc
|
34
34
|
PROJ.rdoc_opts = []
|
35
|
-
PROJ.rdoc_include = %w(^lib ^bin ^ext txt$)
|
36
|
-
PROJ.rdoc_exclude = %w(extconf
|
35
|
+
PROJ.rdoc_include = %w(^lib/ ^bin/ ^ext/ .txt$)
|
36
|
+
PROJ.rdoc_exclude = %w(extconf.rb$ ^Manifest.txt$)
|
37
37
|
PROJ.rdoc_main = 'README.txt'
|
38
38
|
PROJ.rdoc_dir = 'doc'
|
39
39
|
PROJ.rdoc_remote_dir = nil
|
@@ -60,6 +60,13 @@ PROJ.need_zip = false
|
|
60
60
|
PROJ.annotation_exclude = []
|
61
61
|
PROJ.annotation_extensions = %w(.txt .rb .erb) << ''
|
62
62
|
|
63
|
+
# Subversion Repository
|
64
|
+
PROJ.svn = false
|
65
|
+
PROJ.svn_root = nil
|
66
|
+
PROJ.svn_trunk = 'trunk'
|
67
|
+
PROJ.svn_tags = 'tags'
|
68
|
+
PROJ.svn_branches = 'branches'
|
69
|
+
|
63
70
|
# Load the other rake files in the tasks folder
|
64
71
|
Dir.glob('tasks/*.rake').sort.each {|fn| import fn}
|
65
72
|
|
data/tasks/spec.rake
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# $Id: spec.rake
|
1
|
+
# $Id: spec.rake 461 2008-01-04 20:55:37Z tim_pease $
|
2
2
|
|
3
3
|
if HAVE_SPEC_RAKE_SPECTASK
|
4
4
|
|
@@ -35,6 +35,6 @@ task :clobber => 'spec:clobber_rcov' if HAVE_RCOV
|
|
35
35
|
|
36
36
|
remove_desc_for_task %w(spec:clobber_rcov)
|
37
37
|
|
38
|
-
end # if
|
38
|
+
end # if HAVE_SPEC_RAKE_SPECTASK
|
39
39
|
|
40
40
|
# EOF
|
data/tasks/svn.rake
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# $Id$
|
2
|
+
|
3
|
+
|
4
|
+
if PROJ.svn and system("svn --version 2>&1 > #{DEV_NULL}")
|
5
|
+
|
6
|
+
unless PROJ.svn_root
|
7
|
+
info = %x/svn info ./
|
8
|
+
m = %r/^Repository Root:\s+(.*)$/.match(info)
|
9
|
+
PROJ.svn_root = (m.nil? ? '' : m[1])
|
10
|
+
end
|
11
|
+
PROJ.svn_root = File.join(PROJ.svn_root, PROJ.svn) if String === PROJ.svn
|
12
|
+
|
13
|
+
namespace :svn do
|
14
|
+
|
15
|
+
desc 'Show tags from the SVN repository'
|
16
|
+
task :show_tags do |t|
|
17
|
+
tags = %x/svn list #{File.join(PROJ.svn_root, PROJ.svn_tags)}/
|
18
|
+
tags.gsub!(%r/\/$/, '')
|
19
|
+
puts tags
|
20
|
+
end
|
21
|
+
|
22
|
+
desc 'Create a new tag in the SVN repository'
|
23
|
+
task :create_tag do |t|
|
24
|
+
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
25
|
+
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
26
|
+
|
27
|
+
trunk = File.join(PROJ.svn_root, PROJ.svn_trunk)
|
28
|
+
tag = "%s-%s" % [PROJ.name, PROJ.version]
|
29
|
+
tag = File.join(PROJ.svn_root, PROJ.svn_tags, tag)
|
30
|
+
msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
|
31
|
+
|
32
|
+
puts "Creating SVN tag '#{tag}'"
|
33
|
+
unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
|
34
|
+
abort "Tag creation failed"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end # namespace :svn
|
39
|
+
|
40
|
+
task 'gem:release' => 'svn:create_tag'
|
41
|
+
|
42
|
+
end # if PROJ.svn
|
43
|
+
|
44
|
+
# EOF
|
data/tasks/test.rake
CHANGED
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: 1.
|
4
|
+
version: 1.3.0
|
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-01-
|
12
|
+
date: 2008-01-04 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -43,6 +43,7 @@ files:
|
|
43
43
|
- data/tasks/rubyforge.rake
|
44
44
|
- data/tasks/setup.rb
|
45
45
|
- data/tasks/spec.rake
|
46
|
+
- data/tasks/svn.rake
|
46
47
|
- data/tasks/test.rake
|
47
48
|
- data/test/test_NAME.rb
|
48
49
|
- lib/bones.rb
|
@@ -55,6 +56,7 @@ files:
|
|
55
56
|
- tasks/rubyforge.rake
|
56
57
|
- tasks/setup.rb
|
57
58
|
- tasks/spec.rake
|
59
|
+
- tasks/svn.rake
|
58
60
|
- tasks/test.rake
|
59
61
|
has_rdoc: true
|
60
62
|
homepage: http://codeforpeople.rubyforge.org/bones
|