aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext
diff options
context:
space:
mode:
Diffstat (limited to 'activesupport/lib/active_support/core_ext')
-rw-r--r--activesupport/lib/active_support/core_ext/module/delegation.rb21
-rw-r--r--activesupport/lib/active_support/core_ext/module/introspection.rb16
2 files changed, 21 insertions, 16 deletions
diff --git a/activesupport/lib/active_support/core_ext/module/delegation.rb b/activesupport/lib/active_support/core_ext/module/delegation.rb
index db6aea9b87..b73f4c2b59 100644
--- a/activesupport/lib/active_support/core_ext/module/delegation.rb
+++ b/activesupport/lib/active_support/core_ext/module/delegation.rb
@@ -3,14 +3,19 @@ require "active_support/core_ext/module/remove_method"
class Module
# Provides a delegate class method to easily expose contained objects' methods
# as your own. Pass one or more methods (specified as symbols or strings)
- # and the name of the target object as the final <tt>:to</tt> option (also a symbol
- # or string). At least one method and the <tt>:to</tt> option are required.
+ # and the name of the target object via the <tt>:to</tt> option (also a symbol
+ # or string). At least one method and the <tt>:to</tt> option are required.
#
# Delegation is particularly useful with Active Record associations:
#
# class Greeter < ActiveRecord::Base
- # def hello() "hello" end
- # def goodbye() "goodbye" end
+ # def hello
+ # "hello"
+ # end
+ #
+ # def goodbye
+ # "goodbye"
+ # end
# end
#
# class Foo < ActiveRecord::Base
@@ -74,9 +79,9 @@ class Module
# invoice.customer_name # => "John Doe"
# invoice.customer_address # => "Vimmersvej 13"
#
- # If the object to which you delegate can be nil, you may want to use the
- # :allow_nil option. In that case, it returns nil instead of raising a
- # NoMethodError exception:
+ # If the delegate object is +nil+ an exception is raised, and that happens
+ # no matter whether +nil+ responds to the delegated method. You can get a
+ # +nil+ instead with the +:allow_nil+ option.
#
# class Foo
# attr_accessor :bar
@@ -130,7 +135,7 @@ class Module
#{to}.__send__(#{method.inspect}, *args, &block) # client.__send__(:name, *args, &block)
rescue NoMethodError # rescue NoMethodError
if #{to}.nil? # if client.nil?
- #{on_nil}
+ #{on_nil} # return # depends on :allow_nil
else # else
raise # raise
end # end
diff --git a/activesupport/lib/active_support/core_ext/module/introspection.rb b/activesupport/lib/active_support/core_ext/module/introspection.rb
index 23a1063901..c08ad251dd 100644
--- a/activesupport/lib/active_support/core_ext/module/introspection.rb
+++ b/activesupport/lib/active_support/core_ext/module/introspection.rb
@@ -3,7 +3,7 @@ require 'active_support/inflector'
class Module
# Returns the name of the module containing this one.
#
- # p M::N.parent_name # => "M"
+ # M::N.parent_name # => "M"
def parent_name
unless defined? @parent_name
@parent_name = name =~ /::[^:]+\Z/ ? $`.freeze : nil
@@ -19,13 +19,13 @@ class Module
# end
# X = M::N
#
- # p M::N.parent # => M
- # p X.parent # => M
+ # M::N.parent # => M
+ # X.parent # => M
#
# The parent of top-level and anonymous modules is Object.
#
- # p M.parent # => Object
- # p Module.new.parent # => Object
+ # M.parent # => Object
+ # Module.new.parent # => Object
#
def parent
parent_name ? ActiveSupport::Inflector.constantize(parent_name) : Object
@@ -40,9 +40,9 @@ class Module
# end
# X = M::N
#
- # p M.parents # => [Object]
- # p M::N.parents # => [M, Object]
- # p X.parents # => [M, Object]
+ # M.parents # => [Object]
+ # M::N.parents # => [M, Object]
+ # X.parents # => [M, Object]
#
def parents
parents = []