sonic-pi

https://github.com/sonic-pi-net/sonic-pi

C++

Code. Music. Live.

NilClass#try

Calling +try+ on +nil+ always returns +nil+.
It becomes specially helpful when navigating through associations that may return +nil+.

  nil.try(:name) # => nil

Without +try+
  @person && [email protected]? && @person.children.first.name

With +try+
  @person.try(:children).try(:first).try(:name)

Source | Google | Stack overflow

Edit

git clone [email protected]:sonic-pi-net/sonic-pi.git

cd sonic-pi

open app/server/ruby/vendor/activesupport-7.0.6/lib/active_support/core_ext/object/try.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-NilClass-try-for-pr


# Commit to git

git add app/server/ruby/vendor/activesupport-7.0.6/lib/active_support/core_ext/object/try.rbgit commit -m "better docs for NilClass#try"


# Open pull request

gem install hub # on a mac you can `brew install hub`

hub fork

git push <your name> -your-name--update-docs-NilClass-try-for-pr

hub pull-request


# Celebrate!