Module: TimeMethod::ClassMethods
- Defined in:
- lib/time_method/class_methods.rb
Instance Method Summary collapse
- #add_method_to_interceptor(interceptor, method_name) ⇒ Object
- #class_interceptor ⇒ Object
- #instance_interceptor ⇒ Object
- #privatize_interceptor_method(interceptor, method_name) ⇒ Object
- #time_method_name ⇒ Object
- #tracked_class_methods(*method_names) ⇒ Object
- #tracked_instance_methods(*method_names) ⇒ Object
- #tracked_private_class_methods(*method_namess) ⇒ Object
- #tracked_private_instance_methods(*method_names) ⇒ Object
Instance Method Details
#add_method_to_interceptor(interceptor, method_name) ⇒ Object
42 43 44 45 46 47 48 49 50 |
# File 'lib/time_method/class_methods.rb', line 42 def add_method_to_interceptor(interceptor,method_name) interceptor.class_eval do define_method method_name do |*args, &block| TimeMethod.measure(klass_name:interceptor.klass_name.to_s,method_name:method_name.to_s) do super(*args,&block) end end end end |
#class_interceptor ⇒ Object
38 39 40 |
# File 'lib/time_method/class_methods.rb', line 38 def class_interceptor const_get("#{time_method_name}ClassInterceptor") end |
#instance_interceptor ⇒ Object
34 35 36 |
# File 'lib/time_method/class_methods.rb', line 34 def instance_interceptor const_get("#{time_method_name}InstanceInterceptor") end |
#privatize_interceptor_method(interceptor, method_name) ⇒ Object
30 31 32 |
# File 'lib/time_method/class_methods.rb', line 30 def privatize_interceptor_method(interceptor,method_name) interceptor.class_eval {private method_name} end |
#time_method_name ⇒ Object
5 6 7 |
# File 'lib/time_method/class_methods.rb', line 5 def time_method_name name.gsub("::","_") end |
#tracked_class_methods(*method_names) ⇒ Object
15 16 17 18 19 |
# File 'lib/time_method/class_methods.rb', line 15 def tracked_class_methods(*method_names) method_names.each do |method_name| add_method_to_interceptor(class_interceptor,method_name) end end |
#tracked_instance_methods(*method_names) ⇒ Object
9 10 11 12 13 |
# File 'lib/time_method/class_methods.rb', line 9 def tracked_instance_methods(*method_names) method_names.each do |method_name| add_method_to_interceptor(instance_interceptor,method_name) end end |
#tracked_private_class_methods(*method_namess) ⇒ Object
25 26 27 28 |
# File 'lib/time_method/class_methods.rb', line 25 def tracked_private_class_methods(*method_namess) tracked_class_methods(*method_names) method_names.each { |method_name| private_interceptor_method(class_interceptor,method_name)} end |
#tracked_private_instance_methods(*method_names) ⇒ Object
20 21 22 23 |
# File 'lib/time_method/class_methods.rb', line 20 def tracked_private_instance_methods(*method_names) tracked_instance_methods(*method_names) method_names.each { |method_name| private_interceptor_method(instance_interceptor,method_name)} end |