Module: IgnoreNil

Defined in:
lib/ignore_nil.rb

Instance Method Summary collapse

Instance Method Details

#ignore_nil(&block) ⇒ Object

ignore NoMethodError on nil



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/ignore_nil.rb', line 3

def ignore_nil(&block)
  begin
    yield
  rescue NoMethodError, RuntimeError => e
    if (e.message =~ /You have a nil object when you didn't expect it/) ||
        (e.message =~ /undefined method `.*?' for nil:NilClass/) || (e.message =~ /^Called id for nil/)
      return nil
    else
      raise e
    end
  end
end