File: //usr/lib/ruby/vendor_ruby/tilt/sigil.rb
require 'open3'
require 'shellwords'
module Tilt
# Standalone string interpolator and template processor implementation in Go.
# see: https://github.com/gliderlabs/sigil
class SigilTemplate < Template
def prepare
end
def evaluate(scope, locals, &block)
variables = locals.map {|k, v| "#{k}=#{v}" }
cmd = ['sigil']
unless variables.empty?
cmd << '-p'
cmd.concat(variables)
end
out, err, status = Open3.capture3(*cmd, :stdin_data => data)
if status.success?
out.chomp
else
raise err.chomp.gsub('<stdin>', file)
end
end
def allows_script?
false
end
end
end