class Awestruct::Handlers::InterpolationHandler

Public Class Methods

new(site, delegate) click to toggle source
Calls superclass method Awestruct::Handlers::BaseHandler::new
# File lib/awestruct/handlers/interpolation_handler.rb, line 8
def initialize(site, delegate)
  super( site, delegate )
end

Public Instance Methods

rendered_content(context, with_layouts=true) click to toggle source
# File lib/awestruct/handlers/interpolation_handler.rb, line 12
def rendered_content(context, with_layouts=true)
  content = delegate.raw_content

  return nil if content.nil?
  return content unless front_matter.fetch('interpolate', site.interpolate) == true

  content = content.gsub( /\\/, '\\\\\\\\' )
  content = content.gsub( /\\\\#/, '\\#' )
  content = content.gsub( /#(?!\{)/, '\#' )
  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
    ExceptionHelper.log_building_error e, relative_source_path
    c = delegate.raw_content
  end
  c

end