aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorPramod Sharma <pramod_sharma@outlook.com>2014-09-25 19:48:26 +0530
committerZachary Scott <e@zzak.io>2014-10-18 12:59:51 -0700
commit68fd1a3b2310d7054cbd13432c6e1273e61c7d2b (patch)
tree5f63de316bc5de03edb31e4699d137607d3857bc /activesupport
parent0ab075e75f58bf403f7ebe20546c7005f35db1f6 (diff)
downloadrails-68fd1a3b2310d7054cbd13432c6e1273e61c7d2b.tar.gz
rails-68fd1a3b2310d7054cbd13432c6e1273e61c7d2b.tar.bz2
rails-68fd1a3b2310d7054cbd13432c6e1273e61c7d2b.zip
[ci skip] Add Doc of with_options for the case when inherited default options and original options have same keys
Diffstat (limited to 'activesupport')
-rw-r--r--activesupport/lib/active_support/core_ext/object/with_options.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/core_ext/object/with_options.rb b/activesupport/lib/active_support/core_ext/object/with_options.rb
index 42e87c4424..7d38e1d134 100644
--- a/activesupport/lib/active_support/core_ext/object/with_options.rb
+++ b/activesupport/lib/active_support/core_ext/object/with_options.rb
@@ -47,7 +47,21 @@ class Object
# end
#
# <tt>with_options</tt> can also be nested since the call is forwarded to its receiver.
- # Each nesting level will merge inherited defaults in addition to their own.
+ #
+ # NOTE: Each nesting level will merge inherited defaults in addition to their own.
+ #
+ # class Post < ActiveRecord::Base
+ # with_options if: :persisted?, length: { minimum: 50 } do
+ # validates :content, if: -> { content.present? }
+ # end
+ # end
+ #
+ # The code is equivalent to:
+ #
+ # validates :content, length: { minimum: 50 }, if: -> { content.present? }
+ #
+ # Hence the inherited default for `if` key is ignored.
+ #
def with_options(options, &block)
option_merger = ActiveSupport::OptionMerger.new(self, options)
block.arity.zero? ? option_merger.instance_eval(&block) : block.call(option_merger)