Sha256: 5bb1a960f986e5984d7893bc17d579728e4fc23384972c134035cf99c4f8eae3

Contents?: true

Size: 1.03 KB

Versions: 55

Compression:

Stored size: 1.03 KB

Contents

class Object
  # Invokes the method identified by the symbol +method+, passing it any arguments
  # and/or the block specified, just like the regular Ruby <tt>Object#send</tt> does.
  #
  # *Unlike* that method however, a +NoMethodError+ exception will *not* be raised
  # and +nil+ will be returned instead, if the receiving object is a +nil+ object or NilClass.
  #
  # ==== Examples
  #
  # Without try
  #   @person && @person.name
  # or
  #   @person ? @person.name : nil
  #
  # With try
  #   @person.try(:name)
  #
  # +try+ also accepts arguments and/or a block, for the method it is trying
  #   Person.try(:find, 1)
  #   @people.try(:collect) {|p| p.name}
  #--
  # This method definition below is for rdoc purposes only. The alias_method call
  # below overrides it as an optimization since +try+ behaves like +Object#send+,
  # unless called on +NilClass+.
  def try(method, *args, &block)
    send(method, *args, &block)
  end
  remove_method :try
  alias_method :try, :__send__
end

class NilClass #:nodoc:
  def try(*args)
    nil
  end
end

Version data entries

55 entries across 55 versions & 5 rubygems

Version Path
social_url_stats-0.0.1 vendor/ruby/1.9.1/gems/activesupport-3.0.0/lib/active_support/core_ext/object/try.rb
activesupport-3.0.20 lib/active_support/core_ext/object/try.rb
activesupport-3.0.19 lib/active_support/core_ext/object/try.rb
activesupport-3.0.18 lib/active_support/core_ext/object/try.rb
activesupport-3.0.17 lib/active_support/core_ext/object/try.rb
activesupport-3.0.16 lib/active_support/core_ext/object/try.rb
activesupport-3.0.15 lib/active_support/core_ext/object/try.rb
activesupport-3.0.14 lib/active_support/core_ext/object/try.rb
activesupport-3.0.13 lib/active_support/core_ext/object/try.rb
activesupport-3.0.13.rc1 lib/active_support/core_ext/object/try.rb
activesupport-3.0.12 lib/active_support/core_ext/object/try.rb
activesupport-3.0.12.rc1 lib/active_support/core_ext/object/try.rb
activesupport-3.0.11 lib/active_support/core_ext/object/try.rb
messagebus_ruby_api-0.4.7 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/object/try.rb
messagebus_ruby_api-0.4.4 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/object/try.rb
activesupport-3.0.10 lib/active_support/core_ext/object/try.rb
activesupport-3.0.10.rc1 lib/active_support/core_ext/object/try.rb
activesupport-3.0.9 lib/active_support/core_ext/object/try.rb
activesupport-3.0.9.rc5 lib/active_support/core_ext/object/try.rb
activesupport-3.0.9.rc4 lib/active_support/core_ext/object/try.rb