15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/deplate/counters.rb', line 15
def def_counter(name, args={})
parent_counter = args[:parent]
if parent_counter
parent, parent_level = parent_counter.split(/[.,:;@-_<> ]+/)
parent_level = parent_level.to_i
if parent_level > 0
parent_level -= 1
end
pc = @counters[parent]
if pc
pc[:children] << {:name => name, :level => parent_level}
else
Deplate::Core.log(['Unknown counter', pc], :error)
end
else
parent = nil
parent_level = nil
end
init = args[:init] || [0]
@counters[name] = {
:value => init.dup,
:init => init.dup,
:children => [],
:parent => parent,
:parent_level => parent_level,
}
end
|