class LtdTemplate::Value::Code_Block

Attributes

code[R]

Public Class Methods

new(template, code) click to toggle source
Calls superclass method LtdTemplate::Value::new
# File lib/ltdtemplate/value/code_block.rb, line 20
def initialize (template, code)
    super template
    @code = code
end

Public Instance Methods

evaluate(opts = {}) click to toggle source

Evaluate supported methods on code blocks. Most methods are passed to the code block.

# File lib/ltdtemplate/value/code_block.rb, line 27
def evaluate (opts = {})
    case opts[:method]
    when nil then self
    when 'class' then 'Code'
    when 'type' then 'code'
    else
        @template.push_namespace opts[:method], opts[:parameters],
          :target => (opts[:target] || self)
        result = rubyversed(@code).evaluate
        @template.pop_namespace
        result
    end
end
tpl_text() click to toggle source

In contrast to an implied code block, an uncalled explicit code block generates no template output.

# File lib/ltdtemplate/value/code_block.rb, line 43
def tpl_text; ''; end