Class XhochY::Drossellog::CodeCounter
In: xhochy/drossellog/codecounter.rb
Parent: Object
PageCounter EntryCounter ImpressionCounter DataCounter LogFileParser WeeklyReport CodeCounter MonthlyReport LogLine DailyReport DailyIPCounter IPCounter ImpressionBlacklist Drossellog XhochY dot/f_1.png

Counts the HTTP-Codes send by the server

Methods

add   from_hash   new   to_hash   to_simple_hash  

Attributes

codes  [R] 

Public Class methods

Creates a new CodeCounter instance

[Source]

    # File xhochy/drossellog/codecounter.rb, line 8
 8:       def initialize
 9:         @codes = {}
10:       end

Public Instance methods

Count a access to page with the given HTTP-Code

[Source]

    # File xhochy/drossellog/codecounter.rb, line 13
13:       def add(code, page = nil)
14:         if code.class == CodeCounter
15:           code.codes.each do |key, value|
16:             if @codes[key] == nil
17:               @codes[key] = value
18:             else
19:               value.each do |key2, value2|
20:                 if @codes[key][key2] == nil
21:                   @codes[key][key2] = value2
22:                 else
23:                   @codes[key][key2] += value2
24:                 end
25:               end
26:             end
27:           end
28:         end
29:         
30:         if code.class == String
31:           if page.length > 1
32:             # remove trailing slash
33:             page = page.split(/\/$/)[0]
34:           end
35:         
36:           if @codes[code] == nil
37:             @codes[code] = {}
38:           end
39:         
40:           if @codes[code][page] == nil
41:             @codes[code][page] = 1
42:           else
43:             @codes[code][page] += 1
44:           end 
45:         end #^ String
46:       end

import data from a Hash, overrides old data

[Source]

    # File xhochy/drossellog/codecounter.rb, line 54
54:       def from_hash(data)
55:         @codes = data.clone
56:       end

return the relevant data of this object as a hash

[Source]

    # File xhochy/drossellog/codecounter.rb, line 49
49:       def to_hash
50:         @codes.clone
51:       end

return the relevant data as simple, one-dimensinal hash

[Source]

    # File xhochy/drossellog/codecounter.rb, line 59
59:       def to_simple_hash
60:         ret = {}
61:         @codes.each do |k1, c|
62:           ret[k1] = 0
63:           c.each do |k2, d|
64:             ret[k1] += d
65:           end
66:         end
67:         ret
68:       end

[Validate]