Class: Lavender::Converter

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

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Converter

Returns a new instance of Converter.



3
4
5
6
# File 'lib/lavender/converter.rb', line 3

def initialize options
  @options = options
  @options[:defaults] ||= {}
end

Instance Method Details

#renderObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/lavender/converter.rb', line 8

def render
  yaml = @options[:page]
  conf = nil
  page = nil

  if yaml.match /\A---\s?\n(.+?\n)---\s?\n(.*)\Z/m
    conf = YAML.load($1)
    page = $2
  else
    conf = {}
    page = yaml
  end

  pro = if conf.has_key? 'processor'
          conf['processor']
        else
          @options[:defaults][:processor]
        end
  pro = pro.to_sym unless pro.nil?
  r = Renderer.new(pro, page)
  output = r.render(conf)

  layout = if conf.has_key? 'layout'
             conf['layout']
           else
             @options[:defaults][:layout]
           end
  layout = layout.to_sym unless layout.nil?
  if layout
    hsh = @options[:layouts][layout]
    pro = hsh.keys.first
    content = hsh[pro]
    r = Renderer.new(pro, content)
    output = r.render(conf) { output }
  end

  output
end