tf2_line_parser 0.2.1 → 0.2.2

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