What is a good way of sorting section number strings in Ruby. For example:
sections = ["10", "3", "4", "5", "6", "7", "8", "9", "2", "1", "1.1", "1.1.1", "1.1.2"]
# ["1", "1.1", "1.1.1", "1.1.2", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
If you have to deal with arbitrarily nested subsections then you could do something like this:
That implementation isn’t exactly quick due to the repeated
splitandmapbut you could roll your own Schwartzian Transform if it was too slow:Note that
Enumerable#sort_bydoes an internal Schwartzian Transform for you:So you could also let
sort_bytake care of some of the ugliness:and get something that is pretty easy to understand at a glance.