tclog 0.1.0 → 0.1.1

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 (5) hide show
  1. data/README.mkd +0 -2
  2. data/VERSION +1 -1
  3. data/lib/tclog.rb +70 -19
  4. data/tclog.gemspec +2 -2
  5. metadata +3 -3
data/README.mkd CHANGED
@@ -4,8 +4,6 @@
4
4
 
5
5
  $ gem install tclog
6
6
 
7
- Coming soon!
8
-
9
7
  ## Usage
10
8
 
11
9
  require 'tclog'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/lib/tclog.rb CHANGED
@@ -1,6 +1,13 @@
1
+ # = TCLog
2
+ # Author:: Shota Fukumori (sora_h)
3
+ # Copyright:: (c) Shota Fukumori (sora_h) 2010- w/ mit license
4
+ # License:: MIT License; License terms written in README.mkd
5
+ #
6
+ # This library helps TC:E stats parsing.
7
+ #
1
8
  module TCLog
2
9
  class Game
3
- def initialize(orders = [], gametype = :obj)
10
+ def initialize(orders = [], gametype = :obj) # :nodoc:
4
11
  @orders = orders
5
12
  @gametype = gametype
6
13
  @rounds = []
@@ -23,12 +30,12 @@ module TCLog
23
30
  end
24
31
 
25
32
 
26
- def add_map(map_name)
33
+ def add_map(map_name) # :nodoc:
27
34
  @round_r += 1
28
35
  @rounds << Round.new(self, nil, @round_r, :map, true, map_name); self
29
36
  end
30
37
 
31
- def add_round(specops,terrorists,won)
38
+ def add_round(specops,terrorists,won) # :nodoc:
32
39
  @round_n += 1
33
40
  @round_r += 1
34
41
  r = Round.new(self, @round_n, @round_r, won)
@@ -38,7 +45,7 @@ module TCLog
38
45
  self
39
46
  end
40
47
 
41
- def add_player(name)
48
+ def add_player(name) # :nodoc:
42
49
  @players[name] = Player.new(name)
43
50
  if 0 <= @round_r
44
51
  @players[name].push_result(@round_r)
@@ -47,12 +54,26 @@ module TCLog
47
54
  end
48
55
 
49
56
 
50
- def round; @round_n; end
57
+ def round; @round_n; end # :nodoc:
58
+ attr_reader :round_r # :nodoc:
59
+
60
+ # Has same mean as game.rounds[i]
51
61
  def [](i); @rounds[i]; end
52
- attr_reader :rounds, :players, :orders, :gametype, :round_r
62
+
63
+ # Logged rounds.
64
+ attr_reader :rounds
65
+
66
+ # All players.
67
+ attr_reader :players
68
+
69
+ # Parser VM call stacks.
70
+ attr_reader :orders
71
+
72
+ # Gametype. obj, bc, ctf.
73
+ attr_reader :gametype
53
74
  end
54
75
  class Round
55
- def initialize(game, n, rn, win, map_changing = false, map_name = nil)
76
+ def initialize(game, n, rn, win, map_changing = false, map_name = nil) # :nodoc
56
77
  @game = game
57
78
  @won = win
58
79
  @round_number = n
@@ -63,33 +84,52 @@ module TCLog
63
84
  @map_name = map_name
64
85
  end
65
86
 
87
+
88
+ # Players which joined at this round.
66
89
  def players
67
90
  @game.players.map do |g|
68
91
  g if @round_number && g.results[@real_round_number]
69
92
  end.compact
70
93
  end
71
94
 
95
+ # Players result which joined at this round.
72
96
  def player_results
73
97
  @game.players.map do |g|
74
98
  g.results[@real_round_number] if @round_number
75
99
  end.compact
76
100
  end
77
101
 
102
+ # Is this round changing map?
78
103
  def map_changing?; @map_changing; end
79
- def map_changing=(x); @map_changing = x; end
80
- attr_accessor :map_name, :specops, :terrorists, :won
104
+
105
+ def map_changing=(x); @map_changing = x; end # :nodoc:
106
+
107
+ # Next map name if this round changing map.
108
+ attr_accessor :map_name
109
+
110
+ # specops total scores.
111
+ attr_accessor :specops
112
+
113
+ # terrorists total scores.
114
+ attr_accessor :terrorists
115
+
116
+ # Team which won this round.
117
+ attr_accessor :won
118
+
119
+ # Round number at game. (Counted without map changing)
81
120
  attr_reader :round_number
82
121
  end
83
122
  class Player
84
- def initialize(name)
123
+ def initialize(name) # :nodoc:
85
124
  @name = name
86
125
  @results = []
87
126
  end
88
127
 
89
- def add_result(n, score)
128
+ def add_result(n, score) # :nodoc:
90
129
  @results[n] = score.merge(:round => n); self
91
130
  end
92
131
 
132
+ # Returns this player's total score.
93
133
  def total
94
134
  a = @results.compact.inject({
95
135
  :name => @name,
@@ -114,18 +154,29 @@ module TCLog
114
154
  a
115
155
  end
116
156
 
117
- def push_result(i)
157
+ def push_result(i) # :nodoc:
118
158
  @results[i] = nil
119
159
  end
120
- attr_reader :name, :results
160
+
161
+ # This player's name.
162
+ attr_reader :name
163
+
164
+ # This player's round results.
165
+ # Use compact method to use Round#round_number.
166
+ attr_reader :results
121
167
  end
122
168
 
123
- # logfile = String: filename
124
- # IO: io
169
+
170
+ # [logfile]
171
+ # String or IO. String is filename.
172
+ #
173
+ # [gametype]
174
+ # :obj => "Objective"
175
+ # :ctf => "Capture The Flag"
176
+ # :bc => "BodyCount"
125
177
  #
126
- # gametype = :obj => "Objective"
127
- # :ctf => "Capture The Flag"
128
- # :bc => "BodyCount"
178
+ # Parses TC:E etconsole.log.
179
+ # You can catch etconsole.log by /set logfile 2 at tc:e console.
129
180
  def self.analyze(logfile, gametype = :obj)
130
181
  # Load file
131
182
  log = case logfile
@@ -277,7 +328,7 @@ module TCLog
277
328
  game
278
329
  end
279
330
 
280
- def self.compare_score(terrorists, specops)
331
+ def self.compare_score(terrorists, specops) # :nodoc:
281
332
  if terrorists[:score] > specops[:score]
282
333
  :terrorists
283
334
  else
data/tclog.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{tclog}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Shota Fukumori"]
12
- s.date = %q{2010-12-24}
12
+ s.date = %q{2010-12-25}
13
13
  s.description = %q{Parser for etconsole.log of TrueCombat:Elite (TC:E)}
14
14
  s.email = %q{sorah@tubusu.net}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Shota Fukumori
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-12-24 00:00:00 +09:00
17
+ date: 2010-12-25 00:00:00 +09:00
18
18
  default_executable:
19
19
  dependencies: []
20
20