sonic-pi

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

C++

Code. Music. Live.

Parslet.scope

Introduces a new capture scope. This means that all old captures stay
accessible, but new values stored will only be available during the block
given and the old values will be restored after the block. 

Example: 
  # :a will be available until the end of the block. Afterwards, 
  # :a from the outer scope will be available again, if such a thing 
  # exists. 
  scope { str('a').capture(:a) }

Source | Google | Stack overflow

Edit

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

cd sonic-pi

open app/server/ruby/vendor/parslet/lib/parslet.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-Parslet-scope-for-pr


# Commit to git

git add app/server/ruby/vendor/parslet/lib/parslet.rbgit commit -m "better docs for Parslet.scope"


# Open pull request

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

hub fork

git push <your name> -your-name--update-docs-Parslet-scope-for-pr

hub pull-request


# Celebrate!