opensprints-core 0.5.4 → 0.6.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/README.rdoc CHANGED
@@ -2,12 +2,16 @@
2
2
 
3
3
  This is a library for interacting with the data recorded by opensprints. Racers, Speed, Events, best time, losses, speed, etc. are all encapsulated here. If you'd like to create a ruby application for goldsprints registration, conducting races, or analyzing performances "opensprints-core" is your gem.
4
4
 
5
- This library was extracted from opensprints[http://github.com/evanfarrar/opensprints]. This is the "model" for opensprints's view. This portion of the application had good test coverage (the view portion has none). This portion of the app has kept a similar structure since the beginning of the project (opensprints' view has been completely rewritten with at least 4 different architectures and libraries). This gem is currently only used in the stats[http://github.com/evanfarrar/opensprints.org] application and the opensprints shoes[http://github.com/evanfarrar/opensprints] application. If you're using it in your project, let me know (evan (at) opensprints (period) org).
5
+ This library was extracted from {http://github.com/evanfarrar/opensprints opensprints}. This is the "model" for opensprints's view. This portion of the application had good test coverage (the view portion has none). This portion of the app has kept a similar structure since the beginning of the project (opensprints' view has been completely rewritten with at least 4 different architectures and libraries). This gem is currently only used in the {http://github.com/evanfarrar/opensprints.org opensprints.org application} and the {http://github.com/evanfarrar/opensprints opensprints shoes application}. If you're using it in your project, let me know (evan (at) opensprints (period) org).
6
6
 
7
7
  == Note on Patches/Pull Requests
8
8
 
9
9
  OpenSprints has an aggressively liberal commit policy. If you follow or fork the project on github, we'll add you the project's collaborators list.
10
10
 
11
+ If you're intereseted in learning more about the structure of this application to modify, extend or fork it, read our API docs:
12
+ * {http://rdoc.info/projects/evanfarrar/opensprints}
13
+ * {http://rdoc.info/projects/evanfarrar/opensprints-core}
14
+
11
15
  == Copyright
12
16
 
13
17
  Copyright (c) 2009 Evan Farrar. See LICENSE for details.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.4
1
+ 0.6.0
@@ -0,0 +1,14 @@
1
+ class AddForFunToRaces < Sequel::Migration
2
+ def up
3
+ alter_table(:races) do
4
+ add_column :for_fun, TrueClass, :default => false, :null => false
5
+ end
6
+ end
7
+
8
+ def down
9
+ alter_table(:races) do
10
+ drop_column :for_fun
11
+ end
12
+ end
13
+ end
14
+
@@ -1,3 +1,4 @@
1
+ require 'ruby-debug'
1
2
  class Racer < Sequel::Model
2
3
  one_to_many :categorizations
3
4
  many_to_many :categories, :join_table => :categorizations
@@ -6,7 +7,8 @@ class Racer < Sequel::Model
6
7
  end
7
8
 
8
9
  def best_time
9
- best = self.db[:race_participations].filter(:racer_id => self.pk).order(:finish_time).select(:finish_time).first
10
+ serious_races = self.db[:races].filter(:for_fun => false).select(:id)
11
+ best = self.db[:race_participations].filter(:racer_id => self.pk, :race_id => serious_races).order(:finish_time).select(:finish_time).first
10
12
  best[:finish_time] if best
11
13
  end
12
14
  end
@@ -10,6 +10,7 @@ if(defined? Shoes) #Real environment
10
10
  Sequel::Migrator.apply(DB, 'lib/migrations/')
11
11
  else #Test environment
12
12
  DB = Sequel.connect("sqlite::memory:")
13
+ Sequel::Migrator.apply(DB, 'lib/migrations/')
13
14
  end
14
15
  Infinity = 1/0.0
15
16
  require 'opensprints-core/tournament'
data/test/test_racer.rb CHANGED
@@ -42,4 +42,18 @@ describe 'A racer' do
42
42
  end
43
43
  racer.best_time.should==(2.7)
44
44
  end
45
+
46
+ it "should ignore best times from fun races" do
47
+ racer = Racer.create
48
+ [7.0, 12.0, 2.7, 10.0].each do |time|
49
+ race = Race.create(:for_fun => true)
50
+ RaceParticipation.create(:finish_time => time, :race => race, :racer => racer)
51
+ end
52
+ racer.best_time.should==nil
53
+ [7.0, 12.0, 10.0].each do |time|
54
+ race = Race.create
55
+ RaceParticipation.create(:finish_time => time, :race => race, :racer => racer)
56
+ end
57
+ racer.best_time.should==7.0
58
+ end
45
59
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opensprints-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 6
8
+ - 0
9
+ version: 0.6.0
5
10
  platform: ruby
6
11
  authors:
7
12
  - Evan Farrar
@@ -9,29 +14,33 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-10-16 00:00:00 -05:00
17
+ date: 2010-09-06 00:00:00 -05:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: bacon
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :development
31
+ version_requirements: *id001
25
32
  - !ruby/object:Gem::Dependency
26
33
  name: sequel
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
39
+ segments:
40
+ - 0
33
41
  version: "0"
34
- version:
42
+ type: :runtime
43
+ version_requirements: *id002
35
44
  description: "A lib for interacting with opensprints race records data. If you want to write a new application to display opensprints stats or run races, this is your gem. "
36
45
  email: evanfarrar@gmail.com
37
46
  executables: []
@@ -53,6 +62,7 @@ files:
53
62
  - lib/migrations/003_create_categorizations.rb
54
63
  - lib/migrations/004_create_races.rb
55
64
  - lib/migrations/005_create_tournaments.rb
65
+ - lib/migrations/006_add_for_fun_to_races.rb
56
66
  - lib/opensprints-core.rb
57
67
  - lib/opensprints-core/categorization.rb
58
68
  - lib/opensprints-core/category.rb
@@ -82,18 +92,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
82
92
  requirements:
83
93
  - - ">="
84
94
  - !ruby/object:Gem::Version
95
+ segments:
96
+ - 0
85
97
  version: "0"
86
- version:
87
98
  required_rubygems_version: !ruby/object:Gem::Requirement
88
99
  requirements:
89
100
  - - ">="
90
101
  - !ruby/object:Gem::Version
102
+ segments:
103
+ - 0
91
104
  version: "0"
92
- version:
93
105
  requirements: []
94
106
 
95
107
  rubyforge_project:
96
- rubygems_version: 1.3.5
108
+ rubygems_version: 1.3.6
97
109
  signing_key:
98
110
  specification_version: 3
99
111
  summary: A lib for interacting with opensprints race records data