Class: Glimmer::Util::ProcTracker

Inherits:
Proc
  • Object
show all
Defined in:
lib/glimmer/util/proc_tracker.rb

Overview

Decorator that provides tracking facilities for Ruby procs, tracking owner (string), invoked_form method name (symbol/string), and called? (boolean)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(proc = nil, owner: nil, invoked_from: nil, &block) ⇒ ProcTracker

Returns a new instance of ProcTracker.



9
10
11
12
13
# File 'lib/glimmer/util/proc_tracker.rb', line 9

def initialize(proc = nil, owner: nil, invoked_from: nil, &block)
  super(proc || block)
  @owner = owner
  @invoked_from = invoked_from
end

Instance Attribute Details

#invoked_fromObject (readonly)

Returns the value of attribute invoked_from.



7
8
9
# File 'lib/glimmer/util/proc_tracker.rb', line 7

def invoked_from
  @invoked_from
end

#ownerObject (readonly)

Returns the value of attribute owner.



7
8
9
# File 'lib/glimmer/util/proc_tracker.rb', line 7

def owner
  @owner
end

Instance Method Details

#call(*args) ⇒ Object



15
16
17
18
# File 'lib/glimmer/util/proc_tracker.rb', line 15

def call(*args)
  __getobj__.call(*args)
  @called = true
end

#called?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/glimmer/util/proc_tracker.rb', line 20

def called?
  !!@called
end

#respond_to?(method_name, include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/glimmer/util/proc_tracker.rb', line 24

def respond_to?(method_name, include_private = false)
  %w[owner invoked_from called?].include?(method_name.to_s) || super(method_name, include_private)
end