Class: Template

Inherits:
Object
  • Object
show all
Defined in:
lib/template.rb,
lib/template/node.rb,
lib/template/parser.rb,
lib/template/node/part.rb,
lib/template/node/template.rb,
lib/template/node/code_part.rb,
lib/template/node/text_part.rb,
lib/template/parser/template.rb

Defined Under Namespace

Classes: Node, Parser

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input) ⇒ Template

Returns a new instance of Template.



2
3
4
5
# File 'lib/template.rb', line 2

def initialize(input)
  @input = input
  @parsed = ::Template::Parser::Template.new.parse(@input)
end

Class Method Details

.render(input, context = "") ⇒ Object



7
8
9
# File 'lib/template.rb', line 7

def self.render(input, context = "")
  new(input).render(context)
end

Instance Method Details

#render(context = "") ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/template.rb', line 11

def render(context = "")
  if context.present?
    context = ::Code.evaluate(context)
  else
    context = ::Code::Object::Dictionnary.new
  end

  ::Template::Node::Template.new(@parsed).evaluate(context).map(&:to_s).join
end