Sha256: f644ec4e42f6d08a6023cc6a82b77e037cd0a6ebd743ace32b652a78b6ced65f
Contents?: true
Size: 1.19 KB
Versions: 28
Compression:
Stored size: 1.19 KB
Contents
# Copied from Rails ActiveSupport 2.3.18: # activesupport-2.3.18/lib/active_support/core_ext/try.rb # # == License # Active Support is released under the MIT license. # 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 def try(*args) nil end end
Version data entries
28 entries across 28 versions & 1 rubygems