Re: using Tilt requires full controller reference
Alright I updated camping to .405, did a pristine on Tilt (v1.0.1), removed the include X from my Base module and my controllers are still being found (no anonymous modules errors). Re: your test, I required camping/template and got this: NameError: uninitialized constant Riki::Base::Template /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:440:in `load_missing_constant' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:80:in `const_missing' (eval):13:in `lookup' (eval):12:in `fetch' (eval):12:in `lookup' (eval):15:in `render' ./riki/controllers.rb:11:in `get' (eval):28:in `send' (eval):28:in `service' (eval):28:in `catch' (eval):28:in `service' (eval):39:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/cookie.rb:37:in `call' (eval):43:in `call' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.405/bin/../lib/camping/server.rb:176:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:47:in `_call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:35:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in `call' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.405/bin/../lib/camping/server.rb:242:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb:13:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:14:in `run' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:155:in `start' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.405/bin/../lib/camping/server.rb:144:in `start' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:83:in `start' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.405/bin/camping:9 /usr/local/bin/camping:19:in `load' /usr/local/bin/camping:19 On Fri, Jul 23, 2010 at 5:44 PM, Magnus Holm wrote: > You'll have to agree that "include X" sounds so much better than > "include Controllers"? :-) > > Could you test one more thing for me? Without a Tilt patch, can you > add `require 'camping/templates'` right after `require 'camping'` and > check if it still works? > > Here you go: `gem install camping --source http://gems.judofyr.net/` > > // Magnus Holm > > > > On Fri, Jul 23, 2010 at 21:48, David Susco wrote: >> lol, at first I thought you were messing with me. X is the apps >> Controllers module, correct? >> >> Will I always have to do this when using Tilt? Or only until this >> patch makes it into a gem? >> >> Dave >> >> On Fri, Jul 23, 2010 at 3:09 PM, Magnus Holm wrote: >>> Wait, forget about that Tilt patch. Try this instead: >>> >>> module App >>> include X >>> end >>> >>> // Magnus Holm >>> >>> >>> >>> On Fri, Jul 23, 2010 at 18:01, David Susco wrote: Hey Magnus, I patched the files and it's still the same thing. Here's the backtrace, let me know if you want browser dump as well. 127.0.0.1 - - [23/Jul/2010 11:48:39] "GET /Home HTTP/1.1" 500 95353 0.3607 ArgumentError: Anonymous modules have no name to be referenced by /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:585:in `to_constant_name' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:391:in `qualified_name_for' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:104:in `const_missing' /var/www/apps/crud/riki/views/layout.haml:23:in `evaluate_source' /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:195:in `evaluate' /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:560:in `evaluate' /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:128:in `render' (eval):15:in `render' (eval):15:in `render' ./r
Re: using Tilt requires full controller reference
You'll have to agree that "include X" sounds so much better than "include Controllers"? :-) Could you test one more thing for me? Without a Tilt patch, can you add `require 'camping/templates'` right after `require 'camping'` and check if it still works? Here you go: `gem install camping --source http://gems.judofyr.net/` // Magnus Holm On Fri, Jul 23, 2010 at 21:48, David Susco wrote: > lol, at first I thought you were messing with me. X is the apps > Controllers module, correct? > > Will I always have to do this when using Tilt? Or only until this > patch makes it into a gem? > > Dave > > On Fri, Jul 23, 2010 at 3:09 PM, Magnus Holm wrote: >> Wait, forget about that Tilt patch. Try this instead: >> >> module App >> include X >> end >> >> // Magnus Holm >> >> >> >> On Fri, Jul 23, 2010 at 18:01, David Susco wrote: >>> Hey Magnus, I patched the files and it's still the same thing. Here's >>> the backtrace, let me know if you want browser dump as well. >>> >>> 127.0.0.1 - - [23/Jul/2010 11:48:39] "GET /Home HTTP/1.1" 500 95353 0.3607 >>> ArgumentError: Anonymous modules have no name to be referenced by >>> >>> /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:585:in >>> `to_constant_name' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:391:in >>> `qualified_name_for' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:104:in >>> `const_missing' >>> /var/www/apps/crud/riki/views/layout.haml:23:in `evaluate_source' >>> /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:195:in >>> `evaluate' >>> /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:560:in >>> `evaluate' >>> /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:128:in >>> `render' >>> (eval):15:in `render' >>> (eval):15:in `render' >>> ./riki/controllers.rb:85:in `get' >>> (eval):27:in `send' >>> (eval):27:in `service' >>> (eval):27:in `catch' >>> (eval):27:in `service' >>> (eval):38:in `call' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/cookie.rb:37:in >>> `call' >>> (eval):42:in `call' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:176:in >>> `call' >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:47:in >>> `_call' >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:35:in >>> `call' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in >>> `call' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in >>> `call' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:242:in >>> `call' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb:13:in >>> `call' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48:in >>> `service' >>> /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' >>> /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start' >>> /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:14:in >>> `run' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:155:in >>> `start' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:144:in >>> `start' >>> >>> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:83:in >>> `start' >>> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/camping:9 >>> /usr/local/bin/camping:19:in `load' >>> /usr/local/bin/camping:19 >>> >>> >>> On Wed, Jul 21, 2010 at 5:26 PM, Magnus Holm wrote: A reference to a controller is also a constant. Everything which starts with an uppercase letter is in fact a constant. Hm. Could you give me a backtrace? It seems like it's ActiveSupport's const_missing or something like that. You don't really need to read/understand all those comments in the patch. It's all related to the fact that Tilt defines the template as a method under the Tilt::CompileSite (which is included in each request in Camping) so when you call #render it actually c
Re: using Tilt requires full controller reference
lol, at first I thought you were messing with me. X is the apps Controllers module, correct? Will I always have to do this when using Tilt? Or only until this patch makes it into a gem? Dave On Fri, Jul 23, 2010 at 3:09 PM, Magnus Holm wrote: > Wait, forget about that Tilt patch. Try this instead: > > module App > include X > end > > // Magnus Holm > > > > On Fri, Jul 23, 2010 at 18:01, David Susco wrote: >> Hey Magnus, I patched the files and it's still the same thing. Here's >> the backtrace, let me know if you want browser dump as well. >> >> 127.0.0.1 - - [23/Jul/2010 11:48:39] "GET /Home HTTP/1.1" 500 95353 0.3607 >> ArgumentError: Anonymous modules have no name to be referenced by >> >> /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:585:in >> `to_constant_name' >> >> /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:391:in >> `qualified_name_for' >> >> /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:104:in >> `const_missing' >> /var/www/apps/crud/riki/views/layout.haml:23:in `evaluate_source' >> /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:195:in >> `evaluate' >> /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:560:in >> `evaluate' >> /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:128:in >> `render' >> (eval):15:in `render' >> (eval):15:in `render' >> ./riki/controllers.rb:85:in `get' >> (eval):27:in `send' >> (eval):27:in `service' >> (eval):27:in `catch' >> (eval):27:in `service' >> (eval):38:in `call' >> >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/cookie.rb:37:in >> `call' >> (eval):42:in `call' >> >> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:176:in >> `call' >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:47:in >> `_call' >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:35:in >> `call' >> >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in >> `call' >> >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in >> `call' >> >> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:242:in >> `call' >> >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb:13:in >> `call' >> >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48:in >> `service' >> /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' >> /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' >> /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' >> /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start' >> /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' >> /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start' >> /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each' >> /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start' >> /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start' >> /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start' >> >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:14:in >> `run' >> >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:155:in >> `start' >> >> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:144:in >> `start' >> /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:83:in >> `start' >> /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/camping:9 >> /usr/local/bin/camping:19:in `load' >> /usr/local/bin/camping:19 >> >> >> On Wed, Jul 21, 2010 at 5:26 PM, Magnus Holm wrote: >>> A reference to a controller is also a constant. Everything which >>> starts with an uppercase letter is in fact a constant. >>> >>> Hm. Could you give me a backtrace? It seems like it's ActiveSupport's >>> const_missing or something like that. >>> >>> You don't really need to read/understand all those comments in the >>> patch. It's all related to the fact that Tilt defines the template as >>> a method under the Tilt::CompileSite (which is included in each >>> request in Camping) so when you call #render it actually calls a >>> method called #_tilt_ajdbakjasjdbakjsbdk in the background. Calling a >>> method is way faster than instance_eval, so this gives a significant >>> speed improvement. The problem by defining the method under >>> Tilt::CompileSite is that constant lookup is now relative to >>> Tilt::CompileSite instead of your request. This is what the patch >>> fixes. >>> >>> // Magnus Holm >>> >>> >>> >>> On Wed, Jul 21, 2010 at 22:53, David Susco wrote: Thanks Magnus, I gave that a shot but I'm still ge
Re: using Tilt requires full controller reference
Wait, forget about that Tilt patch. Try this instead: module App include X end // Magnus Holm On Fri, Jul 23, 2010 at 18:01, David Susco wrote: > Hey Magnus, I patched the files and it's still the same thing. Here's > the backtrace, let me know if you want browser dump as well. > > 127.0.0.1 - - [23/Jul/2010 11:48:39] "GET /Home HTTP/1.1" 500 95353 0.3607 > ArgumentError: Anonymous modules have no name to be referenced by > > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:585:in > `to_constant_name' > > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:391:in > `qualified_name_for' > > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:104:in > `const_missing' > /var/www/apps/crud/riki/views/layout.haml:23:in `evaluate_source' > /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:195:in > `evaluate' > /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:560:in > `evaluate' > /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:128:in > `render' > (eval):15:in `render' > (eval):15:in `render' > ./riki/controllers.rb:85:in `get' > (eval):27:in `send' > (eval):27:in `service' > (eval):27:in `catch' > (eval):27:in `service' > (eval):38:in `call' > > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/cookie.rb:37:in > `call' > (eval):42:in `call' > > /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:176:in > `call' > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:47:in > `_call' > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:35:in > `call' > > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in > `call' > > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in > `call' > > /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:242:in > `call' > > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb:13:in > `call' > > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48:in > `service' > /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' > /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' > /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' > /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start' > /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' > /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start' > /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each' > /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start' > /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start' > /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start' > > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:14:in > `run' > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:155:in > `start' > > /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:144:in > `start' > /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:83:in > `start' > /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/camping:9 > /usr/local/bin/camping:19:in `load' > /usr/local/bin/camping:19 > > > On Wed, Jul 21, 2010 at 5:26 PM, Magnus Holm wrote: >> A reference to a controller is also a constant. Everything which >> starts with an uppercase letter is in fact a constant. >> >> Hm. Could you give me a backtrace? It seems like it's ActiveSupport's >> const_missing or something like that. >> >> You don't really need to read/understand all those comments in the >> patch. It's all related to the fact that Tilt defines the template as >> a method under the Tilt::CompileSite (which is included in each >> request in Camping) so when you call #render it actually calls a >> method called #_tilt_ajdbakjasjdbakjsbdk in the background. Calling a >> method is way faster than instance_eval, so this gives a significant >> speed improvement. The problem by defining the method under >> Tilt::CompileSite is that constant lookup is now relative to >> Tilt::CompileSite instead of your request. This is what the patch >> fixes. >> >> // Magnus Holm >> >> >> >> On Wed, Jul 21, 2010 at 22:53, David Susco wrote: >>> Thanks Magnus, >>> >>> I gave that a shot but I'm still getting an argument error: >>> >>> Anonymous modules have no name to be referenced by >>> >>> I'm trying to wrap my mind around what this patch is doing, but I >>> don't see the connection between constants and a reference to a >>> controller. >>> >>> Dave >>> >>> On Wed, Jul 21, 2010 at 3:29 PM, Magnus Holm wrote: This is a well-known bug in Tilt: http://grou
Re: using Tilt requires full controller reference
Hey Magnus, I patched the files and it's still the same thing. Here's the backtrace, let me know if you want browser dump as well. 127.0.0.1 - - [23/Jul/2010 11:48:39] "GET /Home HTTP/1.1" 500 95353 0.3607 ArgumentError: Anonymous modules have no name to be referenced by /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:585:in `to_constant_name' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:391:in `qualified_name_for' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:104:in `const_missing' /var/www/apps/crud/riki/views/layout.haml:23:in `evaluate_source' /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:195:in `evaluate' /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:560:in `evaluate' /usr/local/lib/ruby/gems/1.8/gems/tilt-1.0.1/lib/tilt.rb:128:in `render' (eval):15:in `render' (eval):15:in `render' ./riki/controllers.rb:85:in `get' (eval):27:in `send' (eval):27:in `service' (eval):27:in `catch' (eval):27:in `service' (eval):38:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/cookie.rb:37:in `call' (eval):42:in `call' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:176:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:47:in `_call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/lint.rb:35:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in `call' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:242:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb:13:in `call' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:48:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' /usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' /usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' /usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each' /usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start' /usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/webrick.rb:14:in `run' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:155:in `start' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/../lib/camping/server.rb:144:in `start' /usr/local/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/server.rb:83:in `start' /usr/local/lib/ruby/gems/1.8/gems/camping-2.0.392/bin/camping:9 /usr/local/bin/camping:19:in `load' /usr/local/bin/camping:19 On Wed, Jul 21, 2010 at 5:26 PM, Magnus Holm wrote: > A reference to a controller is also a constant. Everything which > starts with an uppercase letter is in fact a constant. > > Hm. Could you give me a backtrace? It seems like it's ActiveSupport's > const_missing or something like that. > > You don't really need to read/understand all those comments in the > patch. It's all related to the fact that Tilt defines the template as > a method under the Tilt::CompileSite (which is included in each > request in Camping) so when you call #render it actually calls a > method called #_tilt_ajdbakjasjdbakjsbdk in the background. Calling a > method is way faster than instance_eval, so this gives a significant > speed improvement. The problem by defining the method under > Tilt::CompileSite is that constant lookup is now relative to > Tilt::CompileSite instead of your request. This is what the patch > fixes. > > // Magnus Holm > > > > On Wed, Jul 21, 2010 at 22:53, David Susco wrote: >> Thanks Magnus, >> >> I gave that a shot but I'm still getting an argument error: >> >> Anonymous modules have no name to be referenced by >> >> I'm trying to wrap my mind around what this patch is doing, but I >> don't see the connection between constants and a reference to a >> controller. >> >> Dave >> >> On Wed, Jul 21, 2010 at 3:29 PM, Magnus Holm wrote: >>> This is a well-known bug in Tilt: >>> http://groups.google.com/group/tiltrb/browse_thread/thread/19fef5370c4d417f >>> >>> The thread includes a quite simple patch for 1.8, and a larger, very >>> hackish patch for 1.8+1.9. >>> >>> >>> // Magnus Holm >>> >>> >>> >>> On Wed, Jul 21, 2010 at 21:05, David Susco wrote: When using Tilt for views I need to compl
Re: using Tilt requires full controller reference
A reference to a controller is also a constant. Everything which starts with an uppercase letter is in fact a constant. Hm. Could you give me a backtrace? It seems like it's ActiveSupport's const_missing or something like that. You don't really need to read/understand all those comments in the patch. It's all related to the fact that Tilt defines the template as a method under the Tilt::CompileSite (which is included in each request in Camping) so when you call #render it actually calls a method called #_tilt_ajdbakjasjdbakjsbdk in the background. Calling a method is way faster than instance_eval, so this gives a significant speed improvement. The problem by defining the method under Tilt::CompileSite is that constant lookup is now relative to Tilt::CompileSite instead of your request. This is what the patch fixes. // Magnus Holm On Wed, Jul 21, 2010 at 22:53, David Susco wrote: > Thanks Magnus, > > I gave that a shot but I'm still getting an argument error: > > Anonymous modules have no name to be referenced by > > I'm trying to wrap my mind around what this patch is doing, but I > don't see the connection between constants and a reference to a > controller. > > Dave > > On Wed, Jul 21, 2010 at 3:29 PM, Magnus Holm wrote: >> This is a well-known bug in Tilt: >> http://groups.google.com/group/tiltrb/browse_thread/thread/19fef5370c4d417f >> >> The thread includes a quite simple patch for 1.8, and a larger, very >> hackish patch for 1.8+1.9. >> >> >> // Magnus Holm >> >> >> >> On Wed, Jul 21, 2010 at 21:05, David Susco wrote: >>> When using Tilt for views I need to completely specify the controller >>> within the template file. >>> >>> For example, in a Markaby view I can do this: >>> >>> URL(LogIn) >>> >>> But in a template file I have to do this: >>> >>> URL(MyApp::Controllers::LogIn) >>> >>> Is there anyway around this? >>> >>> -- >>> Dave >>> ___ >>> Camping-list mailing list >>> Camping-list@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/camping-list >>> >> ___ >> Camping-list mailing list >> Camping-list@rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > > > > -- > Dave > ___ > Camping-list mailing list > Camping-list@rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list > ___ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list
Re: using Tilt requires full controller reference
Thanks Magnus, I gave that a shot but I'm still getting an argument error: Anonymous modules have no name to be referenced by I'm trying to wrap my mind around what this patch is doing, but I don't see the connection between constants and a reference to a controller. Dave On Wed, Jul 21, 2010 at 3:29 PM, Magnus Holm wrote: > This is a well-known bug in Tilt: > http://groups.google.com/group/tiltrb/browse_thread/thread/19fef5370c4d417f > > The thread includes a quite simple patch for 1.8, and a larger, very > hackish patch for 1.8+1.9. > > > // Magnus Holm > > > > On Wed, Jul 21, 2010 at 21:05, David Susco wrote: >> When using Tilt for views I need to completely specify the controller >> within the template file. >> >> For example, in a Markaby view I can do this: >> >> URL(LogIn) >> >> But in a template file I have to do this: >> >> URL(MyApp::Controllers::LogIn) >> >> Is there anyway around this? >> >> -- >> Dave >> ___ >> Camping-list mailing list >> Camping-list@rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > ___ > Camping-list mailing list > Camping-list@rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list > -- Dave ___ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list
Re: using Tilt requires full controller reference
Here's an updated patch which include comments and doesn't leak on 1.9: http://gist.github.com/485111 // Magnus Holm On Wed, Jul 21, 2010 at 21:29, Magnus Holm wrote: > This is a well-known bug in Tilt: > http://groups.google.com/group/tiltrb/browse_thread/thread/19fef5370c4d417f > > The thread includes a quite simple patch for 1.8, and a larger, very > hackish patch for 1.8+1.9. > > > // Magnus Holm > > > > On Wed, Jul 21, 2010 at 21:05, David Susco wrote: >> When using Tilt for views I need to completely specify the controller >> within the template file. >> >> For example, in a Markaby view I can do this: >> >> URL(LogIn) >> >> But in a template file I have to do this: >> >> URL(MyApp::Controllers::LogIn) >> >> Is there anyway around this? >> >> -- >> Dave >> ___ >> Camping-list mailing list >> Camping-list@rubyforge.org >> http://rubyforge.org/mailman/listinfo/camping-list >> > ___ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list
Re: using Tilt requires full controller reference
This is a well-known bug in Tilt: http://groups.google.com/group/tiltrb/browse_thread/thread/19fef5370c4d417f The thread includes a quite simple patch for 1.8, and a larger, very hackish patch for 1.8+1.9. // Magnus Holm On Wed, Jul 21, 2010 at 21:05, David Susco wrote: > When using Tilt for views I need to completely specify the controller > within the template file. > > For example, in a Markaby view I can do this: > > URL(LogIn) > > But in a template file I have to do this: > > URL(MyApp::Controllers::LogIn) > > Is there anyway around this? > > -- > Dave > ___ > Camping-list mailing list > Camping-list@rubyforge.org > http://rubyforge.org/mailman/listinfo/camping-list > ___ Camping-list mailing list Camping-list@rubyforge.org http://rubyforge.org/mailman/listinfo/camping-list