I tried The Camping Short, Short Example for the ruby camping framework.
#!ruby
#!/usr/local/bin/ruby -rubygems
require 'camping'
Camping.goes :HomePage
module HomePage::Controllers
# The root slash 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://code.whytheluckystiff.net/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
It seems to be very easy to create the separat pages.
The example above generates one entry page. (the index method in Views) and one additional page (sample method).
As far as i should know it from rails, it uses the same MVC pattern and theres is a similar syntax. Just the Views are in native ruby without mixing up with html.
But maybe that will appear later on.
The next step is to see howto connect ruby with some inner sys-functions of nexenta ^^.
Blogged with the Flock Browser