1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Add some simple examples for unconventional AMo and AP use

This commit is contained in:
Yehuda Katz 2009-07-19 23:24:19 +09:00
parent b20d68446d
commit 45d41d8012
5 changed files with 89 additions and 0 deletions

View file

@ -0,0 +1,50 @@
$:.push "rails/activesupport/lib"
$:.push "rails/actionpack/lib"
require "action_controller"
class Kaigi < ActionController::Http
include AbstractController::Callbacks
include ActionController::RackConvenience
include ActionController::Renderer
include ActionController::Layouts
include ActionView::Context
before_filter :set_name
append_view_path "views"
def _action_view
self
end
def controller
self
end
DEFAULT_LAYOUT = Object.new.tap {|l| def l.render(*) yield end }
def _render_template_from_controller(template, layout = DEFAULT_LAYOUT, options = {}, partial = false)
ret = template.render(self, {})
layout.render(self, {}) { ret }
end
def index
render :template => "template"
end
def alt
render :template => "template", :layout => "alt"
end
private
def set_name
@name = params[:name]
end
end
app = Rack::Builder.new do
map("/kaigi") { run Kaigi.action(:index) }
map("/kaigi/alt") { run Kaigi.action(:alt) }
end.to_app
Rack::Handler::Mongrel.run app, :Port => 3000

View file

@ -0,0 +1 @@
+ <%= yield %> +

View file

@ -0,0 +1 @@
Hello <%= yield %> Goodbye

View file

@ -0,0 +1 @@
Hello <%= @name %>

View file

@ -0,0 +1,36 @@
$:.push "activesupport/lib"
$:.push "activemodel/lib"
require "active_model/validations"
require "active_model/deprecated_error_methods"
require "active_model/errors"
require "active_model/naming"
class Person
include ActiveModel::Validations
extend ActiveModel::Naming
validates_presence_of :name
attr_accessor :name
def initialize(attributes = {})
@name = attributes[:name]
end
def persist
@persisted = true
end
def new_record?
@persisted
end
def to_model() self end
end
person1 = Person.new
p person1.valid?
person1.errors
person2 = Person.new(:name => "matz")
p person2.valid?