Class: Magneto::ErubisFilter

Inherits:
Filter
  • Object
show all
Defined in:
lib/magneto/filters/erubis.rb

Instance Method Summary collapse

Methods inherited from Filter

inherited, #initialize, subclasses

Constructor Details

This class inherits a constructor from Magneto::Filter

Instance Method Details

#apply(content, ivars) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/magneto/filters/erubis.rb', line 9

def apply(content, ivars)
  begin
    require 'erubis'
    require 'erubis/engine/enhanced'
  rescue LoadError => ex
    $stderr.puts "#{File.basename($PROGRAM_NAME)}: #{ex.to_s}"
    $stderr.puts "You're missing a library required to use Erubis. Try running:"
    $stderr.puts '  $ [sudo] gem install erubis'
    raise 'Missing dependency: erubis'
  end

  # Adapted from "nanoc/filters/erubis.rb" with thanks to Denis Defreyne and contributors.
  context = RenderContext.new(ivars)
  proc = ivars[:content] ? lambda { ivars[:content] } : lambda {}
  b = context.get_binding(&proc)

  Erubis::ErboutEruby.new(content, (ivars[:erubis].symbolize_keys rescue {})).result b
end

#nameObject



5
6
7
# File 'lib/magneto/filters/erubis.rb', line 5

def name
  'erubis'
end