Sha256: b78ac25888cc65b5580f4c023e2d89540e60b0d230770cf719fa00e70abf8180
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
class Ramaze::Controller Page = Model::Page OldPage = Model::OldPage end class MainController < Ramaze::Controller def index(title = 'Main', version = nil) query = {:title => title} query[:version] = version.to_i if version model = version ? OldPage : Page if page = model[query] @text, @version = page.text, page.version else @text = "No Page known as '#{title}'" @version = false end end end class PageController < Ramaze::Controller map '/page' helper :aspect def create change "Created Page '%s'" do |title, text| Page.create(:title => title, :text => text, :version => 1) redirect R(MainController, title) end end def save change "Updated Page '%s'" do |title, text| page = Page[:title => title] page.backup page.text = text page.version += 1 page.save redirect R(MainController, title) end end def delete(title) page = Page[:title => title] page.backup page.delete end def rename(title, to) change("Renamed #{title} to '%s'", to) do |title, text| page = Page[:title => title] page.backup page.title = to page.version += 1 page.save end end def revert(title) page = Page[:title => title] p page page.revert redirect R(MainController, title) end before :create, :save do redirect_referer unless request.post? end private def change(message, redirect_to = '/') if title = request['title'] and text = request['text'] yield(title, text) message % title end redirect(R(MainController, redirect_to)) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ramaze-0.2.0 | examples/wikore/src/controller.rb |