sportdb-models 1.19.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Manifest.txt +27 -38
- data/Rakefile +1 -1
- data/lib/sportdb/models.rb +55 -49
- data/lib/sportdb/{deleter.rb → models/deleter.rb} +3 -9
- data/lib/sportdb/models/formats.rb +23 -0
- data/lib/sportdb/models/models/assoc.rb +38 -0
- data/lib/sportdb/models/{badge.rb → models/badge.rb} +1 -1
- data/lib/sportdb/models/models/event.rb +55 -0
- data/lib/sportdb/models/{forward.rb → models/forward.rb} +3 -3
- data/lib/sportdb/models/{goal.rb → models/goal.rb} +1 -1
- data/lib/sportdb/models/models/ground.rb +16 -0
- data/lib/sportdb/models/{group.rb → models/group.rb} +10 -7
- data/lib/sportdb/models/models/league.rb +20 -0
- data/lib/sportdb/models/{roster.rb → models/lineup.rb} +3 -4
- data/lib/sportdb/models/{game.rb → models/match.rb} +16 -60
- data/lib/sportdb/models/{person.rb → models/person.rb} +0 -0
- data/lib/sportdb/models/{round.rb → models/round.rb} +1 -6
- data/lib/sportdb/models/{season.rb → models/season.rb} +0 -0
- data/lib/sportdb/models/{stage.rb → models/stage.rb} +9 -5
- data/lib/sportdb/models/{stats/alltime_standing_entry.rb → models/stats/alltime_standing.rb} +9 -1
- data/lib/sportdb/models/{stats/event_standing_entry.rb → models/stats/event_standing.rb} +11 -1
- data/lib/sportdb/models/{stats/group_standing_entry.rb → models/stats/group_standing.rb} +10 -1
- data/lib/sportdb/models/models/team.rb +56 -0
- data/lib/sportdb/models/{world → models/world}/city.rb +2 -2
- data/lib/sportdb/models/{world → models/world}/continent.rb +0 -0
- data/lib/sportdb/models/{world → models/world}/country.rb +0 -0
- data/lib/sportdb/models/{world → models/world}/state.rb +0 -0
- data/lib/sportdb/{schema.rb → models/schema.rb} +98 -74
- data/lib/sportdb/{stats.rb → models/stats.rb} +4 -4
- data/lib/sportdb/models/utils.rb +24 -24
- data/lib/sportdb/{version.rb → models/version.rb} +4 -4
- data/test/helper.rb +10 -6
- data/test/test_changes.rb +38 -38
- data/test/test_cursor.rb +15 -15
- data/test/test_winner.rb +75 -70
- metadata +29 -40
- data/lib/sportdb/calc.rb +0 -279
- data/lib/sportdb/models/assoc.rb +0 -106
- data/lib/sportdb/models/assoc_assoc.rb +0 -15
- data/lib/sportdb/models/event.rb +0 -66
- data/lib/sportdb/models/event_ground.rb +0 -15
- data/lib/sportdb/models/event_team.rb +0 -16
- data/lib/sportdb/models/ground.rb +0 -100
- data/lib/sportdb/models/group_team.rb +0 -14
- data/lib/sportdb/models/league.rb +0 -83
- data/lib/sportdb/models/stage_team.rb +0 -14
- data/lib/sportdb/models/stats/alltime_standing.rb +0 -44
- data/lib/sportdb/models/stats/event_standing.rb +0 -55
- data/lib/sportdb/models/stats/group_standing.rb +0 -50
- data/lib/sportdb/models/team.rb +0 -119
- data/lib/sportdb/models/team_compat.rb +0 -64
- data/lib/sportdb/patterns.rb +0 -37
- data/lib/sportdb/standings.rb +0 -178
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa3708f265e85ff08b23288dbb6a0d9a9d99892e
|
4
|
+
data.tar.gz: 0143b37e2c0eeab01bde7aaa6d66619bd81f5a4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b7835c911d31c45e12a4a4d07f29188f4bbd95cbf1a8534ed5dd025f42e02f39832763ccaf73c35847be8f4a89ef004ca7d33103ae28a7a17faf602b503d901d
|
7
|
+
data.tar.gz: 072c3f07aebb20fc10bb6df827d4a87274aa7dce0c5ad7ad9dd78c2f2555103084a871b24fa9c22b9b1c021da443343704a3ee75f66cebc9c760494e92d39966
|
data/Manifest.txt
CHANGED
@@ -2,46 +2,35 @@ CHANGELOG.md
|
|
2
2
|
Manifest.txt
|
3
3
|
README.md
|
4
4
|
Rakefile
|
5
|
-
lib/sportdb/calc.rb
|
6
|
-
lib/sportdb/deleter.rb
|
7
5
|
lib/sportdb/models.rb
|
8
|
-
lib/sportdb/models/
|
9
|
-
lib/sportdb/models/
|
10
|
-
lib/sportdb/models/
|
11
|
-
lib/sportdb/models/
|
12
|
-
lib/sportdb/models/
|
13
|
-
lib/sportdb/models/
|
14
|
-
lib/sportdb/models/
|
15
|
-
lib/sportdb/models/
|
16
|
-
lib/sportdb/models/
|
17
|
-
lib/sportdb/models/
|
18
|
-
lib/sportdb/models/
|
19
|
-
lib/sportdb/models/
|
20
|
-
lib/sportdb/models/
|
21
|
-
lib/sportdb/models/
|
22
|
-
lib/sportdb/models/
|
23
|
-
lib/sportdb/models/
|
24
|
-
lib/sportdb/models/
|
25
|
-
lib/sportdb/models/
|
26
|
-
lib/sportdb/models/
|
27
|
-
lib/sportdb/models/
|
28
|
-
lib/sportdb/models/
|
29
|
-
lib/sportdb/models/
|
30
|
-
lib/sportdb/models/
|
31
|
-
lib/sportdb/models/
|
32
|
-
lib/sportdb/models/
|
33
|
-
lib/sportdb/models/
|
34
|
-
lib/sportdb/models/team_compat.rb
|
6
|
+
lib/sportdb/models/deleter.rb
|
7
|
+
lib/sportdb/models/formats.rb
|
8
|
+
lib/sportdb/models/models/assoc.rb
|
9
|
+
lib/sportdb/models/models/badge.rb
|
10
|
+
lib/sportdb/models/models/event.rb
|
11
|
+
lib/sportdb/models/models/forward.rb
|
12
|
+
lib/sportdb/models/models/goal.rb
|
13
|
+
lib/sportdb/models/models/ground.rb
|
14
|
+
lib/sportdb/models/models/group.rb
|
15
|
+
lib/sportdb/models/models/league.rb
|
16
|
+
lib/sportdb/models/models/lineup.rb
|
17
|
+
lib/sportdb/models/models/match.rb
|
18
|
+
lib/sportdb/models/models/person.rb
|
19
|
+
lib/sportdb/models/models/round.rb
|
20
|
+
lib/sportdb/models/models/season.rb
|
21
|
+
lib/sportdb/models/models/stage.rb
|
22
|
+
lib/sportdb/models/models/stats/alltime_standing.rb
|
23
|
+
lib/sportdb/models/models/stats/event_standing.rb
|
24
|
+
lib/sportdb/models/models/stats/group_standing.rb
|
25
|
+
lib/sportdb/models/models/team.rb
|
26
|
+
lib/sportdb/models/models/world/city.rb
|
27
|
+
lib/sportdb/models/models/world/continent.rb
|
28
|
+
lib/sportdb/models/models/world/country.rb
|
29
|
+
lib/sportdb/models/models/world/state.rb
|
30
|
+
lib/sportdb/models/schema.rb
|
31
|
+
lib/sportdb/models/stats.rb
|
35
32
|
lib/sportdb/models/utils.rb
|
36
|
-
lib/sportdb/models/
|
37
|
-
lib/sportdb/models/world/continent.rb
|
38
|
-
lib/sportdb/models/world/country.rb
|
39
|
-
lib/sportdb/models/world/state.rb
|
40
|
-
lib/sportdb/patterns.rb
|
41
|
-
lib/sportdb/schema.rb
|
42
|
-
lib/sportdb/standings.rb
|
43
|
-
lib/sportdb/stats.rb
|
44
|
-
lib/sportdb/version.rb
|
33
|
+
lib/sportdb/models/version.rb
|
45
34
|
test/helper.rb
|
46
35
|
test/test_changes.rb
|
47
36
|
test/test_cursor.rb
|
data/Rakefile
CHANGED
data/lib/sportdb/models.rb
CHANGED
@@ -8,54 +8,41 @@ require 'persondb/models'
|
|
8
8
|
|
9
9
|
# our own code
|
10
10
|
|
11
|
-
require 'sportdb/version' # let version always go first
|
12
|
-
|
13
|
-
require 'sportdb/
|
14
|
-
require 'sportdb/models/forward'
|
15
|
-
|
16
|
-
require 'sportdb/models/world/
|
17
|
-
require 'sportdb/models/world/
|
18
|
-
require 'sportdb/models/world/
|
19
|
-
require 'sportdb/models/
|
20
|
-
|
21
|
-
require 'sportdb/models/
|
22
|
-
require 'sportdb/models/
|
23
|
-
require 'sportdb/models/
|
24
|
-
require 'sportdb/models/
|
25
|
-
require 'sportdb/models/
|
26
|
-
require 'sportdb/models/
|
27
|
-
require 'sportdb/models/
|
28
|
-
require 'sportdb/models/
|
29
|
-
require 'sportdb/models/
|
30
|
-
require 'sportdb/models/
|
31
|
-
require 'sportdb/models/
|
32
|
-
require 'sportdb/models/
|
33
|
-
require 'sportdb/models/
|
34
|
-
require 'sportdb/models/
|
35
|
-
|
36
|
-
require 'sportdb/models/
|
37
|
-
require 'sportdb/models/
|
38
|
-
require 'sportdb/models/
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
require 'sportdb/models/
|
43
|
-
|
44
|
-
require 'sportdb/models/
|
45
|
-
require 'sportdb/models/stats
|
46
|
-
require 'sportdb/models/stats/group_standing_entry'
|
47
|
-
|
48
|
-
require 'sportdb/models/utils' # e.g. GameCursor
|
49
|
-
|
50
|
-
|
51
|
-
require 'sportdb/schema' # NB: requires sportdb/models (include SportDB::Models)
|
52
|
-
|
53
|
-
|
54
|
-
require 'sportdb/calc' # fix/todo: obsolete - replace w/ standings
|
55
|
-
require 'sportdb/standings'
|
56
|
-
|
57
|
-
require 'sportdb/deleter'
|
58
|
-
require 'sportdb/stats'
|
11
|
+
require 'sportdb/models/version' # let version always go first
|
12
|
+
|
13
|
+
require 'sportdb/models/formats'
|
14
|
+
require 'sportdb/models/models/forward'
|
15
|
+
|
16
|
+
require 'sportdb/models/models/world/city'
|
17
|
+
require 'sportdb/models/models/world/country'
|
18
|
+
require 'sportdb/models/models/world/continent'
|
19
|
+
require 'sportdb/models/models/world/state'
|
20
|
+
|
21
|
+
require 'sportdb/models/models/assoc'
|
22
|
+
require 'sportdb/models/models/badge'
|
23
|
+
require 'sportdb/models/models/event'
|
24
|
+
require 'sportdb/models/models/goal'
|
25
|
+
require 'sportdb/models/models/ground'
|
26
|
+
require 'sportdb/models/models/group'
|
27
|
+
require 'sportdb/models/models/league'
|
28
|
+
require 'sportdb/models/models/lineup'
|
29
|
+
require 'sportdb/models/models/match'
|
30
|
+
require 'sportdb/models/models/person'
|
31
|
+
require 'sportdb/models/models/round'
|
32
|
+
require 'sportdb/models/models/season'
|
33
|
+
require 'sportdb/models/models/stage'
|
34
|
+
require 'sportdb/models/models/team'
|
35
|
+
|
36
|
+
require 'sportdb/models/models/stats/alltime_standing'
|
37
|
+
require 'sportdb/models/models/stats/event_standing'
|
38
|
+
require 'sportdb/models/models/stats/group_standing'
|
39
|
+
|
40
|
+
require 'sportdb/models/schema' # note: requires sportdb/models (include SportDB::Models)
|
41
|
+
|
42
|
+
require 'sportdb/models/utils' # e.g. MatchCursor
|
43
|
+
|
44
|
+
require 'sportdb/models/deleter'
|
45
|
+
require 'sportdb/models/stats'
|
59
46
|
|
60
47
|
|
61
48
|
module SportDb
|
@@ -155,5 +142,24 @@ module SportDb
|
|
155
142
|
end # module SportDb
|
156
143
|
|
157
144
|
|
145
|
+
|
146
|
+
module SportDb
|
147
|
+
module Models
|
148
|
+
##################
|
149
|
+
# add alias why? why not?
|
150
|
+
Competition = Event
|
151
|
+
Comp = Event
|
152
|
+
|
153
|
+
LineUp = Lineup
|
154
|
+
Squad = Lineup
|
155
|
+
|
156
|
+
Game = Match ## add (old) alias - why? why not?
|
157
|
+
end # module Models
|
158
|
+
end # module SportDb
|
159
|
+
|
160
|
+
|
161
|
+
|
158
162
|
## say hello
|
159
|
-
puts SportDb::Module::Models.banner
|
163
|
+
puts SportDb::Module::Models.banner
|
164
|
+
|
165
|
+
|
@@ -5,7 +5,7 @@ module SportDb
|
|
5
5
|
######
|
6
6
|
# note: make models available in sportdb module by default with namespace
|
7
7
|
# e.g. lets you use Team instead of Model::Team
|
8
|
-
include
|
8
|
+
include Models
|
9
9
|
|
10
10
|
def run
|
11
11
|
# for now delete all tables
|
@@ -19,7 +19,7 @@ module SportDb
|
|
19
19
|
|
20
20
|
Goal.delete_all
|
21
21
|
|
22
|
-
|
22
|
+
Match.delete_all
|
23
23
|
Event.delete_all
|
24
24
|
EventTeam.delete_all
|
25
25
|
EventGround.delete_all
|
@@ -30,7 +30,7 @@ module SportDb
|
|
30
30
|
Round.delete_all
|
31
31
|
Badge.delete_all
|
32
32
|
|
33
|
-
|
33
|
+
Lineup.delete_all
|
34
34
|
|
35
35
|
Team.delete_all
|
36
36
|
|
@@ -41,12 +41,6 @@ module SportDb
|
|
41
41
|
|
42
42
|
Assoc.delete_all # associations / organizations
|
43
43
|
AssocAssoc.delete_all # associations / organizations
|
44
|
-
|
45
|
-
## note: moved to racing.db - delete/remove!!!
|
46
|
-
## Record.delete_all
|
47
|
-
## Run.delete_all
|
48
|
-
## Race.delete_all
|
49
|
-
## Track.delete_all
|
50
44
|
end
|
51
45
|
|
52
46
|
end # class Deleter
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module SportDb
|
4
|
+
|
5
|
+
# collection of regex patterns for reuse (SportDb specific)
|
6
|
+
|
7
|
+
### todo: add a patterns.md page to github ??
|
8
|
+
## - add regexper pics??
|
9
|
+
|
10
|
+
TEAM_KEY_RE = %r{ \A
|
11
|
+
[a-z_][a-z0-9_]*
|
12
|
+
\z}x
|
13
|
+
TEAM_KEY_MESSAGE = "expected one or more lowercase letters a-z (or 0-9 or _; must start with a-z or _)"
|
14
|
+
|
15
|
+
|
16
|
+
# must start w/ letter A-Z (2nd,3rd,4th or 5th can be number)
|
17
|
+
TEAM_CODE_RE = %r{ \A
|
18
|
+
[A-Z_][A-Z0-9_]*
|
19
|
+
\z}x
|
20
|
+
TEAM_CODE_MESSAGE = "expected one or more uppercase letters A-Z (or 0-9 or _; must start with A-Z or _)"
|
21
|
+
|
22
|
+
|
23
|
+
end # module SportDb
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module SportDb
|
2
|
+
module Model
|
3
|
+
|
4
|
+
class Assoc < ActiveRecord::Base
|
5
|
+
|
6
|
+
|
7
|
+
has_many :parent_assoc_assocs, class_name: 'AssocAssoc', foreign_key: 'assoc2_id'
|
8
|
+
## child_assocs - use child_assocs? - (direct) member/child assocs instead of member?
|
9
|
+
has_many :member_assoc_assocs, class_name: 'AssocAssoc', foreign_key: 'assoc1_id'
|
10
|
+
|
11
|
+
|
12
|
+
## note: split member_assocs into two sets (into national=true and national=false)
|
13
|
+
# e.g. fifa has six member confederations (non-national) and 216 national assocs
|
14
|
+
## note: includes all member (sub assocs + national assocs) - rename to member_assocs?
|
15
|
+
has_many :all_assocs, class_name: 'Assoc', :source => :assoc2, :through => :member_assoc_assocs
|
16
|
+
## use zone/region as name instead of sub ( for confederatons,zones,etc.)
|
17
|
+
has_many :sub_assocs, -> { where( national: false ) }, class_name: 'Assoc', :source => :assoc2, :through => :member_assoc_assocs
|
18
|
+
has_many :national_assocs, -> { where( national: true ) }, class_name: 'Assoc', :source => :assoc2, :through => :member_assoc_assocs
|
19
|
+
|
20
|
+
## for now can have more than one (direct) parent assoc
|
21
|
+
## e.g. Africa Fed and Arab League Fed
|
22
|
+
has_many :parent_assocs, class_name: 'Assoc', :source => :assoc1, :through => :parent_assoc_assocs
|
23
|
+
|
24
|
+
# assoc only can have one direct team for now (uses belongs_to on other side)
|
25
|
+
# has_one :team
|
26
|
+
end # class Assoc
|
27
|
+
|
28
|
+
|
29
|
+
class AssocAssoc < ActiveRecord::Base
|
30
|
+
self.table_name = 'assocs_assocs'
|
31
|
+
|
32
|
+
belongs_to :assoc1, class_name: 'Assoc', foreign_key: 'assoc1_id' # parent assoc
|
33
|
+
belongs_to :assoc2, class_name: 'Assoc', foreign_key: 'assoc2_id' # child assoc is_member_of parent assoc
|
34
|
+
|
35
|
+
end # class AssocAssoc
|
36
|
+
|
37
|
+
end # module Model
|
38
|
+
end # module SportDb
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module SportDb
|
4
|
+
module Model
|
5
|
+
|
6
|
+
class Event < ActiveRecord::Base
|
7
|
+
|
8
|
+
belongs_to :league
|
9
|
+
belongs_to :season
|
10
|
+
|
11
|
+
has_many :matches, -> { order('pos') }, class_name: 'Match'
|
12
|
+
|
13
|
+
has_many :rounds, -> { order('pos') }
|
14
|
+
has_many :groups, -> { order('pos') }
|
15
|
+
has_many :stages
|
16
|
+
|
17
|
+
has_many :event_teams, class_name: 'EventTeam'
|
18
|
+
has_many :teams, :through => :event_teams
|
19
|
+
|
20
|
+
has_many :event_grounds, class_name: 'EventGround'
|
21
|
+
has_many :grounds, :through => :event_grounds
|
22
|
+
|
23
|
+
|
24
|
+
before_save :on_before_save
|
25
|
+
|
26
|
+
def on_before_save
|
27
|
+
# event key is composite of league + season (e.g. at.2012/13) etc.
|
28
|
+
self.key = "#{league.key}.#{season.key}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def name
|
32
|
+
## todo/fix: check attr_reader(:name) or such first if NOT nil !!
|
33
|
+
"#{league.name} #{season.name}"
|
34
|
+
end
|
35
|
+
|
36
|
+
end # class Event
|
37
|
+
|
38
|
+
|
39
|
+
class EventTeam < ActiveRecord::Base
|
40
|
+
self.table_name = 'events_teams'
|
41
|
+
|
42
|
+
belongs_to :event
|
43
|
+
belongs_to :team
|
44
|
+
end # class EventTeam
|
45
|
+
|
46
|
+
|
47
|
+
class EventGround < ActiveRecord::Base
|
48
|
+
self.table_name = 'events_grounds'
|
49
|
+
|
50
|
+
belongs_to :event
|
51
|
+
belongs_to :ground
|
52
|
+
end # class EventGround
|
53
|
+
|
54
|
+
end # module Model
|
55
|
+
end # module SportDb
|
@@ -15,14 +15,14 @@ module SportDb
|
|
15
15
|
|
16
16
|
Person = PersonDb::Model::Person
|
17
17
|
|
18
|
-
##
|
18
|
+
## note: for now only team and league use worlddb tables
|
19
19
|
# e.g. with belongs_to assoc (country,region)
|
20
20
|
|
21
21
|
class Assoc < ActiveRecord::Base ; end
|
22
|
-
class Team
|
22
|
+
class Team < ActiveRecord::Base ; end
|
23
23
|
class League < ActiveRecord::Base ; end
|
24
24
|
class Ground < ActiveRecord::Base ; end
|
25
|
-
class Goal
|
25
|
+
class Goal < ActiveRecord::Base ; end
|
26
26
|
|
27
27
|
end
|
28
28
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
module SportDb
|
3
|
+
module Model
|
4
|
+
|
5
|
+
class Ground < ActiveRecord::Base
|
6
|
+
|
7
|
+
belongs_to :country, class_name: 'WorldDb::Model::Country', foreign_key: 'country_id'
|
8
|
+
belongs_to :city, class_name: 'WorldDb::Model::City', foreign_key: 'city_id'
|
9
|
+
|
10
|
+
has_many :matches
|
11
|
+
|
12
|
+
end # class Ground
|
13
|
+
|
14
|
+
end # module Model
|
15
|
+
end # module SportDb
|
16
|
+
|
@@ -5,11 +5,7 @@ module SportDb
|
|
5
5
|
|
6
6
|
class Group < ActiveRecord::Base
|
7
7
|
|
8
|
-
|
9
|
-
has_many :games, order: 'pos'
|
10
|
-
else
|
11
|
-
has_many :games, -> { order('pos') }
|
12
|
-
end
|
8
|
+
has_many :matches, -> { order('pos') }, class_name: 'Match'
|
13
9
|
|
14
10
|
belongs_to :event
|
15
11
|
|
@@ -17,7 +13,14 @@ end
|
|
17
13
|
has_many :teams, :through => :group_teams
|
18
14
|
|
19
15
|
end # class Group
|
20
|
-
|
21
|
-
|
16
|
+
|
17
|
+
|
18
|
+
class GroupTeam < ActiveRecord::Base
|
19
|
+
self.table_name = 'groups_teams'
|
20
|
+
|
21
|
+
belongs_to :group
|
22
|
+
belongs_to :team
|
23
|
+
end # class GroupTeam
|
24
|
+
|
22
25
|
end # module Model
|
23
26
|
end # module SportDb
|