Commit Graph

52 Commits

Author SHA1 Message Date
Daniel Schädler 8c39fa9894 Manually sort position of groups of 4 teams 2019-11-08 23:51:23 +01:00
Daniel Schädler a2691b9f88 Cache group_score in variable in sort function 2019-06-18 22:35:17 +02:00
Daniel Schädler 54ab1570b1 Sort teams more explicitly and in the right order 2019-06-18 22:22:10 +02:00
Daniel Schädler 4925ea9d83 Make teams added to PlayoffStage configurable 2019-06-18 22:22:10 +02:00
Daniel Schädler bc0c7fddc3 Make match position randomizable 2019-06-18 19:22:05 +02:00
Daniel Schädler 88cbba440d Implement methods to get teams sorted by their group scores 2019-06-18 19:22:05 +02:00
Daniel Schädler 386155a690 Fix last Match not being stopped correctly 2019-06-18 14:09:29 +02:00
Daniel Schädler 98319e9625 Assign :intermediate_stage to first stage if single_team matches present 2019-06-17 15:02:30 +02:00
Daniel Schädler 5f378f27b2 Correct position for :single_team matches 2019-06-17 15:02:30 +02:00
Daniel Schädler 8e3325bbfc Simplify concatenation of empty stages 2019-06-17 15:02:30 +02:00
Thor77 914cfbd94d
Reword error on invalid match state 2019-06-17 13:48:50 +02:00
Thor77 175870ab42
Prevent betting on running/finished matches 2019-06-17 13:48:50 +02:00
Thor77 167a2116f1
Prevent duplicate bets on the same match 2019-06-17 13:48:50 +02:00
Thor77 b9aaccb487
Raise UserServiceError instead of StandardError 2019-06-17 13:48:49 +02:00
Thor77 2f0127897e
Add UserService 2019-06-17 13:48:49 +02:00
Daniel Schädler db70e33882 Assign number to each group 2019-06-17 13:37:06 +02:00
Daniel Schädler 2e336262aa Add state to stage
This state is required to stop the group stage and trigger playoff
generation, it is (for now) irrelevant for anything other than that.
2019-06-13 13:21:24 +02:00
Daniel Schädler f04c11427a Assign default values on Group Stage creation
default values are assigned to instant_finalists_amount and
intermediate_round_participants_amount depending on playoff_teams_amount and group amount
2019-06-13 13:21:24 +02:00
Daniel Schädler 96398706ea Add GroupScore objects for every team to the group stage 2019-06-05 09:49:21 +02:00
Daniel Schädler d556e3e833 Implement update_group_score method
This method calculates all the group scores of the group given to it
2019-06-05 09:49:21 +02:00
Daniel Schädler a4ea0cf979 Move self methods into self block 2019-06-05 09:26:11 +02:00
Daniel Schädler 6f44823bc6 Change match state of match below 2019-05-26 20:15:59 +02:00
Daniel Schädler 8bdcd51e66 Move all methods in playoff_stage_service into self block 2019-05-26 20:15:59 +02:00
Daniel Schädler 645f3d0800 Return changed objects in populate_match_below 2019-05-26 20:15:58 +02:00
Daniel Schädler 95bed3959f Actually make singleton_methods private
(Rubocop told me so and I trust the police)
2019-05-26 20:15:58 +02:00
Daniel Schädler cda7d168f5 Save match_scores explicitly after changing them 2019-05-26 20:15:58 +02:00
Daniel Schädler 93cea002f9 Change the way, existing match_scores are handled 2019-05-26 20:15:58 +02:00
Daniel Schädler 7a9da4e22d Rearrange methods in playoff_stage_service 2019-05-26 20:15:58 +02:00
Daniel Schädler 27d6269f94 Rearrange new methods into one to split it later on 2019-05-26 20:15:58 +02:00
Daniel Schädler 4e907b1fc8 Improve Formatting in playoff_stage_service (I guess)
... Rubocop wanted it that way
2019-05-26 20:15:16 +02:00
Daniel Schädler e4c868c150 Fix second match winner advancing, even if match is not finished 2019-05-26 20:15:16 +02:00
Daniel Schädler c9b07f7033 Implement populate_match_below method 2019-05-26 20:14:13 +02:00
Daniel Schädler 2f77d2d25b Add winner method to match 2019-05-26 20:14:13 +02:00
Thor77 37b63cace2
Use methods instead of attributes
because each attribute is only used once and updating a Stage should
reflect those changes
2019-05-16 20:53:05 +02:00
Thor77 d6a691fe5a
Add documentation to sort_group_scores 2019-05-16 20:53:05 +02:00
Thor77 bdcfbe934b
Add StatisticsService 2019-05-16 20:53:04 +02:00
Daniel Schädler f7ed4b549d Destroying all Readability.
Noone will ever be able to read this code again.
2019-05-04 20:54:08 +02:00
Daniel Schädler 23249ee93b Build Matches without saving directly to database 2019-05-04 20:34:57 +02:00
Daniel Schädler db1518bdbd Raise exceptions upon error in group_stage_service 2019-05-04 20:34:57 +02:00
Daniel Schädler fdac71a9f1 Unnecessary variable assignment 2019-05-04 20:34:57 +02:00
Daniel Schädler a842e0db3c Add group stage service
This service is responsible for all actions concerning the group stage
It returns false if no groups are given to generate_group_stage method
This prevents dividing by zero in the next line
2019-05-04 20:34:57 +02:00
Daniel Schädler d3d572ea1b Change return for 0 teams to exception 2019-04-23 14:21:29 +02:00
Daniel Schädler a30ff860e9 Return a valid list of matches for 1 team 2019-04-23 14:19:36 +02:00
Daniel Schädler 38425df823 Only support stage count calculation for 1+ teams 2019-04-23 14:19:36 +02:00
Daniel Schädler 49a6545af9 Fix start point for stages with matchnumbers that are not powers of 2 2019-04-23 14:19:36 +02:00
Daniel Schädler 1c2d051364 Subtract one off required stages if the number of teams is a power of 2
This way we now calculate the right amount of stages for every number.
(I would test every number, but Jonas won't let me write tests for all of them..)
2019-04-23 14:19:36 +02:00
Daniel Schädler 7f87ce9230 Add documentation for all services 2019-04-03 15:33:59 +02:00
Daniel Schädler 68f9b3b2b3 Change Score to MatchScore & MatchScore score attribute to points
This is done to improve the naming and therefore make things easier to understand.
2018-11-30 14:15:48 +01:00
Daniel Schädler 26bcc3dc88 Implement Adding Playoffs to a tournament 2018-11-29 11:10:15 +01:00
Daniel Schädler 7f243b06a2 Implement Utils Class 2018-11-29 11:03:44 +01:00