class Bade::Runtime::Block

Attributes

block[R]

@return [Proc]

name[R]

@return [String]

render_binding[R]

@return [RenderBinding]

Public Class Methods

new(name, render_binding, &block) click to toggle source

@param [String] name name of the block @param [RenderBinding] render_binding reference to current binding instance @param [Proc] block reference to lambda

# File lib/bade/runtime/block.rb, line 49
def initialize(name, render_binding, &block)
  @name = name
  @render_binding = render_binding
  @block = block
end

Public Instance Methods

call(*args) click to toggle source
# File lib/bade/runtime/block.rb, line 57
               def call(*args)
  call!(*args) unless @block.nil?
end
call!(*args) click to toggle source
# File lib/bade/runtime/block.rb, line 61
               def call!(*args)
  raise MissingBlockDefinitionError.new(name, :call) if @block.nil?

  render_binding.__buff.concat(@block.call(*args))
end
render(*args) click to toggle source

— Rendering methods

# File lib/bade/runtime/block.rb, line 69
def render(*args)
  if @block.nil?
    ''
  else
    render!(*args)
  end
end
render!(*args) click to toggle source
# File lib/bade/runtime/block.rb, line 77
def render!(*args)
  raise MissingBlockDefinitionError.new(name, :render) if @block.nil?

  @block.call(*args).join
end