Short example

phmongeau edited this page Aug 13, 2010 · 2 revisions

Camping encourages short, elegant applications. In this example, we’re going to skip the database and put together a simple home page with a few of your favorite links.

The site can be stored in a single file called homepage.rb. Run it like: camping homepage.rb

require 'camping'
Camping.goes :HomePage

module HomePage::Controllers

  # The index page shows the `index' view.
  class Index < R '/'
    def get
      render :index 

  # Any other page name gets sent to the view
  # of the same name.
  #   /index -> Views#index
  #   /sample -> Views#sample
  class Page < R '/(\w+)'
    def get(page_name)
      render page_name


module HomePage::Views
  # If you have a `layout' method like this, it
  # will wrap the HTML in the other methods.  The
  # `self << yield' is where the HTML is inserted.
  def layout
    html do
      title { 'My HomePage' }
      body { self << yield }

  # The `index' view.  Inside your views, you express
  # the HTML in Ruby.  See
  def index
    p 'Hi my name is Charles.'
    p 'Here are some links:'
    ul do
     li { a 'Google', :href => '' }
     li { a 'A sample page', :href => '/sample' }

  # The `sample' view.
  def sample
    p 'A sample page'

Further examples

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.