Skip to content

Instantly share code, notes, and snippets.

@ivey
Created September 12, 2008 01:14
Show Gist options
  • Save ivey/10355 to your computer and use it in GitHub Desktop.
Save ivey/10355 to your computer and use it in GitHub Desktop.
require 'web'
urls = {
'/', 'index',
'/users', 'users',
'/user/(\d+)', 'user',
'/users/new', 'new_user',
'/user/(\d+)/edit', 'edit_user'
}
class Index
def get
Web.template "index"
end
end
class Users
def get
@users = User.find(:all)
Web.template "users/index", @users
end
def post
@user = User.new(params[:user])
if @user.save
Web.redirect "/user/#{@user.id}"
else
Web.redirect "/users/new", :internal => true, :message => "FAIL"
end
end
end
class User < ActiveRecord::Base
belongs_to :foo
validates_presence_of :bar
def get(id)
@user = class.find(id)
Web.template "user", @user
end
def put(id)
@user = class.find(id)
@user.update_attributes(params[:user])
if @user.save
Web.redirect "/user/#{@user.id}", :message => "UPDATED"
else
Web.redirect "/user/#{@user.id}/edit", :message => "FAIL", :internal => true
end
end
def delete(id)
super
Web.redirect "/users"
end
end
class NewUser
def get
@user = User.new
Web.template "users/new", @user
end
end
class EditUser
def get(id)
@user = User.find(id)
Web.template "users/edit", @user
end
end
Web.start(urls, :port => 8765)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment