Deprecation warning for auto-require of template engines

This commit is contained in:
Simon Rozet 2009-05-02 14:49:43 +02:00 committed by Ryan Tomayko
parent 4f30c1cefc
commit 7030e25066
5 changed files with 15 additions and 8 deletions

View File

@ -1,10 +1,6 @@
require 'rubygems'
require 'mocha'
require 'haml'
require 'sass'
require 'builder'
# disable warnings in compat specs.
$VERBOSE = nil

View File

@ -223,19 +223,27 @@ module Sinatra
# in the template
module Templates
def erb(template, options={}, locals={})
require_warn('ERB') unless defined?(::ERB)
render :erb, template, options, locals
end
def haml(template, options={}, locals={})
require_warn('Haml') unless defined?(::Haml::Engine)
render :haml, template, options, locals
end
def sass(template, options={}, locals={})
require_warn('Sass') unless defined?(::Sass::Engine)
options[:layout] = false
render :sass, template, options, locals
end
def builder(template=nil, options={}, locals={}, &block)
require_warn('Builder') unless defined?(::Builder)
options, template = template, nil if template.is_a?(Hash)
template = lambda { block } if template.nil?
render :builder, template, options, locals
@ -331,6 +339,11 @@ module Sinatra
end
xml.target!
end
def require_warn(engine)
warn "Auto-require of #{engine} is deprecated; add require '#{engine}' to your app."
require engine.downcase
end
end
# Base class for all Sinatra applications and middleware.

View File

@ -1,4 +1,5 @@
require File.dirname(__FILE__) + '/helper'
require 'builder'
class BuilderTest < Test::Unit::TestCase
def builder_app(&block)

View File

@ -16,10 +16,6 @@ $LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir)
require 'contest'
require 'sinatra/test'
require 'haml'
require 'sass'
require 'builder'
class Sinatra::Base
# Allow assertions in request context
include Test::Unit::Assertions

View File

@ -1,4 +1,5 @@
require File.dirname(__FILE__) + '/helper'
require 'sass'
class SassTest < Test::Unit::TestCase
def sass_app(&block)