| Class | Rewrite::Prelude::Try |
| In: |
lib/rewrite/prelude/try.rb
|
| Parent: | SexpProcessor |
Adds a polite method invocation to Ruby:
with(try) do
...
@phone = Location.find(:first, ...elided... ).try.phone
...
end
Based on "try()":ozmm.org/posts/try.html by Chris Wanstrath
It also works with parameters, blocks, and procs passed as blocks.
Works by rewriting expressions like:
numbers.try(:sum)
Into:
lambda { |receiver, message|
receiver.send message if receiver.respond_to? message
}.call(numbers, :sum)