module Roglew::ContextualModule

Public Class Methods

included(c) click to toggle source
# File lib/roglew/contextual.rb, line 15
def self.included(c)
  c.extend ClassMethods
end

Public Instance Methods

is_deferred?(deferred) click to toggle source
# File lib/roglew/contextual.rb, line 19
def is_deferred?(deferred)
  [
    deferred,
    self.deferred?,
    self.class.respond_to?(:deferred?) && self.class.deferred?,
    @context.respond_to?(:deferred?) && @context.deferred?,
    @context.class.respond_to?(:deferred?) && @context.class.deferred?,
    false
  ].compact.first
end

Private Instance Methods

create_binding(deferred, *args, &block) click to toggle source
# File lib/roglew/contextual.rb, line 31
def create_binding(deferred, *args, &block)
  ctx_class = self.class.ancestors.find { |c| c.is_a?(Contextual) }.context_class
  ctx = ctx_class.new(self, deferred, *args, &block)
  block_given? ? self : ctx
end