Brochure ======== Brochure is a Rack application for serving static sites with ERB templates (or any of the many [template languages supported by Tilt](http://github.com/rtomayko/tilt/blob/master/TEMPLATES.md#readme)). It's the good parts of PHP wrapped up in a little Ruby package — perfect for serving the marketing site for your Rails app. Sample application structure: templates/ help/ index.html.erb index.html.erb shared/ _header.html.erb _footer.html.erb signup.html.erb config.ru public/ ... Sample `config.ru`: require "brochure" root = File.dirname(__FILE__) run Brochure.app(root) ## URL mapping and template rendering URLs are automatically mapped to template names: * `/` → `templates/index.html.erb` * `/signup` → `templates/signup.html.erb` * `/help/` → `templates/help/index.html.erb` Templates can render partials. A partial is denoted by a leading underscore in its filename. So `<%= render "shared/header" %>` will render `templates/shared/_header.html.erb` inline. Templates have access to the Rack environment via the `env` method and to the Brochure application via the `application` method. Additionally, a `Rack::Request` wrapper around the Rack environment is available via the `request` method. You can print HTML-escaped strings in your templates with the `h` helper. ## Custom helper methods and instance variables You can make additional helper methods and instance variables available to your templates. Helper methods live in Ruby modules and can be included with the `:helpers` option to `Brochure.app`: module AssetHelper def asset_path(filename) local_path = File.join(application.asset_root, filename) digest = Digest::MD5.hexdigest(IO.read(local_path)) "/#{filename}?#{digest}" end end run Brochure.app(root, :helpers => [AssetHelper]) Similarly, instance variables can be defined with the `:assigns` option: run Brochure.app(root, :assigns => { :domain => "37signals.com" }) # Installation $ gem install brochure Requires [Hike](http://github.com/sstephenson/hike), [Rack](http://rack.rubyforge.org/), and [Tilt](http://github.com/rtomayko/tilt). # License Copyright (c) 2010 Sam Stephenson and Josh Peek. Released under the MIT license. See `LICENSE` for details.