tf2_line_parser 0.2.1 → 0.2.2

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -0
  3. data/Gemfile.lock +13 -11
  4. data/README.md +0 -5
  5. data/lib/tf2_line_parser/events/airshot.rb +4 -7
  6. data/lib/tf2_line_parser/events/assist.rb +1 -4
  7. data/lib/tf2_line_parser/events/capture_block.rb +2 -5
  8. data/lib/tf2_line_parser/events/charge_deployed.rb +2 -4
  9. data/lib/tf2_line_parser/events/chat.rb +2 -10
  10. data/lib/tf2_line_parser/events/connect.rb +2 -6
  11. data/lib/tf2_line_parser/events/console_say.rb +2 -5
  12. data/lib/tf2_line_parser/events/current_score.rb +1 -4
  13. data/lib/tf2_line_parser/events/damage.rb +4 -7
  14. data/lib/tf2_line_parser/events/disconnect.rb +21 -0
  15. data/lib/tf2_line_parser/events/domination.rb +1 -3
  16. data/lib/tf2_line_parser/events/event.rb +12 -18
  17. data/lib/tf2_line_parser/events/final_score.rb +1 -4
  18. data/lib/tf2_line_parser/events/headshot_damage.rb +5 -9
  19. data/lib/tf2_line_parser/events/heal.rb +3 -4
  20. data/lib/tf2_line_parser/events/kill.rb +4 -6
  21. data/lib/tf2_line_parser/events/match_end.rb +2 -5
  22. data/lib/tf2_line_parser/events/medic_death.rb +5 -6
  23. data/lib/tf2_line_parser/events/pickup_item.rb +3 -5
  24. data/lib/tf2_line_parser/events/player_action_event.rb +2 -5
  25. data/lib/tf2_line_parser/events/point_capture.rb +2 -5
  26. data/lib/tf2_line_parser/events/pvp_event.rb +3 -3
  27. data/lib/tf2_line_parser/events/revenge.rb +1 -3
  28. data/lib/tf2_line_parser/events/role_change.rb +3 -5
  29. data/lib/tf2_line_parser/events/round_event_with_variables.rb +1 -4
  30. data/lib/tf2_line_parser/events/round_event_without_variables.rb +1 -4
  31. data/lib/tf2_line_parser/events/round_length.rb +3 -6
  32. data/lib/tf2_line_parser/events/round_stalemate.rb +2 -5
  33. data/lib/tf2_line_parser/events/round_start.rb +2 -5
  34. data/lib/tf2_line_parser/events/round_win.rb +2 -5
  35. data/lib/tf2_line_parser/events/score.rb +4 -7
  36. data/lib/tf2_line_parser/events/spawn.rb +2 -4
  37. data/lib/tf2_line_parser/events/suicide.rb +3 -5
  38. data/lib/tf2_line_parser/events/unknown.rb +3 -6
  39. data/lib/tf2_line_parser/line.rb +1 -4
  40. data/lib/tf2_line_parser/parser.rb +1 -2
  41. data/lib/tf2_line_parser/player.rb +1 -4
  42. data/lib/tf2_line_parser/version.rb +2 -1
  43. data/lib/tf2_line_parser.rb +14 -15
  44. data/spec/fixtures/logs/broder_vs_epsilon.log +1 -0
  45. data/spec/lib/tf2_line_parser/parser_spec.rb +167 -148
  46. data/spec/lib/tf2_line_parser/player_spec.rb +5 -7
  47. data/spec/spec_helper.rb +3 -1
  48. data/tf2_line_parser.gemspec +11 -10
  49. metadata +3 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e22961d8f12fb908e7200eeeab6dbf8ead59064e36b58585577947df3363aeac
4
- data.tar.gz: 065b72078b85b1bf414f7d7cc318cfb7c7c315e3beb417d19e0ded93120b3f11
3
+ metadata.gz: 63ba39004702334d3877c7656e29ace89831fa7fd14d476364675e894ceb0333
4
+ data.tar.gz: 9e5454836fbc05685e7a428015f3772d7d1d193073d74b8c469910445660b2df
5
5
  SHA512:
6
- metadata.gz: 464ac8116f2e6857c17156d5c6ed6f48dd8ca1d4c5367cb08ef0bb38e72e9e70675741c140b9722f223309df3c027500f86e726bd4d7e7447826b4e44047687e
7
- data.tar.gz: eb66bc6afc1dc620003d19b9d812fe13f4bc8718a8a1c4bb50e2ce459fc83cdd1c192ee0fa44094ec01f38022b2ce8a711d288fa51a72e8bcf5d45634cbed739
6
+ metadata.gz: 6c9372fa0970de3e30f809605bf054eac603bb3d2115fe6718f5c5c1afdbad18f302ce08feaa3e5afe8f33ac0a180b24543f2a2d5edd641ba46978b45d3268df
7
+ data.tar.gz: e4b2ef25b0756e89d3db87808c3cb91e00d4219880127fbf267e23c8cec4194908de1d4563f150b837e79197653ba835b2b282d03b1f3aee1075acde1ac774db
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  # Specify your gem's dependencies in logs_tf.gemspec
data/Gemfile.lock CHANGED
@@ -1,19 +1,20 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tf2_line_parser (0.2.0)
4
+ tf2_line_parser (0.2.1)
5
5
  activesupport
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (5.1.2)
10
+ activesupport (6.1.3.2)
11
11
  concurrent-ruby (~> 1.0, >= 1.0.2)
12
- i18n (~> 0.7)
13
- minitest (~> 5.1)
14
- tzinfo (~> 1.1)
12
+ i18n (>= 1.6, < 2)
13
+ minitest (>= 5.1)
14
+ tzinfo (~> 2.0)
15
+ zeitwerk (~> 2.3)
15
16
  coderay (1.1.1)
16
- concurrent-ruby (1.0.5)
17
+ concurrent-ruby (1.1.8)
17
18
  coveralls (0.8.21)
18
19
  json (>= 1.8, < 3)
19
20
  simplecov (~> 0.14.1)
@@ -22,10 +23,11 @@ GEM
22
23
  tins (~> 1.6)
23
24
  diff-lcs (1.3)
24
25
  docile (1.1.5)
25
- i18n (0.8.4)
26
+ i18n (1.8.10)
27
+ concurrent-ruby (~> 1.0)
26
28
  json (2.1.0)
27
29
  method_source (0.8.2)
28
- minitest (5.10.2)
30
+ minitest (5.14.4)
29
31
  pry (0.10.4)
30
32
  coderay (~> 1.1.0)
31
33
  method_source (~> 0.8.1)
@@ -54,10 +56,10 @@ GEM
54
56
  term-ansicolor (1.6.0)
55
57
  tins (~> 1.0)
56
58
  thor (0.19.4)
57
- thread_safe (0.3.6)
58
59
  tins (1.15.0)
59
- tzinfo (1.2.3)
60
- thread_safe (~> 0.1)
60
+ tzinfo (2.0.4)
61
+ concurrent-ruby (~> 1.0)
62
+ zeitwerk (2.4.2)
61
63
 
62
64
  PLATFORMS
63
65
  ruby
data/README.md CHANGED
@@ -6,10 +6,5 @@ I plan to use this for my own stats parsing tool.
6
6
  ## Requirements
7
7
  * Ruby
8
8
 
9
- ## Missing events
10
- * Connect
11
- * Disconnect
12
- * Enter game
13
-
14
9
  ## Credits
15
10
  * nTraum, I stole most of the regexes from his [TF2Stats](https://github.com/nTraum/tf2stats/) project.
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class Airshot < Damage
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "damage" #{regex_damage_against}\(damage "(?'value'\d+)"\)(?:( #{regex_realdamage})?( #{regex_weapon})?( #{regex_airshot})?)$/.freeze
9
8
  end
@@ -13,20 +12,18 @@ module TF2LineParser
13
12
  end
14
13
 
15
14
  def self.attributes
16
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :target_nick, :target_steamid, :target_team, :value, :weapon, :airshot]
15
+ @attributes ||= %i[time player_nick player_steamid player_team target_nick target_steamid
16
+ target_team value weapon airshot]
17
17
  end
18
18
 
19
19
  def initialize(time, player_name, player_steamid, player_team, target_name, target_steamid, target_team, value, weapon, airshot)
20
20
  @time = parse_time(time)
21
21
  @player = Player.new(player_name, player_steamid, player_team)
22
- if target_name
23
- @target = Player.new(target_name, target_steamid, target_team)
24
- end
22
+ @target = Player.new(target_name, target_steamid, target_team) if target_name
25
23
  @value = value.to_i
26
24
  @weapon = weapon
27
25
  @airshot = (airshot.to_i == 1)
28
26
  end
29
-
30
27
  end
31
28
  end
32
29
  end
@@ -1,14 +1,11 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class Assist < PVPEvent
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "kill assist" against #{regex_target}/.freeze
9
8
  end
10
-
11
9
  end
12
-
13
10
  end
14
11
  end
@@ -1,15 +1,14 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class CaptureBlock < Event
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "captureblocked" #{regex_cap}/.freeze
9
8
  end
10
9
 
11
10
  def self.attributes
12
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :cp_number, :cp_name]
11
+ @attributes ||= %i[time player_nick player_steamid player_team cp_number cp_name]
13
12
  end
14
13
 
15
14
  def initialize(time, player_name, player_steam_id, player_team, cap_number, cap_name)
@@ -18,8 +17,6 @@ module TF2LineParser
18
17
  @cap_number = cap_number
19
18
  @cap_name = cap_name
20
19
  end
21
-
22
20
  end
23
-
24
21
  end
25
22
  end
@@ -1,22 +1,20 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class ChargeDeployed < Event
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "chargedeployed"/.freeze
9
8
  end
10
9
 
11
10
  def self.attributes
12
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team]
11
+ @attributes ||= %i[time player_nick player_steamid player_team]
13
12
  end
14
13
 
15
14
  def initialize(time, name, steam_id, team)
16
15
  @time = parse_time(time)
17
16
  @player = Player.new(name, steam_id, team)
18
17
  end
19
-
20
18
  end
21
19
  end
22
20
  end
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
-
6
5
  class Chat < Event
7
-
8
6
  def initialize(time, player_name, player_steam_id, player_team, message)
9
7
  @time = parse_time(time)
10
8
  @player = Player.new(player_name, player_steam_id, player_team)
@@ -12,26 +10,20 @@ module TF2LineParser
12
10
  end
13
11
 
14
12
  def self.attributes
15
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :message]
13
+ @attributes ||= %i[time player_nick player_steamid player_team message]
16
14
  end
17
-
18
15
  end
19
16
 
20
17
  class Say < Chat
21
-
22
18
  def self.regex
23
19
  @regex ||= /#{regex_time} #{regex_player} say #{regex_message}/.freeze
24
20
  end
25
-
26
21
  end
27
22
 
28
23
  class TeamSay < Chat
29
-
30
24
  def self.regex
31
25
  @regex ||= /#{regex_time} #{regex_player} say_team #{regex_message}/.freeze
32
26
  end
33
-
34
27
  end
35
-
36
28
  end
37
29
  end
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
-
6
5
  class Connect < Event
7
-
8
6
  def initialize(time, player_name, player_steam_id, player_team, message)
9
7
  @time = parse_time(time)
10
8
  @player = Player.new(player_name, player_steam_id, player_team)
@@ -12,14 +10,12 @@ module TF2LineParser
12
10
  end
13
11
 
14
12
  def self.attributes
15
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :message]
13
+ @attributes ||= %i[time player_nick player_steamid player_team message]
16
14
  end
17
15
 
18
16
  def self.regex
19
17
  @regex ||= /#{regex_time} #{regex_player} connected, address #{regex_message}/.freeze
20
18
  end
21
-
22
19
  end
23
-
24
20
  end
25
21
  end
@@ -1,23 +1,20 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class ConsoleSay < Event
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_console} say #{regex_message}/.freeze
9
8
  end
10
9
 
11
10
  def self.attributes
12
- @attributes ||= [:time, :message]
11
+ @attributes ||= %i[time message]
13
12
  end
14
13
 
15
14
  def initialize(time, message)
16
15
  @time = parse_time(time)
17
16
  @message = message
18
17
  end
19
-
20
18
  end
21
-
22
19
  end
23
20
  end
@@ -1,14 +1,11 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class CurrentScore < Score
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_team} current score #{regex_score} with .*/.freeze
9
8
  end
10
-
11
9
  end
12
-
13
10
  end
14
11
  end
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class Damage < Event
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "damage" #{regex_damage_against}\(damage "(?'value'\d+)"\)(?:( #{regex_realdamage})?( #{regex_weapon})?)$/.freeze
9
8
  end
@@ -21,19 +20,17 @@ module TF2LineParser
21
20
  end
22
21
 
23
22
  def self.attributes
24
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :target_nick, :target_steamid, :target_team, :value, :weapon]
23
+ @attributes ||= %i[time player_nick player_steamid player_team target_nick target_steamid
24
+ target_team value weapon]
25
25
  end
26
26
 
27
27
  def initialize(time, player_name, player_steamid, player_team, target_name, target_steamid, target_team, value, weapon)
28
28
  @time = parse_time(time)
29
29
  @player = Player.new(player_name, player_steamid, player_team)
30
- if target_name
31
- @target = Player.new(target_name, target_steamid, target_team)
32
- end
30
+ @target = Player.new(target_name, target_steamid, target_team) if target_name
33
31
  @value = value.to_i
34
32
  @weapon = weapon
35
33
  end
36
-
37
34
  end
38
35
  end
39
36
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TF2LineParser
4
+ module Events
5
+ class Disconnect < Event
6
+ def initialize(time, player_name, player_steam_id, player_team, message)
7
+ @time = parse_time(time)
8
+ @player = Player.new(player_name, player_steam_id, player_team)
9
+ @message = message
10
+ end
11
+
12
+ def self.attributes
13
+ @attributes ||= %i[time player_nick player_steamid player_team message]
14
+ end
15
+
16
+ def self.regex
17
+ @regex ||= /#{regex_time} #{regex_player} disconnected \(reason #{regex_message}\)/.freeze
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,13 +1,11 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class Domination < PVPEvent
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "domination" against #{regex_target}.*/.freeze
9
8
  end
10
-
11
9
  end
12
10
  end
13
11
  end
@@ -1,48 +1,44 @@
1
1
  # frozen_string_literal: true
2
- module TF2LineParser
3
2
 
3
+ module TF2LineParser
4
4
  module Events
5
-
6
5
  class Event
7
-
8
- attr_accessor :time, :type, :cap_number, :cap_name, :message, :unknown
9
- attr_accessor :team, :score, :value, :item, :role, :length, :method
10
- attr_accessor :player, :target, :healing, :ubercharge, :customkill, :weapon, :airshot
11
-
6
+ attr_accessor :time, :type, :cap_number, :cap_name, :message, :unknown, :team, :score, :value, :item, :role,
7
+ :length, :method, :player, :target, :healing, :ubercharge, :customkill, :weapon, :airshot
12
8
 
13
9
  def self.time_format
14
- @time_format ||= '%m/%d/%Y - %T'.freeze
10
+ @time_format ||= '%m/%d/%Y - %T'
15
11
  end
16
12
 
17
13
  def self.regex_time
18
- @regex_time ||= 'L (?\'time\'.*):'.freeze
14
+ @regex_time ||= 'L (?\'time\'.*):'
19
15
  end
20
16
 
21
17
  def self.regex_player
22
- @regex_player ||= '"(?\'player_nick\'.+)<(?\'player_uid\'\d+)><(?\'player_steamid\'(\[\S+\]|STEAM_\S+))><(?\'player_team\'Red|Blue|Spectator|TERRORIST|CT||)>"'.freeze
18
+ @regex_player ||= '"(?\'player_nick\'.+)<(?\'player_uid\'\d+)><(?\'player_steamid\'(\[\S+\]|STEAM_\S+))><(?\'player_team\'Red|Blue|Spectator|TERRORIST|CT||)>"'
23
19
  end
24
20
 
25
21
  def self.regex_target
26
- @regex_target ||= '"(?\'target_nick\'.+)<(?\'target_uid\'\d+)><(?\'target_steamid\'(\[\S+\]|STEAM_\S+))><(?\'target_team\'Red|Blue|TERRORIST|CT)>"'.freeze
22
+ @regex_target ||= '"(?\'target_nick\'.+)<(?\'target_uid\'\d+)><(?\'target_steamid\'(\[\S+\]|STEAM_\S+))><(?\'target_team\'Red|Blue|TERRORIST|CT)>"'
27
23
  end
28
24
 
29
25
  def self.regex_cap
30
- @regex_cap ||= '\(cp "(?\'cp_number\'\d+)"\) \(cpname "(?\'cp_name\'.\w*)'.freeze
26
+ @regex_cap ||= '\(cp "(?\'cp_number\'\d+)"\) \(cpname "(?\'cp_name\'.\w*)'
31
27
  end
32
28
 
33
29
  def self.regex_console
34
- @regex_console ||= '"Console<0><Console><Console>"'.freeze
30
+ @regex_console ||= '"Console<0><Console><Console>"'
35
31
  end
36
32
 
37
33
  def self.regex_message
38
- @regex_message ||= '"(?\'message\'.*)"'.freeze
34
+ @regex_message ||= '"(?\'message\'.*)"'
39
35
  end
40
36
 
41
37
  def self.types
42
- #ordered by how common the messages are
38
+ # ordered by how common the messages are
43
39
  @types ||= [Damage, Heal, PickupItem, Assist, Kill, CaptureBlock, PointCapture, ChargeDeployed,
44
40
  MedicDeath, RoleChange, Spawn, Airshot, HeadshotDamage, Suicide, Say, TeamSay, Domination, Revenge, RoundWin, CurrentScore,
45
- RoundLength, RoundStart, Connect, ConsoleSay, MatchEnd, FinalScore,
41
+ RoundLength, RoundStart, Connect, Disconnect, ConsoleSay, MatchEnd, FinalScore,
46
42
  RoundStalemate, Unknown].freeze
47
43
  end
48
44
 
@@ -55,8 +51,6 @@ module TF2LineParser
55
51
  def parse_time(time_string)
56
52
  Time.strptime(time_string, Event.time_format)
57
53
  end
58
-
59
54
  end
60
-
61
55
  end
62
56
  end
@@ -1,14 +1,11 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class FinalScore < Score
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_team} final score #{regex_score} with .*/.freeze
9
8
  end
10
-
11
9
  end
12
-
13
10
  end
14
11
  end
@@ -1,32 +1,28 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class HeadshotDamage < Damage
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "damage" #{regex_damage_against}\(damage "(?'value'\d+)"\)(?:( #{regex_realdamage})?( #{regex_weapon})?) #{regex_headshot}$/.freeze
9
8
  end
10
9
 
11
10
  def self.regex_headshot
12
- @regex_headshot ||= '\(headshot "(?\'headshot\'\d+)"\)'.freeze
11
+ @regex_headshot ||= '\(headshot "(?\'headshot\'\d+)"\)'
13
12
  end
14
13
 
15
14
  def self.attributes
16
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :target_nick, :target_steamid, :target_team, :value, :weapon]
15
+ @attributes ||= %i[time player_nick player_steamid player_team target_nick target_steamid
16
+ target_team value weapon]
17
17
  end
18
18
 
19
19
  def initialize(time, player_name, player_steamid, player_team, target_name, target_steamid, target_team, value, weapon)
20
20
  @time = parse_time(time)
21
21
  @player = Player.new(player_name, player_steamid, player_team)
22
- if target_name
23
- @target = Player.new(target_name, target_steamid, target_team)
24
- end
22
+ @target = Player.new(target_name, target_steamid, target_team) if target_name
25
23
  @value = value.to_i
26
24
  @weapon = weapon
27
25
  end
28
-
29
26
  end
30
27
  end
31
28
  end
32
-
@@ -1,15 +1,15 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class Heal < Event
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "healed" against #{regex_target} \(healing "(?'value'\d+)"\)/.freeze
9
8
  end
10
9
 
11
10
  def self.attributes
12
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :target_nick, :target_steamid, :target_team, :value]
11
+ @attributes ||= %i[time player_nick player_steamid player_team target_nick target_steamid
12
+ target_team value]
13
13
  end
14
14
 
15
15
  def initialize(time, player_name, player_steam_id, player_team, target_name, target_steam_id, target_team, value)
@@ -19,6 +19,5 @@ module TF2LineParser
19
19
  @value = value.to_i
20
20
  end
21
21
  end
22
-
23
22
  end
24
23
  end
@@ -1,15 +1,14 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class Kill < PVPEvent
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} killed #{regex_target} #{regex_weapon} #{regex_customkill}/.freeze
9
8
  end
10
9
 
11
10
  def self.regex_weapon
12
- @regex_weapon ||= 'with "(?\'weapon\'\w*)"'.freeze
11
+ @regex_weapon ||= 'with "(?\'weapon\'\w*)"'
13
12
  end
14
13
 
15
14
  def self.regex_customkill
@@ -17,7 +16,8 @@ module TF2LineParser
17
16
  end
18
17
 
19
18
  def self.attributes
20
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :target_nick, :target_steamid, :target_team, :weapon, :customkill]
19
+ @attributes ||= %i[time player_nick player_steamid player_team target_nick target_steamid
20
+ target_team weapon customkill]
21
21
  end
22
22
 
23
23
  def initialize(time, player_name, player_steam_id, player_team, target_name, target_steam_id, target_team, weapon, customkill)
@@ -27,8 +27,6 @@ module TF2LineParser
27
27
  @weapon = weapon
28
28
  @customkill = customkill
29
29
  end
30
-
31
30
  end
32
-
33
31
  end
34
32
  end
@@ -1,22 +1,19 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class MatchEnd < RoundEventWithVariables
6
-
7
6
  def self.round_variable_regex
8
7
  @round_variable_regex ||= /reason "(?'reason'.*)"/.freeze
9
8
  end
10
9
 
11
10
  def self.round_type
12
- "Game_Over"
11
+ 'Game_Over'
13
12
  end
14
13
 
15
14
  def self.round_variable
16
15
  @round_variable ||= :reason
17
16
  end
18
-
19
17
  end
20
-
21
18
  end
22
19
  end
@@ -1,19 +1,19 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class MedicDeath < Event
6
-
7
6
  def self.regex
8
7
  @regex ||= /#{regex_time} #{regex_player} triggered "medic_death" against #{regex_target} #{regex_medic_death_info}/.freeze
9
8
  end
10
9
 
11
10
  def self.regex_medic_death_info
12
- @regex_healing ||= '\(healing "(?\'healing\'\d+)"\) \(ubercharge "(?\'ubercharge\'\d+)"\)'.freeze
11
+ @regex_healing ||= '\(healing "(?\'healing\'\d+)"\) \(ubercharge "(?\'ubercharge\'\d+)"\)'
13
12
  end
14
13
 
15
14
  def self.attributes
16
- @attributes ||= [:time, :player_nick, :player_steamid, :player_team, :target_nick, :target_steamid, :target_team, :healing, :ubercharge]
15
+ @attributes ||= %i[time player_nick player_steamid player_team target_nick target_steamid
16
+ target_team healing ubercharge]
17
17
  end
18
18
 
19
19
  def initialize(time, player_name, player_steam_id, player_team, target_name, target_steam_id, target_team, healing, ubercharge)
@@ -21,9 +21,8 @@ module TF2LineParser
21
21
  @player = Player.new(player_name, player_steam_id, player_team)
22
22
  @target = Player.new(target_name, target_steam_id, target_team)
23
23
  @healing = healing.to_i
24
- @ubercharge = (ubercharge == "1")
24
+ @ubercharge = (ubercharge == '1')
25
25
  end
26
-
27
26
  end
28
27
  end
29
28
  end
@@ -1,21 +1,19 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module TF2LineParser
3
4
  module Events
4
-
5
5
  class PickupItem < PlayerActionEvent
6
-
7
6
  def self.action_text
8
- @action_text ||= "picked up item".freeze
7
+ @action_text ||= 'picked up item'
9
8
  end
10
9
 
11
10
  def self.regex_action
12
- @regex_item ||= '\"(?\'item\'.*)\"'.freeze
11
+ @regex_item ||= '\"(?\'item\'.*)\"'
13
12
  end
14
13
 
15
14
  def self.item
16
15
  :item
17
16
  end
18
-
19
17
  end
20
18
  end
21
19
  end