tournament 2.5.0 → 2.5.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/Manifest.txt +1 -0
- data/Rakefile +1 -1
- data/tasks/ann.rake +1 -2
- data/tasks/bones.rake +0 -1
- data/tasks/gem.rake +104 -29
- data/tasks/git.rake +0 -1
- data/tasks/notes.rake +0 -1
- data/tasks/post_load.rake +4 -9
- data/tasks/rdoc.rake +4 -5
- data/tasks/rubyforge.rake +2 -4
- data/tasks/setup.rb +49 -25
- data/tasks/spec.rake +1 -2
- data/tasks/svn.rake +0 -1
- data/tasks/test.rake +3 -1
- data/webgui/db/development.sql +3223 -0
- data/webgui/db/foo.yml +5579 -0
- data/webgui/db/old_development.sqlite3 +0 -0
- data/webgui/db/stats.yml +5482 -0
- data/webgui/lib/tasks/possibility.rake +17 -0
- data/webgui/log/development.log +13294 -0
- data/webgui/log/test.log +4777 -0
- metadata +20 -2
data/Manifest.txt
CHANGED
data/Rakefile
CHANGED
@@ -20,7 +20,7 @@ PROJ.authors = 'Douglas A. Seifert'
|
|
20
20
|
PROJ.email = 'doug+rubyforge@dseifert.net'
|
21
21
|
PROJ.url = 'http://www.dseifert.net/code/tournament'
|
22
22
|
PROJ.rubyforge.name = 'tournament'
|
23
|
-
PROJ.version = '2.5.
|
23
|
+
PROJ.version = '2.5.1'
|
24
24
|
PROJ.group_id = 5863
|
25
25
|
|
26
26
|
PROJ.spec.opts << '--color'
|
data/tasks/ann.rake
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# $Id$
|
2
1
|
|
3
2
|
begin
|
4
3
|
require 'bones/smtp_tls'
|
@@ -43,7 +42,7 @@ namespace :ann do
|
|
43
42
|
desc "Send an email announcement"
|
44
43
|
task :email => ['ann:prereqs', PROJ.ann.file] do
|
45
44
|
ann = PROJ.ann
|
46
|
-
from = ann.email[:from] || PROJ.email
|
45
|
+
from = ann.email[:from] || Array(PROJ.authors).first || PROJ.email
|
47
46
|
to = Array(ann.email[:to])
|
48
47
|
|
49
48
|
### build a mail header for RFC 822
|
data/tasks/bones.rake
CHANGED
data/tasks/gem.rake
CHANGED
@@ -1,6 +1,94 @@
|
|
1
|
-
# $Id$
|
2
1
|
|
3
|
-
require '
|
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
|
4
92
|
|
5
93
|
namespace :gem do
|
6
94
|
|
@@ -19,6 +107,10 @@ namespace :gem do
|
|
19
107
|
s.add_dependency(*dep)
|
20
108
|
end
|
21
109
|
|
110
|
+
PROJ.gem.development_dependencies.each do |dep|
|
111
|
+
s.add_development_dependency(*dep)
|
112
|
+
end
|
113
|
+
|
22
114
|
s.files = PROJ.gem.files
|
23
115
|
s.executables = PROJ.gem.executables.map {|fn| File.basename(fn)}
|
24
116
|
s.extensions = PROJ.gem.files.grep %r/extconf\.rb$/
|
@@ -57,37 +149,21 @@ namespace :gem do
|
|
57
149
|
end
|
58
150
|
end # Gem::Specification.new
|
59
151
|
|
60
|
-
|
61
|
-
|
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
|
62
156
|
|
63
157
|
desc 'Show information about the gem'
|
64
158
|
task :debug => 'gem:prereqs' do
|
65
159
|
puts PROJ.gem._spec.to_ruby
|
66
160
|
end
|
67
161
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
end
|
73
|
-
Rake::Task['gem:package'].instance_variable_set(:@full_comment, nil)
|
74
|
-
|
75
|
-
gem_file = if PROJ.gem._spec.platform == Gem::Platform::RUBY
|
76
|
-
"#{pkg.package_name}.gem"
|
77
|
-
else
|
78
|
-
"#{pkg.package_name}-#{PROJ.gem._spec.platform}.gem"
|
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
|
79
166
|
end
|
80
|
-
|
81
|
-
desc "Build the gem file #{gem_file}"
|
82
|
-
task :package => ['gem:prereqs', "#{pkg.package_dir}/#{gem_file}"]
|
83
|
-
|
84
|
-
file "#{pkg.package_dir}/#{gem_file}" => [pkg.package_dir] + PROJ.gem._spec.files do
|
85
|
-
when_writing("Creating GEM") {
|
86
|
-
Gem::Builder.new(PROJ.gem._spec).build
|
87
|
-
verbose(true) {
|
88
|
-
mv gem_file, "#{pkg.package_dir}/#{gem_file}"
|
89
|
-
}
|
90
|
-
}
|
91
167
|
end
|
92
168
|
|
93
169
|
desc 'Install the gem'
|
@@ -113,14 +189,13 @@ namespace :gem do
|
|
113
189
|
task :cleanup do
|
114
190
|
sh "#{SUDO} #{GEM} cleanup #{PROJ.gem._spec.name}"
|
115
191
|
end
|
116
|
-
|
117
192
|
end # namespace :gem
|
118
193
|
|
194
|
+
|
119
195
|
desc 'Alias to gem:package'
|
120
196
|
task :gem => 'gem:package'
|
121
197
|
|
122
198
|
task :clobber => 'gem:clobber_package'
|
123
|
-
|
124
|
-
remove_desc_for_task %w(gem:clobber_package)
|
199
|
+
remove_desc_for_task 'gem:clobber_package'
|
125
200
|
|
126
201
|
# EOF
|
data/tasks/git.rake
CHANGED
data/tasks/notes.rake
CHANGED
data/tasks/post_load.rake
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
# $Id$
|
2
1
|
|
3
2
|
# This file does not define any rake tasks. It is used to load some project
|
4
3
|
# settings if they are not defined by the user.
|
5
4
|
|
6
|
-
PROJ.rdoc.exclude << "^#{Regexp.escape(PROJ.manifest_file)}$"
|
7
5
|
PROJ.exclude << ["^#{Regexp.escape(PROJ.ann.file)}$",
|
6
|
+
"^#{Regexp.escape(PROJ.ignore_file)}$",
|
8
7
|
"^#{Regexp.escape(PROJ.rdoc.dir)}/",
|
9
8
|
"^#{Regexp.escape(PROJ.rcov.dir)}/"]
|
10
9
|
|
11
10
|
flatten_arrays = lambda do |this,os|
|
12
11
|
os.instance_variable_get(:@table).each do |key,val|
|
13
|
-
next if key == :dependencies
|
12
|
+
next if key == :dependencies \
|
13
|
+
or key == :development_dependencies
|
14
14
|
case val
|
15
15
|
when Array; val.flatten!
|
16
16
|
when OpenStruct; this.call(this,val)
|
@@ -25,12 +25,7 @@ PROJ.description ||= paragraphs_of(PROJ.readme_file, 'description').join("\n\n")
|
|
25
25
|
|
26
26
|
PROJ.summary ||= PROJ.description.split('.').first
|
27
27
|
|
28
|
-
PROJ.gem.files ||=
|
29
|
-
if test(?f, PROJ.manifest_file)
|
30
|
-
files = File.readlines(PROJ.manifest_file).map {|fn| fn.chomp.strip}
|
31
|
-
files.delete ''
|
32
|
-
files
|
33
|
-
else [] end
|
28
|
+
PROJ.gem.files ||= manifest
|
34
29
|
|
35
30
|
PROJ.gem.executables ||= PROJ.gem.files.find_all {|fn| fn =~ %r/^bin/}
|
36
31
|
|
data/tasks/rdoc.rake
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# $Id$
|
2
1
|
|
3
2
|
require 'rake/rdoctask'
|
4
3
|
|
@@ -9,7 +8,6 @@ namespace :doc do
|
|
9
8
|
rdoc = PROJ.rdoc
|
10
9
|
rd.main = rdoc.main
|
11
10
|
rd.rdoc_dir = rdoc.dir
|
12
|
-
rd.template = rdoc.template
|
13
11
|
|
14
12
|
incl = Regexp.new(rdoc.include.join('|'))
|
15
13
|
excl = Regexp.new(rdoc.exclude.join('|'))
|
@@ -21,10 +19,11 @@ namespace :doc do
|
|
21
19
|
end
|
22
20
|
rd.rdoc_files.push(*files)
|
23
21
|
|
24
|
-
|
25
|
-
|
22
|
+
name = PROJ.name
|
26
23
|
rf_name = PROJ.rubyforge.name
|
27
|
-
|
24
|
+
|
25
|
+
title = "#{name}-#{PROJ.version} Documentation"
|
26
|
+
title = "#{rf_name}'s " + title if rf_name.valid? and rf_name != name
|
28
27
|
|
29
28
|
rd.options << "-t #{title}"
|
30
29
|
rd.options.concat(rdoc.opts)
|
data/tasks/rubyforge.rake
CHANGED
@@ -6,7 +6,7 @@ require 'rake/contrib/sshpublisher'
|
|
6
6
|
|
7
7
|
namespace :gem do
|
8
8
|
desc 'Package and upload to RubyForge'
|
9
|
-
task :release => [:clobber, 'gem
|
9
|
+
task :release => [:clobber, 'gem'] do |t|
|
10
10
|
v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
|
11
11
|
abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
|
12
12
|
pkg = "pkg/#{PROJ.gem._spec.full_name}"
|
@@ -26,9 +26,7 @@ namespace :gem do
|
|
26
26
|
c['release_changes'] = PROJ.changes if PROJ.changes
|
27
27
|
c['preformatted'] = true
|
28
28
|
|
29
|
-
files =
|
30
|
-
(PROJ.gem.need_zip ? "#{pkg}.zip" : nil),
|
31
|
-
"#{pkg}.gem"].compact
|
29
|
+
files = Dir.glob("#{pkg}*.*")
|
32
30
|
|
33
31
|
puts "Releasing #{PROJ.name} v. #{PROJ.version}"
|
34
32
|
rf.add_release PROJ.rubyforge.name, PROJ.name, PROJ.version, *files
|
data/tasks/setup.rb
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
-
# $Id$
|
2
1
|
|
3
2
|
require 'rubygems'
|
4
3
|
require 'rake'
|
5
4
|
require 'rake/clean'
|
6
5
|
require 'fileutils'
|
7
6
|
require 'ostruct'
|
7
|
+
require 'find'
|
8
8
|
|
9
|
-
class OpenStruct; undef :gem; end
|
9
|
+
class OpenStruct; undef :gem if defined? :gem; end
|
10
|
+
|
11
|
+
# TODO: make my own openstruct type object that includes descriptions
|
12
|
+
# TODO: use the descriptions to output help on the available bones options
|
10
13
|
|
11
14
|
PROJ = OpenStruct.new(
|
12
15
|
# Project Defaults
|
@@ -25,8 +28,8 @@ PROJ = OpenStruct.new(
|
|
25
28
|
:ruby_opts => %w(-w),
|
26
29
|
:libs => [],
|
27
30
|
:history_file => 'History.txt',
|
28
|
-
:manifest_file => 'Manifest.txt',
|
29
31
|
:readme_file => 'README.txt',
|
32
|
+
:ignore_file => '.bnsignore',
|
30
33
|
|
31
34
|
# Announce
|
32
35
|
:ann => OpenStruct.new(
|
@@ -48,6 +51,7 @@ PROJ = OpenStruct.new(
|
|
48
51
|
# Gem Packaging
|
49
52
|
:gem => OpenStruct.new(
|
50
53
|
:dependencies => [],
|
54
|
+
:development_dependencies => [],
|
51
55
|
:executables => nil,
|
52
56
|
:extensions => FileList['ext/**/extconf.rb'],
|
53
57
|
:files => nil,
|
@@ -59,7 +63,7 @@ PROJ = OpenStruct.new(
|
|
59
63
|
# File Annotations
|
60
64
|
:notes => OpenStruct.new(
|
61
65
|
:exclude => %w(^tasks/setup\.rb$),
|
62
|
-
:extensions => %w(.txt .rb .erb) << '',
|
66
|
+
:extensions => %w(.txt .rb .erb .rdoc) << '',
|
63
67
|
:tags => %w(FIXME OPTIMIZE TODO)
|
64
68
|
),
|
65
69
|
|
@@ -74,7 +78,7 @@ PROJ = OpenStruct.new(
|
|
74
78
|
# Rdoc
|
75
79
|
:rdoc => OpenStruct.new(
|
76
80
|
:opts => [],
|
77
|
-
:include => %w(^lib/ ^bin/ ^ext/ \.txt$),
|
81
|
+
:include => %w(^lib/ ^bin/ ^ext/ \.txt$ \.rdoc$),
|
78
82
|
:exclude => %w(extconf\.rb$),
|
79
83
|
:main => nil,
|
80
84
|
:dir => 'doc',
|
@@ -110,17 +114,17 @@ PROJ = OpenStruct.new(
|
|
110
114
|
)
|
111
115
|
|
112
116
|
# Load the other rake files in the tasks folder
|
113
|
-
|
114
|
-
|
117
|
+
tasks_dir = File.expand_path(File.dirname(__FILE__))
|
118
|
+
post_load_fn = File.join(tasks_dir, 'post_load.rake')
|
119
|
+
rakefiles = Dir.glob(File.join(tasks_dir, '*.rake')).sort
|
120
|
+
rakefiles.unshift(rakefiles.delete(post_load_fn)).compact!
|
115
121
|
import(*rakefiles)
|
116
122
|
|
117
123
|
# Setup the project libraries
|
118
124
|
%w(lib ext).each {|dir| PROJ.libs << dir if test ?d, dir}
|
119
125
|
|
120
126
|
# Setup some constants
|
121
|
-
|
122
|
-
|
123
|
-
DEV_NULL = WIN32 ? 'NUL:' : '/dev/null'
|
127
|
+
DEV_NULL = File.exist?('/dev/null') ? '/dev/null' : 'NUL:'
|
124
128
|
|
125
129
|
def quiet( &block )
|
126
130
|
io = [STDOUT.dup, STDERR.dup]
|
@@ -133,21 +137,15 @@ ensure
|
|
133
137
|
$stdout, $stderr = STDOUT, STDERR
|
134
138
|
end
|
135
139
|
|
136
|
-
DIFF = if
|
137
|
-
else
|
138
|
-
if quiet {system "gdiff", __FILE__, __FILE__} then 'gdiff'
|
139
|
-
else 'diff' end
|
140
|
-
end unless defined? DIFF
|
140
|
+
DIFF = if system("gdiff '#{__FILE__}' '#{__FILE__}' > #{DEV_NULL} 2>&1") then 'gdiff'
|
141
|
+
else 'diff' end unless defined? DIFF
|
141
142
|
|
142
|
-
SUDO = if
|
143
|
-
else
|
144
|
-
if quiet {system 'which sudo'} then 'sudo'
|
145
|
-
else '' end
|
146
|
-
end
|
143
|
+
SUDO = if system("which sudo > #{DEV_NULL} 2>&1") then 'sudo'
|
144
|
+
else '' end unless defined? SUDO
|
147
145
|
|
148
|
-
RCOV =
|
149
|
-
RDOC =
|
150
|
-
GEM =
|
146
|
+
RCOV = "#{RUBY} -S rcov"
|
147
|
+
RDOC = "#{RUBY} -S rdoc"
|
148
|
+
GEM = "#{RUBY} -S gem"
|
151
149
|
|
152
150
|
%w(rcov spec/rake/spectask rubyforge bones facets/ansicode).each do |lib|
|
153
151
|
begin
|
@@ -162,6 +160,12 @@ HAVE_SVN = (Dir.entries(Dir.pwd).include?('.svn') and
|
|
162
160
|
HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and
|
163
161
|
system("git --version 2>&1 > #{DEV_NULL}"))
|
164
162
|
|
163
|
+
# Add bones as a development dependency
|
164
|
+
#
|
165
|
+
if HAVE_BONES
|
166
|
+
PROJ.gem.development_dependencies << ['bones', ">= #{Bones::VERSION}"]
|
167
|
+
end
|
168
|
+
|
165
169
|
# Reads a file at +path+ and spits out an array of the +paragraphs+
|
166
170
|
# specified.
|
167
171
|
#
|
@@ -243,9 +247,29 @@ end
|
|
243
247
|
# Scans the current working directory and creates a list of files that are
|
244
248
|
# candidates to be in the manifest.
|
245
249
|
#
|
246
|
-
def
|
250
|
+
def manifest
|
247
251
|
files = []
|
248
|
-
exclude =
|
252
|
+
exclude = PROJ.exclude.dup
|
253
|
+
comment = %r/^\s*#/
|
254
|
+
|
255
|
+
# process the ignore file and add the items there to the exclude list
|
256
|
+
if test(?f, PROJ.ignore_file)
|
257
|
+
ary = []
|
258
|
+
File.readlines(PROJ.ignore_file).each do |line|
|
259
|
+
next if line =~ comment
|
260
|
+
line.chomp!
|
261
|
+
line.strip!
|
262
|
+
next if line.nil? or line.empty?
|
263
|
+
|
264
|
+
glob = line =~ %r/\*\./ ? File.join('**', line) : line
|
265
|
+
Dir.glob(glob).each {|fn| ary << "^#{Regexp.escape(fn)}"}
|
266
|
+
end
|
267
|
+
exclude.concat ary
|
268
|
+
end
|
269
|
+
|
270
|
+
# generate a regular expression from the exclude list
|
271
|
+
exclude = Regexp.new(exclude.join('|'))
|
272
|
+
|
249
273
|
Find.find '.' do |path|
|
250
274
|
path.sub! %r/^(\.\/|\/)/o, ''
|
251
275
|
next unless test ?f, path
|