Class: Benchmarkable::BenchmarkReport::Data
- Inherits:
-
Object
- Object
- Benchmarkable::BenchmarkReport::Data
- Defined in:
- lib/benchmarkable.rb
Instance Method Summary collapse
- #<<(data_for_nested_call) ⇒ Object
-
#initialize(description) ⇒ Data
constructor
A new instance of Data.
- #nested_levels ⇒ Object
- #to_entry(context_so_far = [], nesting_limit = 0) ⇒ Object
Constructor Details
#initialize(description) ⇒ Data
Returns a new instance of Data.
109 110 111 112 113 114 115 |
# File 'lib/benchmarkable.rb', line 109 def initialize(description) @description = description @timestamp = DateTime.now @overall_time = Benchmark.measure do yield end end |
Instance Method Details
#<<(data_for_nested_call) ⇒ Object
117 118 119 |
# File 'lib/benchmarkable.rb', line 117 def <<(data_for_nested_call) data_for_nested_calls << data_for_nested_call end |
#nested_levels ⇒ Object
130 131 132 133 |
# File 'lib/benchmarkable.rb', line 130 def nested_levels return 0 if data_for_nested_calls.empty? 1 + data_for_nested_calls.collect {|nested_call_data| nested_call_data.nested_levels }.max end |
#to_entry(context_so_far = [], nesting_limit = 0) ⇒ Object
121 122 123 124 125 126 127 128 |
# File 'lib/benchmarkable.rb', line 121 def to_entry(context_so_far = [], nesting_limit = 0) current_context = context_so_far + [@description] empty_context_columns = nesting_limit > 0 ? ['-'] * [nesting_limit, nested_levels].max : [] current_entry = {:timestamp => @timestamp, :context => current_context + empty_context_columns, :execution_time => @overall_time} nested_entries = nesting_limit == 0 ? [] : data_for_nested_calls.collect {|nested_call_data| nested_call_data.to_entry(current_context, nesting_limit - 1)}.flatten [current_entry] + nested_entries end |