sonic-pi

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

C++

Code. Music. Live.

String#at

If you pass a single Fixnum, returns a substring of one character at that
position. The first character of the string is at position 0, the next at
position 1, and so on. If a range is supplied, a substring containing
characters at offsets given by the range is returned. In both cases, if an
offset is negative, it is counted from the end of the string. Returns nil
if the initial offset falls outside the string. Returns an empty string if
the beginning of the range is greater than the end of the string.

  str = "hello"
  str.at(0)      # => "h"
  str.at(1..3)   # => "ell"
  str.at(-2)     # => "l"
  str.at(-2..-1) # => "lo"
  str.at(5)      # => nil
  str.at(5..-1)  # => ""

If a Regexp is given, the matching portion of the string is returned.
If a String is given, that given string is returned if it occurs in
the string. In both cases, nil is returned if there is no match.

  str = "hello"
  str.at(/lo/) # => "lo"
  str.at(/ol/) # => nil
  str.at("lo") # => "lo"
  str.at("ol") # => nil

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/string/access.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-String-at-for-pr


# Commit to git

git add app/server/ruby/vendor/activesupport-7.0.6/lib/active_support/core_ext/string/access.rbgit commit -m "better docs for String#at"


# Open pull request

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

hub fork

git push <your name> -your-name--update-docs-String-at-for-pr

hub pull-request


# Celebrate!