class Ribbon::Plugins::BlockStack

Attributes

scope[RW]

Public Class Methods

new(scope=nil) click to toggle source
# File lib/ribbon/plugins/block_stack.rb, line 5
def initialize(scope=nil)
  @scope = scope
  @_stack = []
end

Public Instance Methods

call(*args) click to toggle source
# File lib/ribbon/plugins/block_stack.rb, line 20
def call(*args)
  @_stack.reverse_each { |block|
    if scope
      scope.instance_exec(*args, &block)
    else
      block.call(*args)
    end
  }
end
dup() click to toggle source
# File lib/ribbon/plugins/block_stack.rb, line 10
def dup
  BlockStack.new.tap { |stack|
    @_stack.each { |block| stack.push(&block) }
  }
end
push(&block) click to toggle source
# File lib/ribbon/plugins/block_stack.rb, line 16
def push(&block)
  @_stack.push(block)
end