Module: Countable2023::ClassMethods
- Defined in:
- lib/countable_2023.rb
Instance Method Summary collapse
- #count_invocations_of(sym) ⇒ Object
- #increment_invocation_count(sym) ⇒ Object
- #invocation_counts ⇒ Object
Instance Method Details
#count_invocations_of(sym) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/countable_2023.rb', line 13 def count_invocations_of(sym) @invocation_counts ||= {} @invocation_counts[sym] ||= 0 original_method = instance_method(sym) define_method(sym) do |*args, &block| self.class.increment_invocation_count(sym) original_method.bind(self).call(*args, &block) end end |
#increment_invocation_count(sym) ⇒ Object
25 26 27 28 29 |
# File 'lib/countable_2023.rb', line 25 def increment_invocation_count(sym) @invocation_counts ||= {} @invocation_counts[sym] ||= 0 @invocation_counts[sym] += 1 end |
#invocation_counts ⇒ Object
31 32 33 |
# File 'lib/countable_2023.rb', line 31 def invocation_counts @invocation_counts || {} end |