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 
    end
  end

  # 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
    end
  end

end

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 }
    end
  end

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

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

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.