sportdb-models 1.19.1 → 2.0.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.
- 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
|