Sha256: fc070b2b6af3455292cde63738ae157114df4695665baa15958204b9c4fd0eb5

Contents?: true

Size: 781 Bytes

Versions: 6

Compression:

Stored size: 781 Bytes

Contents

require 'rack/test' # Use Rack::Test to access Sinatra without starting up a full server

# Monkey-patch to use a dynamic renderer
class Templater::Actions::File
  def identical?
    if exists?
      return true if File.mtime(source) < File.mtime(destination)
      FileUtils.identical?(source, destination)
    else
      false
    end
  end
end

class Templater::Actions::Template
  def render
    @@rack_test ||= Rack::Test::Session.new(Rack::MockSession.new(Middleman::Server))
    
    @render_cache ||= begin
      # The default render just requests the page over Rack and writes the response
      request_path = destination.gsub(File.join(Dir.pwd, Middleman::Server.build_dir), "")
      @@rack_test.get(request_path)
      @@rack_test.last_response.body
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
middleman-1.1.0.beta.0 lib/middleman/templater+dynamic_renderer.rb
middleman-1.1.0.alpha.2 lib/middleman/templater+dynamic_renderer.rb
middleman-1.0.3 lib/middleman/templater+dynamic_renderer.rb
middleman-1.1.0.alpha.1 lib/middleman/templater+dynamic_renderer.rb
middleman-1.0.2 lib/middleman/templater+dynamic_renderer.rb
middleman-1.0.1 lib/middleman/templater+dynamic_renderer.rb