Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Add support for wlang templating engine.

  • Loading branch information...
commit 46f2547cf44a4ae92a7a63fe1afb5444d7c8f5c5 1 parent 4f5a2fd
Bernard Lambeau blambeau authored
1  Gemfile
View
@@ -42,6 +42,7 @@ gem 'maruku'
gem 'creole'
gem 'markaby'
gem 'radius'
+gem 'wlang', '>= 2.0.1'
if RUBY_ENGINE == 'jruby'
gem 'nokogiri', '!= 1.5.0'
4 lib/sinatra/base.rb
View
@@ -645,6 +645,10 @@ def creole(template, options={}, locals={})
render :creole, template, options, locals
end
+ def wlang(template, options={}, locals={})
+ render :wlang, template, options, locals
+ end
+
def yajl(template, options={}, locals={})
options[:default_content_type] = :json
render :yajl, template, options, locals
1  test/views/hello.wlang
View
@@ -0,0 +1 @@
+Hello from wlang!
2  test/views/layout2.wlang
View
@@ -0,0 +1,2 @@
+WLang Layout!
++{yield}
64 test/wlang_test.rb
View
@@ -0,0 +1,64 @@
+require File.expand_path('../helper', __FILE__)
+require 'wlang'
+
+class WLangTest < Test::Unit::TestCase
+ def engine
+ Tilt::WLangTemplate
+ end
+
+ def wlang_app(&block)
+ mock_app {
+ set :views, File.dirname(__FILE__) + '/views'
+ get '/', &block
+ }
+ get '/'
+ end
+
+ it 'uses the correct engine' do
+ assert_equal engine, Tilt[:wlang]
+ end
+
+ it 'renders .wlang files in views path' do
+ wlang_app { wlang :hello }
+ assert ok?
+ assert_equal "Hello from wlang!\n", body
+ end
+
+ it 'renders in the app instance scope' do
+ mock_app do
+ helpers do
+ def who; "world"; end
+ end
+ get('/') { wlang 'Hello +{who}!' }
+ end
+ get '/'
+ assert ok?
+ assert_equal 'Hello world!', body
+ end
+
+ it 'takes a :locals option' do
+ wlang_app do
+ locals = {:foo => 'Bar'}
+ wlang 'Hello ${foo}!', :locals => locals
+ end
+ assert ok?
+ assert_equal 'Hello Bar!', body
+ end
+
+ it "renders with inline layouts" do
+ mock_app do
+ layout { 'THIS. IS. +{yield.upcase}!' }
+ get('/') { wlang 'Sparta' }
+ end
+ get '/'
+ assert ok?
+ assert_equal 'THIS. IS. SPARTA!', body
+ end
+
+ it "renders with file layouts" do
+ wlang_app { wlang 'Hello World', :layout => :layout2 }
+ assert ok?
+ assert_body "WLang Layout!\nHello World"
+ end
+
+end
Please sign in to comment.
Something went wrong with that request. Please try again.