Skip to content

Commit

Permalink
adding documentation to ActiveSupport::Concern ht:strictly typed for …
Browse files Browse the repository at this point in the history
…an awesome example

some minor documentation changes
  • Loading branch information
Neeraj Singh committed Aug 4, 2010
1 parent 7745f71 commit 589e697
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 1 deletion.
2 changes: 2 additions & 0 deletions activemodel/lib/active_model/serialization.rb
Expand Up @@ -61,6 +61,8 @@ module ActiveModel
# person.serializable_hash # => {"name"=>"Bob"}
# person.to_json # => "{\"name\":\"Bob\"}"
# person.to_xml # => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<serial-person...
#
# Valid options are <tt>:only</tt>, <tt>:except</tt> and <tt>:methods</tt> .
module Serialization
def serializable_hash(options = nil)
options ||= {}
Expand Down
4 changes: 3 additions & 1 deletion activesupport/lib/active_support/callbacks.rb
Expand Up @@ -568,7 +568,9 @@ def reset_callbacks(symbol)
#
# would trigger <tt>Audit#before_save</tt> instead. That's constructed by calling
# <tt>"#{kind}_#{name}"</tt> on the given instance. In this case "kind" is "before" and
# "name" is "save".
# "name" is "save". In this context treat ":kind" and ":name" as special thing where
# ":kind" refers to "callback type(before/after)" and ":name" refers to the method on
# which callbacks are being defined.
#
# A declaration like
#
Expand Down
35 changes: 35 additions & 0 deletions activesupport/lib/active_support/concern.rb
@@ -1,3 +1,38 @@
# A typical module looks like this
#
# module M
# def self.included(base)
# base.send(:extend, ClassMethods)
# base.send(:include, InstanceMethods)
# scope :foo, :conditions => {:created_at => nil}
# end
#
# module ClassMethods
# def cm; puts 'I am class method'; end
# end
#
# module InstanceMethods
# def im; puts 'I am instance method'; end
# end
# end
#
# By using <tt>ActiveSupport::Concern</tt> above module could be written as:
#
# module M
# extend ActiveSupport::Concern
#
# included do
# scope :foo, :conditions => {:created_at => nil}
# end
#
# module ClassMethods
# def cm; puts 'I am class method'; end
# end
#
# module InstanceMethods
# def im; puts 'I am instance method'; end
# end
# end
module ActiveSupport
module Concern
def self.extended(base)
Expand Down

0 comments on commit 589e697

Please sign in to comment.