tournament 2.5.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|