SqueezeBox is a simple file system based routing framework for erubis templates. It aims for a couple of niceties as well: Instead of putting your logic inside your template, like you would with PHP, SqueezeBox recognizes a separate logic file to be called before it loads the template. This allows you room to load ActiveRecord models or do calculations. These logic files return to the webserver the last line of their execution. If render() is the last line, it will load the template associated with that logic file. If a string containing, say, JSON is returned, then the JSON will be the body of the response and the template ignored. In fact, any object that contains a read method can be returned and the SqueezeBox will stream the response. (This cute behavior is stolen from Merb.) A file called initialize.rb is loaded when the website starts, in there you can define classes or functions that will be used throughout the site. database.yml is looked for in the case you plan on using ActiveRecord. There are several predefined Ruby exceptions which correspond to common HTTP errors like NotFound and MethodNotAllowed, and Forbidden. For example one could do: raise MethodNotAllowed unless @request.post? Raising one of these exceptions will display a default error page - but these error pages can be overridden by placing a template, for example, at document_root/exceptions/not_found.erb or document_root/exceptions/method_not_allowed.erb The default error message can be overridden at document_root/exceptions/index.erb. (Another behavior stolen from Merb) Please try it out! Thanks! http://four.livejournal.com/789870.html http://s3.amazonaws.com/four.livejournal/20070813/SqueezeBox-0.0.0.tgz http://tinyclouds.org/svn/squeeze_box/trunk ry
On Mon, 13 Aug 2007 20:06:51 +0200 "ry dahl" <ry at tinyclouds.org> wrote:> SqueezeBox is a simple file system based routing framework for erubis > templates. > > It aims for a couple of niceties as well:Looks like fun. Is there anything in particular you''re doing with it, or just for fun.> Instead of putting your logic inside your template, like you would > with PHP, SqueezeBox recognizes a separate logic file to be called > before it loads the template. This allows you room to load > ActiveRecord models or do calculations. These logic files return to > the webserver the last line of their execution. If render() is the > last line, it will load the template associated with that logic file. > If a string containing, say, JSON is returned, then the JSON will be > the body of the response and the template ignored. In fact, any object > that contains a read method can be returned and the SqueezeBox will > stream the response. (This cute behavior is stolen from Merb.)Ok, now you say this is a handler. I haven''t checked it quite yet, but what''s the possibility of a rails project installing this for the parts of a site that need to be quick. I believe this was the original intent with merb, but then it became its own rails-clone. I''m still looking for something tiny that can piggy-back on rails. Kind of like Master Blaster in that really bad Mad Max movie with Tina Turner.> Please try it out! Thanks!I''ll play with it today. Might actually need something like this for the Utu project. -- Zed A. Shaw - Hate: http://savingtheinternetwithhate.com/ - Good: http://www.zedshaw.com/ - Evil: http://yearofevil.com/