require 'rubygems' require_gem 'camping', '>= 1.5' Camping.goes :RollCall module RollCall module Models class Signee < Base validates_presence_of :name validates_uniqueness_of :name end class AddSignees < V 1.0 def self.up create_table :rollcall_signees do |t| t.column :id, :integer t.column :name, :text t.column :created_at, :datetime end end def self.down drop_table :rollcall_signees end end end module Controllers class Index < R '/' def get @signees = Signee.find :all, :order => 'created_at DESC' render :index end def post @signee = Signee.new :name => input.signee if @signee.save redirect Index else render :index end end end end module Views def layout xhtml_strict do head do title 'Camping Roll Call' end body do yield end end end def _list table.list do @signees.each do |signee| tr do td { signee.name } end end end end def _form form :action => R(Index), :method => 'post' do fieldset do div do div { label 'Name' } input :type => 'text', :name => 'signee', :value => '' end end div.submit do input :type => 'submit', :value => 'Present!' end end end def index h1 'Welcome to Camping Roll Call' _list _form end end def self.create RollCall::Models.create_schema end end