tournament 2.5.1 → 2.5.2

Sign up to get free protection for your applications and to get access to all the features.
data/tasks/rdoc.rake DELETED
@@ -1,51 +0,0 @@
1
-
2
- require 'rake/rdoctask'
3
-
4
- namespace :doc do
5
-
6
- desc 'Generate RDoc documentation'
7
- Rake::RDocTask.new do |rd|
8
- rdoc = PROJ.rdoc
9
- rd.main = rdoc.main
10
- rd.rdoc_dir = rdoc.dir
11
-
12
- incl = Regexp.new(rdoc.include.join('|'))
13
- excl = Regexp.new(rdoc.exclude.join('|'))
14
- files = PROJ.gem.files.find_all do |fn|
15
- case fn
16
- when excl; false
17
- when incl; true
18
- else false end
19
- end
20
- rd.rdoc_files.push(*files)
21
-
22
- name = PROJ.name
23
- rf_name = PROJ.rubyforge.name
24
-
25
- title = "#{name}-#{PROJ.version} Documentation"
26
- title = "#{rf_name}'s " + title if rf_name.valid? and rf_name != name
27
-
28
- rd.options << "-t #{title}"
29
- rd.options.concat(rdoc.opts)
30
- end
31
-
32
- desc 'Generate ri locally for testing'
33
- task :ri => :clobber_ri do
34
- sh "#{RDOC} --ri -o ri ."
35
- end
36
-
37
- task :clobber_ri do
38
- rm_r 'ri' rescue nil
39
- end
40
-
41
- end # namespace :doc
42
-
43
- desc 'Alias to doc:rdoc'
44
- task :doc => 'doc:rdoc'
45
-
46
- desc 'Remove all build products'
47
- task :clobber => %w(doc:clobber_rdoc doc:clobber_ri)
48
-
49
- remove_desc_for_task %w(doc:clobber_rdoc)
50
-
51
- # EOF
data/tasks/rubyforge.rake DELETED
@@ -1,55 +0,0 @@
1
-
2
- if PROJ.rubyforge.name.valid? && HAVE_RUBYFORGE
3
-
4
- require 'rubyforge'
5
- require 'rake/contrib/sshpublisher'
6
-
7
- namespace :gem do
8
- desc 'Package and upload to RubyForge'
9
- task :release => [:clobber, 'gem'] do |t|
10
- v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
11
- abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
12
- pkg = "pkg/#{PROJ.gem._spec.full_name}"
13
-
14
- if $DEBUG then
15
- puts "release_id = rf.add_release #{PROJ.rubyforge.name.inspect}, #{PROJ.name.inspect}, #{PROJ.version.inspect}, \"#{pkg}.tgz\""
16
- puts "rf.add_file #{PROJ.rubyforge.name.inspect}, #{PROJ.name.inspect}, release_id, \"#{pkg}.gem\""
17
- end
18
-
19
- rf = RubyForge.new
20
- rf.configure rescue nil
21
- puts 'Logging in'
22
- rf.login
23
-
24
- c = rf.userconfig
25
- c['release_notes'] = PROJ.description if PROJ.description
26
- c['release_changes'] = PROJ.changes if PROJ.changes
27
- c['preformatted'] = true
28
-
29
- files = Dir.glob("#{pkg}*.*")
30
-
31
- puts "Releasing #{PROJ.name} v. #{PROJ.version}"
32
- rf.add_release PROJ.rubyforge.name, PROJ.name, PROJ.version, *files
33
- end
34
- end # namespace :gem
35
-
36
-
37
- namespace :doc do
38
- desc "Publish RDoc to RubyForge"
39
- task :release => %w(doc:clobber_rdoc doc:rdoc) do
40
- config = YAML.load(
41
- File.read(File.expand_path('~/.rubyforge/user-config.yml'))
42
- )
43
-
44
- host = "#{config['username']}@rubyforge.org"
45
- remote_dir = "/var/www/gforge-projects/#{PROJ.rubyforge.name}/"
46
- remote_dir << PROJ.rdoc.remote_dir if PROJ.rdoc.remote_dir
47
- local_dir = PROJ.rdoc.dir
48
-
49
- Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
50
- end
51
- end # namespace :doc
52
-
53
- end # if HAVE_RUBYFORGE
54
-
55
- # EOF
data/tasks/setup.rb DELETED
@@ -1,292 +0,0 @@
1
-
2
- require 'rubygems'
3
- require 'rake'
4
- require 'rake/clean'
5
- require 'fileutils'
6
- require 'ostruct'
7
- require 'find'
8
-
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
13
-
14
- PROJ = OpenStruct.new(
15
- # Project Defaults
16
- :name => nil,
17
- :summary => nil,
18
- :description => nil,
19
- :changes => nil,
20
- :authors => nil,
21
- :email => nil,
22
- :url => "\000",
23
- :version => ENV['VERSION'] || '0.0.0',
24
- :exclude => %w(tmp$ bak$ ~$ CVS \.svn/ \.git/ ^pkg/),
25
- :release_name => ENV['RELEASE'],
26
-
27
- # System Defaults
28
- :ruby_opts => %w(-w),
29
- :libs => [],
30
- :history_file => 'History.txt',
31
- :readme_file => 'README.txt',
32
- :ignore_file => '.bnsignore',
33
-
34
- # Announce
35
- :ann => OpenStruct.new(
36
- :file => 'announcement.txt',
37
- :text => nil,
38
- :paragraphs => [],
39
- :email => {
40
- :from => nil,
41
- :to => %w(ruby-talk@ruby-lang.org),
42
- :server => 'localhost',
43
- :port => 25,
44
- :domain => ENV['HOSTNAME'],
45
- :acct => nil,
46
- :passwd => nil,
47
- :authtype => :plain
48
- }
49
- ),
50
-
51
- # Gem Packaging
52
- :gem => OpenStruct.new(
53
- :dependencies => [],
54
- :development_dependencies => [],
55
- :executables => nil,
56
- :extensions => FileList['ext/**/extconf.rb'],
57
- :files => nil,
58
- :need_tar => true,
59
- :need_zip => false,
60
- :extras => {}
61
- ),
62
-
63
- # File Annotations
64
- :notes => OpenStruct.new(
65
- :exclude => %w(^tasks/setup\.rb$),
66
- :extensions => %w(.txt .rb .erb .rdoc) << '',
67
- :tags => %w(FIXME OPTIMIZE TODO)
68
- ),
69
-
70
- # Rcov
71
- :rcov => OpenStruct.new(
72
- :dir => 'coverage',
73
- :opts => %w[--sort coverage -T],
74
- :threshold => 90.0,
75
- :threshold_exact => false
76
- ),
77
-
78
- # Rdoc
79
- :rdoc => OpenStruct.new(
80
- :opts => [],
81
- :include => %w(^lib/ ^bin/ ^ext/ \.txt$ \.rdoc$),
82
- :exclude => %w(extconf\.rb$),
83
- :main => nil,
84
- :dir => 'doc',
85
- :remote_dir => nil
86
- ),
87
-
88
- # Rubyforge
89
- :rubyforge => OpenStruct.new(
90
- :name => "\000"
91
- ),
92
-
93
- # Rspec
94
- :spec => OpenStruct.new(
95
- :files => FileList['spec/**/*_spec.rb'],
96
- :opts => []
97
- ),
98
-
99
- # Subversion Repository
100
- :svn => OpenStruct.new(
101
- :root => nil,
102
- :path => '',
103
- :trunk => 'trunk',
104
- :tags => 'tags',
105
- :branches => 'branches'
106
- ),
107
-
108
- # Test::Unit
109
- :test => OpenStruct.new(
110
- :files => FileList['test/**/test_*.rb'],
111
- :file => 'test/all.rb',
112
- :opts => []
113
- )
114
- )
115
-
116
- # Load the other rake files in the tasks folder
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!
121
- import(*rakefiles)
122
-
123
- # Setup the project libraries
124
- %w(lib ext).each {|dir| PROJ.libs << dir if test ?d, dir}
125
-
126
- # Setup some constants
127
- DEV_NULL = File.exist?('/dev/null') ? '/dev/null' : 'NUL:'
128
-
129
- def quiet( &block )
130
- io = [STDOUT.dup, STDERR.dup]
131
- STDOUT.reopen DEV_NULL
132
- STDERR.reopen DEV_NULL
133
- block.call
134
- ensure
135
- STDOUT.reopen io.first
136
- STDERR.reopen io.last
137
- $stdout, $stderr = STDOUT, STDERR
138
- end
139
-
140
- DIFF = if system("gdiff '#{__FILE__}' '#{__FILE__}' > #{DEV_NULL} 2>&1") then 'gdiff'
141
- else 'diff' end unless defined? DIFF
142
-
143
- SUDO = if system("which sudo > #{DEV_NULL} 2>&1") then 'sudo'
144
- else '' end unless defined? SUDO
145
-
146
- RCOV = "#{RUBY} -S rcov"
147
- RDOC = "#{RUBY} -S rdoc"
148
- GEM = "#{RUBY} -S gem"
149
-
150
- %w(rcov spec/rake/spectask rubyforge bones facets/ansicode).each do |lib|
151
- begin
152
- require lib
153
- Object.instance_eval {const_set "HAVE_#{lib.tr('/','_').upcase}", true}
154
- rescue LoadError
155
- Object.instance_eval {const_set "HAVE_#{lib.tr('/','_').upcase}", false}
156
- end
157
- end
158
- HAVE_SVN = (Dir.entries(Dir.pwd).include?('.svn') and
159
- system("svn --version 2>&1 > #{DEV_NULL}"))
160
- HAVE_GIT = (Dir.entries(Dir.pwd).include?('.git') and
161
- system("git --version 2>&1 > #{DEV_NULL}"))
162
-
163
- # Add bones as a development dependency
164
- #
165
- if HAVE_BONES
166
- PROJ.gem.development_dependencies << ['bones', ">= #{Bones::VERSION}"]
167
- end
168
-
169
- # Reads a file at +path+ and spits out an array of the +paragraphs+
170
- # specified.
171
- #
172
- # changes = paragraphs_of('History.txt', 0..1).join("\n\n")
173
- # summary, *description = paragraphs_of('README.txt', 3, 3..8)
174
- #
175
- def paragraphs_of( path, *paragraphs )
176
- title = String === paragraphs.first ? paragraphs.shift : nil
177
- ary = File.read(path).delete("\r").split(/\n\n+/)
178
-
179
- result = if title
180
- tmp, matching = [], false
181
- rgxp = %r/^=+\s*#{Regexp.escape(title)}/i
182
- paragraphs << (0..-1) if paragraphs.empty?
183
-
184
- ary.each do |val|
185
- if val =~ rgxp
186
- break if matching
187
- matching = true
188
- rgxp = %r/^=+/i
189
- elsif matching
190
- tmp << val
191
- end
192
- end
193
- tmp
194
- else ary end
195
-
196
- result.values_at(*paragraphs)
197
- end
198
-
199
- # Adds the given gem _name_ to the current project's dependency list. An
200
- # optional gem _version_ can be given. If omitted, the newest gem version
201
- # will be used.
202
- #
203
- def depend_on( name, version = nil )
204
- spec = Gem.source_index.find_name(name).last
205
- version = spec.version.to_s if version.nil? and !spec.nil?
206
-
207
- PROJ.gem.dependencies << case version
208
- when nil; [name]
209
- when %r/^\d/; [name, ">= #{version}"]
210
- else [name, version] end
211
- end
212
-
213
- # Adds the given arguments to the include path if they are not already there
214
- #
215
- def ensure_in_path( *args )
216
- args.each do |path|
217
- path = File.expand_path(path)
218
- $:.unshift(path) if test(?d, path) and not $:.include?(path)
219
- end
220
- end
221
-
222
- # Find a rake task using the task name and remove any description text. This
223
- # will prevent the task from being displayed in the list of available tasks.
224
- #
225
- def remove_desc_for_task( names )
226
- Array(names).each do |task_name|
227
- task = Rake.application.tasks.find {|t| t.name == task_name}
228
- next if task.nil?
229
- task.instance_variable_set :@comment, nil
230
- end
231
- end
232
-
233
- # Change working directories to _dir_, call the _block_ of code, and then
234
- # change back to the original working directory (the current directory when
235
- # this method was called).
236
- #
237
- def in_directory( dir, &block )
238
- curdir = pwd
239
- begin
240
- cd dir
241
- return block.call
242
- ensure
243
- cd curdir
244
- end
245
- end
246
-
247
- # Scans the current working directory and creates a list of files that are
248
- # candidates to be in the manifest.
249
- #
250
- def manifest
251
- files = []
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
-
273
- Find.find '.' do |path|
274
- path.sub! %r/^(\.\/|\/)/o, ''
275
- next unless test ?f, path
276
- next if path =~ exclude
277
- files << path
278
- end
279
- files.sort!
280
- end
281
-
282
- # We need a "valid" method thtat determines if a string is suitable for use
283
- # in the gem specification.
284
- #
285
- class Object
286
- def valid?
287
- return !(self.empty? or self == "\000") if self.respond_to?(:to_str)
288
- return false
289
- end
290
- end
291
-
292
- # EOF
data/tasks/spec.rake DELETED
@@ -1,54 +0,0 @@
1
-
2
- if HAVE_SPEC_RAKE_SPECTASK and not PROJ.spec.files.to_a.empty?
3
- require 'spec/rake/verify_rcov'
4
-
5
- namespace :spec do
6
-
7
- desc 'Run all specs with basic output'
8
- Spec::Rake::SpecTask.new(:run) do |t|
9
- t.ruby_opts = PROJ.ruby_opts
10
- t.spec_opts = PROJ.spec.opts
11
- t.spec_files = PROJ.spec.files
12
- t.libs += PROJ.libs
13
- end
14
-
15
- desc 'Run all specs with text output'
16
- Spec::Rake::SpecTask.new(:specdoc) do |t|
17
- t.ruby_opts = PROJ.ruby_opts
18
- t.spec_opts = PROJ.spec.opts + ['--format', 'specdoc']
19
- t.spec_files = PROJ.spec.files
20
- t.libs += PROJ.libs
21
- end
22
-
23
- if HAVE_RCOV
24
- desc 'Run all specs with RCov'
25
- Spec::Rake::SpecTask.new(:rcov) do |t|
26
- t.ruby_opts = PROJ.ruby_opts
27
- t.spec_opts = PROJ.spec.opts
28
- t.spec_files = PROJ.spec.files
29
- t.libs += PROJ.libs
30
- t.rcov = true
31
- t.rcov_dir = PROJ.rcov.dir
32
- t.rcov_opts = PROJ.rcov.opts + ['--exclude', 'spec']
33
- end
34
-
35
- RCov::VerifyTask.new(:verify) do |t|
36
- t.threshold = PROJ.rcov.threshold
37
- t.index_html = File.join(PROJ.rcov.dir, 'index.html')
38
- t.require_exact_threshold = PROJ.rcov.threshold_exact
39
- end
40
-
41
- task :verify => :rcov
42
- remove_desc_for_task %w(spec:clobber_rcov)
43
- end
44
-
45
- end # namespace :spec
46
-
47
- desc 'Alias to spec:run'
48
- task :spec => 'spec:run'
49
-
50
- task :clobber => 'spec:clobber_rcov' if HAVE_RCOV
51
-
52
- end # if HAVE_SPEC_RAKE_SPECTASK
53
-
54
- # EOF
data/tasks/svn.rake DELETED
@@ -1,47 +0,0 @@
1
-
2
- if HAVE_SVN
3
-
4
- unless PROJ.svn.root
5
- info = %x/svn info ./
6
- m = %r/^Repository Root:\s+(.*)$/.match(info)
7
- PROJ.svn.root = (m.nil? ? '' : m[1])
8
- end
9
- PROJ.svn.root = File.join(PROJ.svn.root, PROJ.svn.path) unless PROJ.svn.path.empty?
10
-
11
- namespace :svn do
12
-
13
- # A prerequisites task that all other tasks depend upon
14
- task :prereqs
15
-
16
- desc 'Show tags from the SVN repository'
17
- task :show_tags => 'svn:prereqs' do |t|
18
- tags = %x/svn list #{File.join(PROJ.svn.root, PROJ.svn.tags)}/
19
- tags.gsub!(%r/\/$/, '')
20
- tags = tags.split("\n").sort {|a,b| b <=> a}
21
- puts tags
22
- end
23
-
24
- desc 'Create a new tag in the SVN repository'
25
- task :create_tag => 'svn:prereqs' do |t|
26
- v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
27
- abort "Versions don't match #{v} vs #{PROJ.version}" if v != PROJ.version
28
-
29
- svn = PROJ.svn
30
- trunk = File.join(svn.root, svn.trunk)
31
- tag = "%s-%s" % [PROJ.name, PROJ.version]
32
- tag = File.join(svn.root, svn.tags, tag)
33
- msg = "Creating tag for #{PROJ.name} version #{PROJ.version}"
34
-
35
- puts "Creating SVN tag '#{tag}'"
36
- unless system "svn cp -m '#{msg}' #{trunk} #{tag}"
37
- abort "Tag creation failed"
38
- end
39
- end
40
-
41
- end # namespace :svn
42
-
43
- task 'gem:release' => 'svn:create_tag'
44
-
45
- end # if PROJ.svn.path
46
-
47
- # EOF
data/tasks/test.rake DELETED
@@ -1,40 +0,0 @@
1
-
2
- if test(?e, PROJ.test.file) or not PROJ.test.files.to_a.empty?
3
- require 'rake/testtask'
4
-
5
- namespace :test do
6
-
7
- Rake::TestTask.new(:run) do |t|
8
- t.libs = PROJ.libs
9
- t.test_files = if test(?f, PROJ.test.file) then [PROJ.test.file]
10
- else PROJ.test.files end
11
- t.ruby_opts += PROJ.ruby_opts
12
- t.ruby_opts += PROJ.test.opts
13
- end
14
-
15
- if HAVE_RCOV
16
- desc 'Run rcov on the unit tests'
17
- task :rcov => :clobber_rcov do
18
- opts = PROJ.rcov.opts.dup << '-o' << PROJ.rcov.dir
19
- opts = opts.join(' ')
20
- files = if test(?f, PROJ.test.file) then [PROJ.test.file]
21
- else PROJ.test.files end
22
- files = files.join(' ')
23
- sh "#{RCOV} #{files} #{opts}"
24
- end
25
-
26
- task :clobber_rcov do
27
- rm_r 'coverage' rescue nil
28
- end
29
- end
30
-
31
- end # namespace :test
32
-
33
- desc 'Alias to test:run'
34
- task :test => 'test:run'
35
-
36
- task :clobber => 'test:clobber_rcov' if HAVE_RCOV
37
-
38
- end
39
-
40
- # EOF
@@ -1,29 +0,0 @@
1
- # Settings specified here will take precedence over those in config/environment.rb
2
-
3
- # In the development environment your application's code is reloaded on
4
- # every request. This slows down response time but is perfect for development
5
- # since you don't have to restart the webserver when you make code changes.
6
- config.cache_classes = false
7
-
8
- # Log error messages when you accidentally call methods on nil.
9
- config.whiny_nils = true
10
-
11
- # Show full error reports and disable caching
12
- config.action_controller.consider_all_requests_local = true
13
- config.action_view.debug_rjs = true
14
- config.action_controller.perform_caching = false
15
-
16
- # Don't care if the mailer can't send
17
- config.action_mailer.raise_delivery_errors = true
18
- # Include your app's configuration here:
19
- ActionMailer::Base.smtp_settings = {
20
- :address => "smtp.comcast.net",
21
- :port => 25,
22
- :domain => "comcast.net",
23
- :user_name => 'doug.seifert@comcast.net',
24
- :password => "ccSBBatl1",
25
- :authentication => :login
26
- }
27
-
28
- ADMIN_EMAIL='doug+ncaa@dseifert.net'
29
- PRINCE_PATH='/home/doug/tools/prince/bin/prince'
@@ -1,38 +0,0 @@
1
-
2
- # A Site key gives additional protection against a dictionary attack if your
3
- # DB is ever compromised. With no site key, we store
4
- # DB_password = hash(user_password, DB_user_salt)
5
- # If your database were to be compromised you'd be vulnerable to a dictionary
6
- # attack on all your stupid users' passwords. With a site key, we store
7
- # DB_password = hash(user_password, DB_user_salt, Code_site_key)
8
- # That means an attacker needs access to both your site's code *and* its
9
- # database to mount an "offline dictionary attack.":http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/web-authentication.html
10
- #
11
- # It's probably of minor importance, but recommended by best practices: 'defense
12
- # in depth'. Needless to say, if you upload this to github or the youtubes or
13
- # otherwise place it in public view you'll kinda defeat the point. Your users'
14
- # passwords are still secure, and the world won't end, but defense_in_depth -= 1.
15
- #
16
- # Please note: if you change this, all the passwords will be invalidated, so DO
17
- # keep it someplace secure. Use the random value given or type in the lyrics to
18
- # your favorite Jay-Z song or something; any moderately long, unpredictable text.
19
- REST_AUTH_SITE_KEY = '0a511dde9d611b9f530e799fb730793a2779906a'
20
-
21
- # Repeated applications of the hash make brute force (even with a compromised
22
- # database and site key) harder, and scale with Moore's law.
23
- #
24
- # bq. "To squeeze the most security out of a limited-entropy password or
25
- # passphrase, we can use two techniques [salting and stretching]... that are
26
- # so simple and obvious that they should be used in every password system.
27
- # There is really no excuse not to use them." http://tinyurl.com/37lb73
28
- # Practical Security (Ferguson & Scheier) p350
29
- #
30
- # A modest 10 foldings (the default here) adds 3ms. This makes brute forcing 10
31
- # times harder, while reducing an app that otherwise serves 100 reqs/s to 78 signin
32
- # reqs/s, an app that does 10reqs/s to 9.7 reqs/s
33
- #
34
- # More:
35
- # * http://www.owasp.org/index.php/Hashing_Java
36
- # * "An Illustrated Guide to Cryptographic Hashes":http://www.unixwiz.net/techtips/iguide-crypto-hashes.html
37
-
38
- REST_AUTH_DIGEST_STRETCHES = 10