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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 >>>>>>> [email protected] >>>>>>> http://rubyforge.org/mailman/listinfo/camping-list >>>>>>> >>>>>> _______________________________________________ >>>>>> Camping-list mailing list >>>>>> [email protected] >>>>>> http://rubyforge.org/mailman/listinfo/camping-list >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Dave >>>>> _______________________________________________ >>>>> Camping-list mailing list >>>>> [email protected] >>>>> http://rubyforge.org/mailman/listinfo/camping-list >>>>> >>>> _______________________________________________ >>>> Camping-list mailing list >>>> [email protected] >>>> http://rubyforge.org/mailman/listinfo/camping-list >>>> >>> >>> >>> >>> -- >>> Dave >>> _______________________________________________ >>> Camping-list mailing list >>> [email protected] >>> http://rubyforge.org/mailman/listinfo/camping-list >>> >> _______________________________________________ >> Camping-list mailing list >> [email protected] >> http://rubyforge.org/mailman/listinfo/camping-list > > > > -- > Dave > _______________________________________________ > Camping-list mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/camping-list > _______________________________________________ Camping-list mailing list [email protected] http://rubyforge.org/mailman/listinfo/camping-list

