class LtdTemplate::Code::Sequence

Public Class Methods

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

Public Instance Methods

evaluate(opts = {}) click to toggle source

Evaluate the code sequence.

# File lib/ltdtemplate/code/sequence.rb, line 22
def evaluate (opts = {})
    values = @code.map do |code|
        # RESOURCE code_steps: Total number of code steps executed
        @template.use :code_steps
        rubyversed(code).evaluate
    end
    case values.size
    when 0 then nil
    when 1 then values[0]
    else values.map { |val| rubyversed(val).tpl_text }.join('').
      tap { |res| @template.using :string_length, res.length }
      # RESOURCE string_length: Length of longest modified string
    end
end