module Deferrable
Constants
- VERSION
Public Class Methods
included(klass)
click to toggle source
# File lib/deferrable.rb, line 10 def self.included(klass) klass.extend(ClassMethods) end
Public Instance Methods
_deferred_stack(method_name)
click to toggle source
# File lib/deferrable.rb, line 20 def _deferred_stack(method_name) if instance_variable_get("@_deferred_stack_#{method_name}").is_a?(Stack) instance_variable_get("@_deferred_stack_#{method_name}") else instance_variable_set("@_deferred_stack_#{method_name}", Stack.new(context: self)) end end
_execute_deferred_stack(method_name)
click to toggle source
# File lib/deferrable.rb, line 32 def _execute_deferred_stack(method_name) _deferred_stack(method_name).execute end
_reset_deferred_stack(method_name)
click to toggle source
# File lib/deferrable.rb, line 28 def _reset_deferred_stack(method_name) instance_variable_set("@_deferred_stack_#{method_name}", nil) end
defer(&block)
click to toggle source
# File lib/deferrable.rb, line 14 def defer(&block) deferred_in_method = caller_locations(1, 1).first.label.to_sym _deferred_stack(deferred_in_method).add(&block) end