Class: Perf::NoOpMeter

Inherits:
Object
  • 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

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_timeObject

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

#clearObject



23
24
# File 'lib/perf/no_op_meter.rb', line 23

def clear
end

#current_pathObject



13
14
# File 'lib/perf/no_op_meter.rb', line 13

def current_path
end

#has_measures?Boolean

Returns:

  • (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

#measurementsObject



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_timeObject

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

#overheadObject



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