New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Array.second_to_last and Array.third_to_last access methods #23583
Conversation
Thanks for the pull request, and welcome! The Rails team is excited to review your changes, and you should hear from @pixeltrix (or someone else) soon. If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes. Please see the contribution instructions for more information. |
Good thinking. I've wanted this as well! I'd prefer to go with second_to_last + third_to_last, though. penultimate and antepenultimate are both long, cumbersome, and little used words. Welcome to Rails contributions! |
Thank you! Yeah, |
@brchristian this needs CHANGELOG entry. |
Thanks! Added activerecord and activesupport CHANGELOG entries in eaa1efe. |
Array.second_to_last and Array.third_to_last access methods
Next up: |
@jeremy my |
|
Reading @dhh's Rails Doctrine essay got me thinking a lot about Rails'
second
andfifth
accessor methods, which I (like DHH) love so much.One of the things that has occurred to me about once every month or two since I began working with Rails (back in 2008) is that it'd be nice to have similarly natural ways of accessing the end of an array or relation. We have
last
, but it ends there. It's slightly jarring (for me anyway) to go fromx.last
tox[-2]
.So, here's a proposal to add
penultimate
andantepenultimate
as well. Partly for the delight factor, partly because I think it would actually be useful. (At least, it would to me.)If
next_to_last
/second_to_last
andthird_to_last
are more natural, we can easily use those instead, or make them aliases.This is my first Rails PR, so I've tried to include everything (tests, documentation), but I'm happy to make alterations if I've missed anything.