foot_stats_simulator 0.0.4 → 1.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.
- data/app/models/simulator_match.rb +19 -15
- data/app/models/simulator_player.rb +1 -1
- data/app/models/simulator_timeline.rb +1 -1
- data/lib/foot_stats_simulator/engine.rb +1 -1
- data/lib/foot_stats_simulator/migrate.rb +1 -1
- data/lib/foot_stats_simulator/tasks/foot_stats_simulator.rake +18 -12
- data/lib/foot_stats_simulator/version.rb +2 -2
- data/lib/foot_stats_simulator.rb +6 -8
- metadata +1 -1
@@ -50,6 +50,7 @@ class SimulatorMatch < ActiveRecord::Base
|
|
50
50
|
belongs_to :home_simulator_team, foreign_key: 'home_team_id', class_name: 'SimulatorTeam'
|
51
51
|
belongs_to :visitor_simulator_team, foreign_key: 'visitor_team_id', class_name: 'SimulatorTeam'
|
52
52
|
|
53
|
+
before_create :populate_data
|
53
54
|
after_create :update_by_timeline
|
54
55
|
|
55
56
|
def home_team
|
@@ -66,9 +67,9 @@ class SimulatorMatch < ActiveRecord::Base
|
|
66
67
|
|
67
68
|
def readable_status
|
68
69
|
if status
|
69
|
-
SimulatorMatch::
|
70
|
+
SimulatorMatch::STATUS_MAP[status.to_sym]
|
70
71
|
else
|
71
|
-
|
72
|
+
SimulatorMatch::STATUS_MAP[:not_started]
|
72
73
|
end
|
73
74
|
end
|
74
75
|
|
@@ -133,14 +134,14 @@ class SimulatorMatch < ActiveRecord::Base
|
|
133
134
|
{
|
134
135
|
"@Id" => home_team.source_id.to_s,
|
135
136
|
"@Nome" => home_team.full_name,
|
136
|
-
"@Placar" =>
|
137
|
+
"@Placar" => timeline.home_score.to_s,
|
137
138
|
"@PlacarPenaltis" => "",
|
138
139
|
"@Tipo" => "Mandante"
|
139
140
|
},
|
140
141
|
{
|
141
142
|
"@Id" => visitor_team.source_id.to_s,
|
142
143
|
"@Nome" => visitor_team.full_name,
|
143
|
-
"@Placar" =>
|
144
|
+
"@Placar" => timeline.visitor_score.to_s,
|
144
145
|
"@PlacarPenaltis" => "",
|
145
146
|
"@Tipo" => "Visitante"
|
146
147
|
}
|
@@ -164,8 +165,19 @@ class SimulatorMatch < ActiveRecord::Base
|
|
164
165
|
end
|
165
166
|
|
166
167
|
protected
|
168
|
+
def populate_data
|
169
|
+
self.timeline_random_seed = Random.new_seed unless self.timeline_random_seed
|
170
|
+
self.source_id = self.class.dummy_source_id unless self.source_id
|
171
|
+
self.home_team_name = home_team.full_name unless self.home_team_name
|
172
|
+
self.home_score = 0 unless self.home_score
|
173
|
+
self.home_penalties_score = nil unless self.home_penalties_score
|
174
|
+
self.visitor_team_name = visitor_team.full_name unless self.visitor_team_name
|
175
|
+
self.visitor_score = 0 unless self.visitor_score
|
176
|
+
self.visitor_penalties_score = nil unless self.visitor_penalties_score
|
177
|
+
end
|
178
|
+
|
167
179
|
def update_by_timeline
|
168
|
-
return if
|
180
|
+
return if status.nil? || SimulatorMatch::STATUS_SEQUENCE[status.to_sym] >= SimulatorMatch::STATUS_SEQUENCE[:finished]
|
169
181
|
timeline.update_match
|
170
182
|
end
|
171
183
|
|
@@ -188,7 +200,6 @@ class SimulatorMatch < ActiveRecord::Base
|
|
188
200
|
home_team_id: home_team.id,
|
189
201
|
visitor_team_id: visitor_team.id,
|
190
202
|
timeline_name: options[:timeline_name],
|
191
|
-
source_id: dummy_source_id,
|
192
203
|
date: dummy_date(options[:minutes_from_now]),
|
193
204
|
referee: Faker::Name.name,
|
194
205
|
stadium: "Estádio #{Faker::Name.name}",
|
@@ -202,21 +213,13 @@ class SimulatorMatch < ActiveRecord::Base
|
|
202
213
|
cup: '',
|
203
214
|
group: '',
|
204
215
|
game_number: dummy_game_number(championship),
|
205
|
-
live: options[:live]
|
206
|
-
home_team_name: home_team.full_name,
|
207
|
-
home_score: 0,
|
208
|
-
home_penalties_score: nil,
|
209
|
-
visitor_team_name: visitor_team.full_name,
|
210
|
-
visitor_score: 0,
|
211
|
-
visitor_penalties_score: nil,
|
212
|
-
timeline_random_seed: Random.new_seed
|
216
|
+
live: options[:live]
|
213
217
|
}
|
214
218
|
|
215
219
|
match = self.create params
|
216
220
|
match
|
217
221
|
end
|
218
222
|
|
219
|
-
protected
|
220
223
|
def dummy_source_id
|
221
224
|
source_id = rand(10000)
|
222
225
|
if self.where(source_id: source_id).exists?
|
@@ -226,6 +229,7 @@ class SimulatorMatch < ActiveRecord::Base
|
|
226
229
|
end
|
227
230
|
end
|
228
231
|
|
232
|
+
protected
|
229
233
|
def dummy_date(minutes_from_now)
|
230
234
|
minutes_from_now.minutes.from_now
|
231
235
|
end
|
@@ -2,39 +2,45 @@ namespace :foot_stats do
|
|
2
2
|
namespace :clone do
|
3
3
|
desc "Clones FootStats championships to database"
|
4
4
|
task championship: :environment do
|
5
|
-
base_url = FootStats.base_url
|
6
|
-
FootStats.base_url = "http://footstats.com.br/modyo.asmx/"
|
5
|
+
base_url = FootStats::Setup.base_url
|
6
|
+
FootStats::Setup.base_url = "http://footstats.com.br/modyo.asmx/"
|
7
7
|
SimulatorChampionship.dump!
|
8
|
-
FootStats.base_url = base_url
|
8
|
+
FootStats::Setup.base_url = base_url
|
9
9
|
end
|
10
10
|
|
11
11
|
desc "Clones FootStats championship teams to database"
|
12
12
|
task team: :environment do
|
13
|
-
base_url = FootStats.base_url
|
14
|
-
FootStats.base_url = "http://footstats.com.br/modyo.asmx/"
|
13
|
+
base_url = FootStats::Setup.base_url
|
14
|
+
FootStats::Setup.base_url = "http://footstats.com.br/modyo.asmx/"
|
15
15
|
SimulatorTeam.dump!
|
16
|
-
FootStats.base_url = base_url
|
16
|
+
FootStats::Setup.base_url = base_url
|
17
17
|
end
|
18
18
|
|
19
19
|
desc "Clones FootStats players to database"
|
20
20
|
task player: :environment do
|
21
|
-
base_url = FootStats.base_url
|
22
|
-
FootStats.base_url = "http://footstats.com.br/modyo.asmx/"
|
21
|
+
base_url = FootStats::Setup.base_url
|
22
|
+
FootStats::Setup.base_url = "http://footstats.com.br/modyo.asmx/"
|
23
23
|
SimulatorPlayer.dump!
|
24
|
-
FootStats.base_url = base_url
|
24
|
+
FootStats::Setup.base_url = base_url
|
25
25
|
end
|
26
26
|
|
27
27
|
desc "Clones all FootStats data to database"
|
28
28
|
task data: :environment do
|
29
|
-
base_url = FootStats.base_url
|
30
|
-
FootStats.base_url = "http://footstats.com.br/modyo.asmx/"
|
29
|
+
base_url = FootStats::Setup.base_url
|
30
|
+
FootStats::Setup.base_url = "http://footstats.com.br/modyo.asmx/"
|
31
31
|
SimulatorChampionship.dump!
|
32
32
|
SimulatorTeam.dump!
|
33
33
|
SimulatorPlayer.dump!
|
34
|
-
FootStats.base_url = base_url
|
34
|
+
FootStats::Setup.base_url = base_url
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
desc "Setups all foot stats related content and create it's tables"
|
39
|
+
task bootstrap: :environment do
|
40
|
+
Rake::Task["foot_stats:migrate"].execute
|
41
|
+
Rake::Task["foot_stats:clone:data"].execute
|
42
|
+
end
|
43
|
+
|
38
44
|
desc "Deletes all FootStats simulator data stored on database"
|
39
45
|
task clean: :environment do
|
40
46
|
SimulatorChampionship.delete_all
|
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = '0.0
|
1
|
+
module FootStatsSimulator
|
2
|
+
VERSION = '1.0.0'
|
3
3
|
end
|
data/lib/foot_stats_simulator.rb
CHANGED
@@ -3,14 +3,12 @@ require 'foot_stats'
|
|
3
3
|
|
4
4
|
require 'faker'
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
include Singleton
|
6
|
+
module FootStatsSimulator
|
7
|
+
def self.timelines_dir=(path)
|
8
|
+
@timelines_dir = path
|
9
|
+
end
|
12
10
|
|
13
|
-
def self.
|
14
|
-
|
11
|
+
def self.timelines_dir
|
12
|
+
@timelines_dir
|
15
13
|
end
|
16
14
|
end
|