Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

template helpers work well with current version of Tilt #9

Merged
merged 1 commit into from

2 participants

@udzura

Hi, rkh

I found that almost-sinatra.rb's template helpers mayn't work well with current version of Tilt.
So I created a patch.

Thank you!

@rkh rkh merged commit 9b72a89 into rkh:master
@rkh
Owner
rkh commented

I'm curious: How did you run into this issue?

@udzura

I was interested in your almost-sinatra.rb code so I've analyzed the spaghetti.
I ran the sinatra-ish code below:

require 'haml'
require './almost_sinatra'

get '/' do
  "foobar"
end

get '/hi' do
  @title = "hello"
  haml :index
end

__END__

@@ index
%h1= @title
%p hello

Then I got the error undefined method 'new' for [Tilt::HamlTemplate]:Array,
and I found Tilt.mappings returns a String => Array of Engines hash.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
Showing with 1 addition and 1 deletion.
  1. +1 −1  almost_sinatra.rb
View
2  almost_sinatra.rb
@@ -1,7 +1,7 @@
%w.rack tilt backports INT TERM..map{|l|trap(l){$r.stop}rescue require l}
$n=Sinatra=Module.new{extend Rack;a,D,S,$p,q,Application=Builder.new,Object.method(:define_method),/@@ *([^\n]+)\n(((?!@@)[^\n]*\n)*)/m,4567,a
%w[get post put delete].map{|m|D.(m){|u,&b|a.map(u){run->(e){[200,{"Content-Type"=>"text/html"},[a.instance_eval(&b)]]}}}}
-Tilt.mappings.map{|k,v|D.(k){|n,*o|$t||=(h={};File.read(caller[0][/^[^:]+/]).scan(S){|a,b|h[a]=b};h);v.new(*o){n.to_s==n ?n:$t[n.to_s]}.render(a,o[0].try(:[],:locals)||{})}}
+Tilt.mappings.map{|k,v|D.(k){|n,*o|$t||=(h={};File.read(caller[0][/^[^:]+/]).scan(S){|a,b|h[a]=b};h);v[0].new(*o){n.to_s==n ?n:$t[n.to_s]}.render(a,o[0].try(:[],:locals)||{})}}
%w[set enable disable configure helpers use register].map{|m|D.(m){|*_,&b|b.try :[]}};END{Handler.get("webrick").run(a,Port:$p){|s|$r=s}}
%w[params session].map{|m|D.(m){q.send m}};a.use Session::Cookie;a.use Lock
D.(:before){|&b|a.use Rack::Config,&b};before{|e|q=Request.new e;q.params.dup.map{|k,v|params[k.to_sym]=v}}}
Something went wrong with that request. Please try again.