Sha256: 8ad56a5ab38f9bce2f6e9ae5536674ce3546bbef5864dbc10da65f6f83218aa4
Contents?: true
Size: 1.06 KB
Versions: 2
Compression:
Stored size: 1.06 KB
Contents
require 'awestruct/handlers/base_handler' module Awestruct module Handlers class InterpolationHandler < BaseHandler def initialize(site, delegate) super( site, delegate ) end def rendered_content(context, with_layouts=true) content = delegate.raw_content return nil if content.nil? return content unless site.interpolate content = content.gsub( /\\/, '\\\\\\\\' ) content = content.gsub( /\\\\#/, '\\#' ) content = content.gsub( Regexp.new('#(?!{)'), '\#' ) if ruby_19? content = content.gsub( '@', '\@' ) content = "%@#{content}@" begin c = context.instance_eval( content ) rescue Exception => e # Don't barf all over ourselves if an exception is thrown $stderr.puts "Exception thrown interpolating content. #{e.to_s}" $stderr.puts e.backtrace c = delegate.raw_content end c end def ruby_19? @is_ruby_19 ||= (::Config::CONFIG['ruby_version'] =~ %r(^1\.9)) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
awestruct-0.4.7 | lib/awestruct/handlers/interpolation_handler.rb |
awestruct-0.4.6 | lib/awestruct/handlers/interpolation_handler.rb |