6

I am trying to obtain access to Object#try in ruby.

I thought that just including activesupport would do the trick, but it doesn't.

irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require 'active_support'
=> true
irb(main):003:0> o = Object.new
=> #<Object:0x15d45d9>
irb(main):004:0> o.respond_to? :try
=> false
irb(main):005:0> 

How do I get access to Object#try?

rmk
  • 4,395
  • 3
  • 27
  • 32

1 Answers1

4

To get try all you need to do is require "active_support/core_ext/object/try". The source is here and because the NilClass is opened and try is defined to return nil, you get the chaining ability.

Samuel
  • 37,778
  • 11
  • 85
  • 87
  • @Christopher Maujean Your point? `try` isn't supposed to gobble up `NoMethodError`s, it's meant to stop you from calling any method on a `NilClass`. – Samuel Apr 01 '11 at 01:50