2011-03-31 15 views
6

Estoy tratando de obtener acceso a Object # try in ruby.Obtener acceso a Object # try

Pensé que solo incluir activesupport haría el truco, pero no es así.

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> 

¿Cómo puedo obtener acceso a Object#try?

Respuesta

4

Para probar todo lo que necesita hacer es require "active_support/core_ext/object/try". El source is here y dado que el NilClass está abierto y try está definido para devolver nada, se obtiene la capacidad de encadenamiento.

+0

@Christopher Maujean Tu punto? 'try' no debe engullir' NoMethodError's, sino que evita que invoques cualquier método en 'NilClass'. – Samuel

+0

aparentemente he leído mal la documentación. –