Class: IceNine::RecursionGuard
- Inherits:
-
Object
- Object
- IceNine::RecursionGuard
- Defined in:
- lib/ice_nine/support/recursion_guard.rb
Overview
Protect against infinite recursion
Instance Method Summary collapse
-
#guard(caller_object_id) ⇒ Object
Guard against recursively calling a block with the same object.
-
#initialize ⇒ undefined
constructor
Initialize a recursion guard.
Constructor Details
#initialize ⇒ undefined
Initialize a recursion guard
13 14 15 |
# File 'lib/ice_nine/support/recursion_guard.rb', line 13 def initialize @object_ids = {} end |
Instance Method Details
#guard(caller_object_id) ⇒ Object
Guard against recursively calling a block with the same object
30 31 32 33 34 |
# File 'lib/ice_nine/support/recursion_guard.rb', line 30 def guard(caller_object_id) return if @object_ids.key?(caller_object_id) @object_ids[caller_object_id] = nil yield end |