Class: LiquiDot::Template

Inherits:
Object
  • Object
show all
Defined in:
lib/liquidot.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content, data = {}) ⇒ Template

Returns a new instance of Template.



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

def initialize(content, data={})
  @content = content
  @data = data
end

Class Method Details

.parse(filename) ⇒ Object



11
12
13
14
# File 'lib/liquidot.rb', line 11

def self.parse(filename)
  s = File.read(filename)
  self.parse_string(s)
end

.parse_string(content) ⇒ Object



16
17
18
19
20
21
22
23
# File 'lib/liquidot.rb', line 16

def self.parse_string(content)
  data = {}
  if content =~ /^(---\s*\n.*?\n?)^(---\s*$\n?)/m
    content = $POSTMATCH
    data    = YAML.load($1)
  end
  Template.new(content, data)
end

Instance Method Details

#render(newdata = {}) ⇒ Object



25
26
27
28
29
30
31
32
# File 'lib/liquidot.rb', line 25

def render(newdata={})
  template = Liquid::Template.parse(@content)
  data = @data
  if !data.empty?
    data.merge!(newdata)
  end
  template.render(data)
end