From b451de0d6de4df6bc66b274cec73b919f823d5ae Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Sat, 14 Aug 2010 02:13:00 -0300 Subject: Deletes trailing whitespaces (over text files only find * -type f -exec sed 's/[ \t]*$//' -i {} \;) --- activemodel/README.rdoc | 54 ++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) (limited to 'activemodel/README.rdoc') diff --git a/activemodel/README.rdoc b/activemodel/README.rdoc index 73c58a87db..9b96bfaba7 100644 --- a/activemodel/README.rdoc +++ b/activemodel/README.rdoc @@ -18,38 +18,38 @@ modules: class Person include ActiveModel::AttributeMethods - + attribute_method_prefix 'clear_' define_attribute_methods [:name, :age] - + attr_accessor :name, :age - + def clear_attribute(attr) send("#{attr}=", nil) end end - + person.clear_name person.clear_age - + {Learn more}[link:classes/ActiveModel/AttributeMethods.html] - + * Callbacks for certain operations class Person extend ActiveModel::Callbacks define_model_callbacks :create - + def create _run_create_callbacks do # Your create action methods here end end end - + This generates +before_create+, +around_create+ and +after_create+ class methods that wrap your create method. - + {Learn more}[link:classes/ActiveModel/CallBacks.html] * Tracking value changes @@ -66,36 +66,36 @@ modules: person.name = 'robert' person.save person.previous_changes # => {'name' => ['bob, 'robert']} - + {Learn more}[link:classes/ActiveModel/Dirty.html] * Adding +errors+ interface to objects Exposing error messages allows objects to interact with Action Pack helpers seamlessly. - + class Person - + def initialize @errors = ActiveModel::Errors.new(self) end - + attr_accessor :name attr_reader :errors - + def validate! errors.add(:name, "can not be nil") if name == nil end - + def ErrorsPerson.human_attribute_name(attr, options = {}) "Name" end - + end - + person.errors.full_messages # => ["Name Can not be nil"] - + person.errors.full_messages # => ["Name Can not be nil"] @@ -106,7 +106,7 @@ modules: class NamedPerson extend ActiveModel::Naming end - + NamedPerson.model_name # => "NamedPerson" NamedPerson.model_name.human # => "Named person" @@ -117,19 +117,19 @@ modules: ActiveModel::Observers allows your object to implement the Observer pattern in a Rails App and take advantage of all the standard observer functions. - + {Learn more}[link:classes/ActiveModel/Observer.html] * Making objects serializable ActiveModel::Serialization provides a standard interface for your object to provide +to_json+ or +to_xml+ serialization. - + s = SerialPerson.new s.serializable_hash # => {"name"=>nil} s.to_json # => "{\"name\":null}" s.to_xml # => "\n "My attribute" - + {Learn more}[link:classes/ActiveModel/Translation.html] * Validation support @@ -160,7 +160,7 @@ modules: person.valid? # => false {Learn more}[link:classes/ActiveModel/Validations.html] - + * Custom validators class Person @@ -168,13 +168,13 @@ modules: validates_with HasNameValidator attr_accessor :name end - + class HasNameValidator < ActiveModel::Validator def validate(record) record.errors[:name] = "must exist" if record.name.blank? end end - + p = ValidatorPerson.new p.valid? # => false p.errors.full_messages # => ["Name must exist"] -- cgit v1.2.3