Module: NestedBenchmark
Defined Under Namespace
Modules: InstanceMethods
Class Method Summary collapse
- .add(benchmark) ⇒ Object
- .benchmarks ⇒ Object
- .calculate(&block) ⇒ Object
- .children_stack ⇒ Object
- .each(&block) ⇒ Object
- .ignore ⇒ Object
- .ignore_in_parent(offset) ⇒ Object
- .ignores ⇒ Object
- .included(base) ⇒ Object
- .reset! ⇒ Object
- .sum(benchmarks) ⇒ Object
Class Method Details
.add(benchmark) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/benchmark/nested/benchmark.rb', line 54 def add(benchmark) if NestedBenchmark.children_stack.empty? NestedBenchmark.benchmarks << benchmark else NestedBenchmark.children_stack.last << benchmark end benchmark end |
.benchmarks ⇒ Object
13 14 15 |
# File 'lib/benchmark/nested/benchmark.rb', line 13 def benchmarks @benchmarks ||= [] end |
.calculate(&block) ⇒ Object
39 40 41 42 |
# File 'lib/benchmark/nested/benchmark.rb', line 39 def calculate(&block) NestedBenchmark.ignores << [] yield - ignore end |
.children_stack ⇒ Object
17 18 19 |
# File 'lib/benchmark/nested/benchmark.rb', line 17 def children_stack @children_stack ||= [] end |
.each(&block) ⇒ Object
9 10 11 |
# File 'lib/benchmark/nested/benchmark.rb', line 9 def each(&block) benchmarks.each(&block) end |
.ignore ⇒ Object
33 34 35 36 37 |
# File 'lib/benchmark/nested/benchmark.rb', line 33 def ignore offset = sum(NestedBenchmark.ignores.pop) ignore_in_parent offset offset end |
.ignore_in_parent(offset) ⇒ Object
29 30 31 |
# File 'lib/benchmark/nested/benchmark.rb', line 29 def ignore_in_parent(offset) NestedBenchmark.ignores.last << offset unless NestedBenchmark.ignores.empty? end |
.ignores ⇒ Object
21 22 23 |
# File 'lib/benchmark/nested/benchmark.rb', line 21 def ignores @ignores ||= [] end |
.included(base) ⇒ Object
25 26 27 |
# File 'lib/benchmark/nested/benchmark.rb', line 25 def included(base) base.__send__(:include, InstanceMethods) end |
.reset! ⇒ Object
44 45 46 |
# File 'lib/benchmark/nested/benchmark.rb', line 44 def reset! benchmarks.clear end |