I've only ever used Ruby's
String#split
with the delimiter argument (e.g. "this string has spaces".split(" ")
).
However, this method has another argument you can specify; the limit
argument. With limit
, you can limit the number of times that the split
happens.
"this string has many spaces".split(" ")
# => ["this", "string", "has", "many", "spaces"]
"this string has many spaces".split(" ", 3)
# => ["this", "string", "has many spaces"]
There are surely many use cases, but one that stands out (from The Rails 4 Way) is for splitting a name into first and last names.
"Josh Branchaud".split(" ", 2)
# => ["Josh", "Branchaud"]
"David Heinemeier Hansson".split(" ", 2)
# => ["David", "Heinemeier Hansson"]
This really simplifies the code that is needed to make the following example work:
def create_user(name)
user = User.new
user.first_name, user.last_name = name.split(" ", 2)
user.save
end