Categories: None [Edit]
ignore_nil
The plugin is really rather simple; here's the ignore_nil method:
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
What's interesting about this is it catches both NoMethodError and RuntimeError, both of which
can occur if a method unexpectedly returned nil and you called a method on it, but *ONLY* if
the error message matches! This means legitimate NoMethodError and RuntimeError messages will
not be bothered by ignore_nil, and will still raise in your application as you expect.
I've used this in a production application since about mid/late 2008, I'd consider it very stable.
Feedback welcome!
Total
Ranking: 94,898 of 188,853
Downloads: 8,761
Daily
Ranking: 111,003 of 188,837
Downloads: 0
Downloads Trends
Ranking Trends
Num of Versions Trends
Popular Versions (Major)
Popular Versions (Major.Minor)
Depended by
| Rank | Downloads | Name |
|---|
Depends on
| Rank | Downloads | Name |
|---|
Owners
| # | Gravatar | Handle |
|---|---|---|
| 1 | #1439 |