Skip to content

Instantly share code, notes, and snippets.

@JakubOboza
Created December 1, 2008 09:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JakubOboza/30690 to your computer and use it in GitHub Desktop.
Save JakubOboza/30690 to your computer and use it in GitHub Desktop.
module Yeti
def self.included(base)
base.send :extend, ClassMethods
end
module ClassMethods
def crud(klass,opts = {})
class_variable_set(:@@model,klass)
self.class_eval CRUD_CODE
end
end
CRUD_CODE = "
def index
@@model.all
render
end
def show
@result = @@model.get(params[:id])
render
end
def edit
@result = @@model.get(params[:id])
render
end
def update
@result = @@model.get(params[:id])
if @result.update_attributes(params[:user])
redirect :index
else
render :new
end
end
def create
@result = @@model.new(params[:user])
if @result.save
redirect :index
else
render :new
end
end
def new
@result = @@model.new
render
end
def destroy
@result = @@model.get(params[:id])
@result.destroy
redirect :index
end
"
end
# class Application < Merb::Controller
# include Yeti
# end
#
# class Kiszonka < Application
# crud User
# end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment