Class: Perf::NoOpMeter
- Inherits:
-
Object
show all
- Defined in:
- lib/perf/no_op_meter.rb
Overview
This class can be used in substitution to a Perf::Meter class to avoid overhead when performance measurements is not required. It needs to maintain the same API as Perf::Meter.
Instance Method Summary
collapse
-
#blocks_time ⇒ Object
Returns the total time - expressed with a Benchmark::Tms object - for all the blocks measures.
-
#camelize(from) ⇒ Object
-
#clear ⇒ Object
-
#current_path ⇒ Object
-
#has_measures? ⇒ Boolean
-
#initialize(options = nil) ⇒ NoOpMeter
constructor
A new instance of NoOpMeter.
-
#measure(what, &code) ⇒ Object
-
#measure_class_method(klass, method_name) ⇒ Object
-
#measure_instance_method(klass, method_name) ⇒ Object
-
#measure_result(what, &code) ⇒ Object
-
#measurements ⇒ Object
-
#method_meters(klass, imethods = [], cmethods = []) ⇒ Object
-
#method_missing(method_sym, *arguments, &block) ⇒ Object
-
#methods_time ⇒ Object
Returns the total time - expressed with a Benchmark::Tms object - for all the methods measures.
-
#overhead ⇒ Object
-
#restore_all_class_methods(klass) ⇒ Object
-
#restore_all_instance_methods(klass) ⇒ Object
-
#restore_all_methods(klass) ⇒ Object
-
#restore_class_method(klass, method_name) ⇒ Object
-
#restore_instance_method(klass, method_name) ⇒ Object
Constructor Details
#initialize(options = nil) ⇒ NoOpMeter
Returns a new instance of NoOpMeter.
20
21
|
# File 'lib/perf/no_op_meter.rb', line 20
def initialize(options=nil)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_sym, *arguments, &block) ⇒ Object
73
74
75
76
77
78
79
|
# File 'lib/perf/no_op_meter.rb', line 73
def method_missing(method_sym, *arguments, &block)
if method_sym.to_s =~ /^report_(.*)$/
klass=Object.const_get("Perf").const_get("ReportFormat#{camelize($1)}")
return nil if klass
end
super
end
|
Instance Method Details
#blocks_time ⇒ Object
Returns the total time - expressed with a Benchmark::Tms object - for all the blocks measures
64
65
66
|
# File 'lib/perf/no_op_meter.rb', line 64
def blocks_time
Benchmark::Tms.new
end
|
#camelize(from) ⇒ Object
81
82
83
|
# File 'lib/perf/no_op_meter.rb', line 81
def camelize(from)
from.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
end
|
#clear ⇒ Object
23
24
|
# File 'lib/perf/no_op_meter.rb', line 23
def clear
end
|
#current_path ⇒ Object
13
14
|
# File 'lib/perf/no_op_meter.rb', line 13
def current_path
end
|
#has_measures? ⇒ Boolean
16
17
18
|
# File 'lib/perf/no_op_meter.rb', line 16
def has_measures?
false
end
|
#measure(what, &code) ⇒ Object
26
27
28
|
# File 'lib/perf/no_op_meter.rb', line 26
def measure(what,&code)
yield
end
|
#measure_class_method(klass, method_name) ⇒ Object
47
48
|
# File 'lib/perf/no_op_meter.rb', line 47
def measure_class_method(klass,method_name)
end
|
#measure_instance_method(klass, method_name) ⇒ Object
38
39
|
# File 'lib/perf/no_op_meter.rb', line 38
def measure_instance_method(klass,method_name)
end
|
#measure_result(what, &code) ⇒ Object
30
31
32
|
# File 'lib/perf/no_op_meter.rb', line 30
def measure_result(what,&code)
yield
end
|
#measurements ⇒ Object
10
11
|
# File 'lib/perf/no_op_meter.rb', line 10
def measurements
end
|
#method_meters(klass, imethods = [], cmethods = []) ⇒ Object
34
35
36
|
# File 'lib/perf/no_op_meter.rb', line 34
def method_meters(klass,imethods=[],cmethods=[])
yield
end
|
#methods_time ⇒ Object
Returns the total time - expressed with a Benchmark::Tms object - for all the methods measures
69
70
71
|
# File 'lib/perf/no_op_meter.rb', line 69
def methods_time
Benchmark::Tms.new
end
|
#overhead ⇒ Object
59
60
61
|
# File 'lib/perf/no_op_meter.rb', line 59
def overhead
Benchmark::Tms.new
end
|
#restore_all_class_methods(klass) ⇒ Object
53
54
|
# File 'lib/perf/no_op_meter.rb', line 53
def restore_all_class_methods(klass)
end
|
#restore_all_instance_methods(klass) ⇒ Object
44
45
|
# File 'lib/perf/no_op_meter.rb', line 44
def restore_all_instance_methods(klass)
end
|
#restore_all_methods(klass) ⇒ Object
56
57
|
# File 'lib/perf/no_op_meter.rb', line 56
def restore_all_methods(klass)
end
|
#restore_class_method(klass, method_name) ⇒ Object
50
51
|
# File 'lib/perf/no_op_meter.rb', line 50
def restore_class_method(klass,method_name)
end
|
#restore_instance_method(klass, method_name) ⇒ Object
41
42
|
# File 'lib/perf/no_op_meter.rb', line 41
def restore_instance_method(klass,method_name)
end
|