foot_stats_simulator 0.0.4 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|