Rails 3 Template Handlers

I’m having some trouble updating my gem, poirot, to work properly with
Rails 3.1. Before Rails 3.1 I had a template handler that was
inheriting from ActionView::Template::Handler and including
ActionView::Template::Handlers::Compilable. This worked fine but in
Rails 3.1 I was getting deprecation warnings for using these.

I modified my handler so that it now just provides a call method and
have removed both ActionView::Template::Handlers::Compilable &
ActionView::Template::Handler. Rendering the templates seems to work
fine but I now have no access to the view context.

I need access to a view context because I’m rendering mustache
templates and what to be able to create a view object that exposes the
objects available in the view to the template, specifically any
instance variables set in the controller and any locals passed when
rendering a partial.

currently my code looks like this:

module Poirot
  class Handler

    attr_reader :template

    def initialize(template)
      @template = template
    end

    def self.call(template, *args)
      self.new(template).call
    end

    def call
      view_path = "#{template.virtual_path}_view"
      abs_view_path = Rails.root.join('app/views', view_path)
      view_class = begin
        view_path.classify.constantize
      rescue NameError => e
        Poirot::View
      end
      "#{view_class}.new(self, '#{template.source.gsub(/'/, "\\\

‘")}’).render.html_safe"
end
end
end

Any help or advice would be greatly appreciated, thanks!