hlockey-cli 3 → 4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e525ff3f2707721f9bef74532f8ca4a3ea9fb9aa18708a13fc56d56f3ebc615
4
- data.tar.gz: ae05fa875ecd8b7ecd57d6a2d9256d69f6400286f5e9df66c52a656eeea68e66
3
+ metadata.gz: dddf4273805217361e85d502d4ca2d7b9ff963d1feb87e800ef921d53cbabd07
4
+ data.tar.gz: d5a73bed64e9db50c14e0a82fd4b1944afad785864e48943d592f557f83be4b7
5
5
  SHA512:
6
- metadata.gz: 37b4cf715312b89b4a1e226f67ff240195847aa6d12483888d73248c9f148631ca057a7a87de2159a1f30fae4daac5d9977326d00a73c2b7c021b494ce4ea109
7
- data.tar.gz: 1588dcb597e6c17881107a38f0ab5cf26b37afe48a23c28fae90c63c30a2ba52bbd99ae9ee97208fd9151698ed805b272a1034b79f0aca1b2fe1cf7be949e792
6
+ metadata.gz: 03524cea4b65832fd56fd193786fb66258aa8d4689a24c2e5416159e0798b981290f177bd7e2a4a1cb1ee4058945c09b23499c9ec4eeabada4301289554a7a20
7
+ data.tar.gz: 042fe6070ba37fc43a5dc1c31434c4b50dee985d7a3ac62b01ec510422253a3f9689de569fc5ac5ac40ccf7c61999f066d6aef8f014bfb5ae07add948186c444
@@ -19,13 +19,13 @@ module HlockeyCLI
19
19
 
20
20
  puts("#{chosen_game.home.emoji} #{chosen_game} #{chosen_game.away.emoji}")
21
21
 
22
+ stream_idx = 0
22
23
  loop do
23
24
  league.update_state
24
- chosen_game.stream.each { |message| puts("#{message}\n\n") }
25
-
25
+ chosen_game.stream[stream_idx..].each { |message| puts("#{message}\n\n") }
26
+ stream_idx = chosen_game.stream.length
26
27
  break unless chosen_game.in_progress
27
28
 
28
- chosen_game.stream.clear
29
29
  sleep(5)
30
30
  end
31
31
  end
@@ -34,24 +34,33 @@ module HlockeyCLI
34
34
  if league.champion_team
35
35
  puts(Hlockey::Message.SeasonChampion(league.champion_team))
36
36
  elsif league.playoff_teams
37
- put_standings("Playoffs", league.playoff_teams)
37
+ (league.playoff_teams.length / 2).times do |i|
38
+ put_standings("Playoff Matchup #{i + 1}",
39
+ [league.playoff_teams[i], league.playoff_teams[-i - 1]])
40
+ end
41
+ puts("_" * 31) # Separator from regular standings
38
42
  end
39
43
  league.divisions.each { |name, teams| put_standings(name, teams) }
40
44
  end
41
45
 
42
46
  def team_info(league)
43
- chosen_team = HlockeyCLI.user_selection(league.teams)
44
- return if chosen_team.nil?
47
+ chosen_team = HlockeyCLI.user_selection(league.teams, default: "All teams")
45
48
 
46
- puts("#{chosen_team.emoji} #{chosen_team}")
47
- chosen_team.roster.each do |pos, player|
48
- puts(" #{Hlockey::Team.pos_name(pos)}:\n #{player}")
49
- player.stats.each do |stat, value|
50
- puts(" #{stat}: #{value.round(1)}")
49
+ (chosen_team.nil? ? league.teams : [chosen_team]).each do |team|
50
+ puts("#{team.emoji} #{team}")
51
+ puts("\"#{team.motto}\"")
52
+ team.roster.each do |pos, player|
53
+ puts(" #{Hlockey::Team.pos_name(pos)}:\n #{player}")
54
+ put_stats(player)
51
55
  end
56
+ puts(" Shadows:")
57
+ team.shadows.each do |player|
58
+ puts(" #{player}")
59
+ put_stats(player)
60
+ end
61
+ puts(" Wins: #{team.wins}")
62
+ puts(" Losses: #{team.losses}")
52
63
  end
53
- puts(" wins: #{chosen_team.wins}")
54
- puts(" losses: #{chosen_team.losses}")
55
64
  end
56
65
 
57
66
  def election(_)
@@ -77,7 +86,24 @@ module HlockeyCLI
77
86
 
78
87
  def put_standings(division_name, teams)
79
88
  puts(division_name)
80
- teams.each { |team| puts("#{team.emoji} #{team} ".ljust(27) + team.w_l) }
89
+ teams.each do |team|
90
+ status_emoji = case team.status
91
+ when :partying
92
+ " 🎉"
93
+ when :qualified
94
+ " ✅"
95
+ else
96
+ ""
97
+ end
98
+ puts("#{team.emoji} #{team}".ljust(27) + team.w_l + status_emoji)
99
+ end
100
+ end
101
+
102
+ # @param player [Hlockey::Player]
103
+ def put_stats(player)
104
+ player.stat_strings.each do |key, value|
105
+ puts(" #{key}: #{value}")
106
+ end
81
107
  end
82
108
  end
83
109
  end
@@ -1,5 +1,5 @@
1
1
  module HlockeyCLI
2
- def self.user_selection(choices, default: nil, str_process: proc { |s| s })
2
+ def self.user_selection(choices, default: "Back", str_process: ->(s) { s })
3
3
  puts("Please enter a number...")
4
4
 
5
5
  # 1 is added to i when printing choices
@@ -7,15 +7,11 @@ module HlockeyCLI
7
7
  choices.each_with_index do |choice, i|
8
8
  puts("#{(i + 1).to_s.rjust(2)} - #{str_process.call(choice)}")
9
9
  end
10
- puts("anything else - #{default || "Back"}")
10
+ puts("anything else - #{default}")
11
11
 
12
12
  # 1 is subracted to undo adding 1 earlier
13
13
  choice_idx = $stdin.gets.to_i - 1
14
14
 
15
- if !choice_idx.negative? && choice_idx < choices.length
16
- choices[choice_idx]
17
- else
18
- default
19
- end
15
+ !choice_idx.negative? && choice_idx < choices.length ? choices[choice_idx] : nil
20
16
  end
21
17
  end
@@ -1,3 +1,3 @@
1
1
  module HlockeyCLI
2
- VERSION = "3".freeze
2
+ VERSION = "4".freeze
3
3
  end
data/lib/hlockey-cli.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require("hlockey")
2
+ require("paint")
2
3
  require("hlockey-cli/actions")
3
4
  require("hlockey-cli/user_selection")
4
5
  require("hlockey-cli/version")
@@ -7,20 +8,30 @@ module HlockeyCLI
7
8
  def self.main
8
9
  puts("Please wait...")
9
10
 
11
+ Hlockey::Message.colorize = ->(color, string) { Paint[string, color] }
12
+
10
13
  league = Hlockey::League.new
14
+ alerts = league.alerts.clone
11
15
 
12
16
  puts(Hlockey::Message.SeasonStarts(league.start_time)) if Time.now < league.start_time
13
17
 
14
18
  loop do
15
19
  league.update_state
20
+
21
+ unless alerts == league.alerts
22
+ alerts = league.alerts.clone
23
+ alerts.each(&method(:puts))
24
+ puts # newline
25
+ end
16
26
  puts(Hlockey::Message.SeasonDay(league.day))
17
27
 
18
28
  selected_action = user_selection(
19
29
  Actions::ACTIONS,
20
- default: :Exit,
21
- str_process: proc { |s| s.to_s.capitalize.sub("_", " ") }
30
+ default: "Exit",
31
+ str_process: ->(s) { s.to_s.capitalize.sub("_", " ") }
22
32
  )
23
- exit if selected_action == :Exit
33
+ exit if selected_action.nil?
34
+
24
35
  Actions.send(selected_action, league)
25
36
  end
26
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hlockey-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: '3'
4
+ version: '4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lavender Perry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-02 00:00:00.000000000 Z
11
+ date: 2023-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hlockey
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '3'
19
+ version: '4'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: '3'
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: paint
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.3'
27
41
  description: Hlockey console application.
28
42
  email: endie2@protonmail.com
29
43
  executables: