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

Merged
merged 3 commits into from Feb 10, 2016

Conversation

Projects
None yet
8 participants
@brchristian
Contributor

brchristian commented Feb 10, 2016

Reading @dhh's Rails Doctrine essay got me thinking a lot about Rails' second and fifth 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 from x.last to x[-2].

So, here's a proposal to add penultimate and antepenultimate 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 and third_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.

@rails-bot

This comment has been minimized.

Show comment
Hide comment
@rails-bot

rails-bot Feb 10, 2016

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.

rails-bot commented Feb 10, 2016

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.

@dhh

This comment has been minimized.

Show comment
Hide comment
@dhh

dhh Feb 10, 2016

Member

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!

Member

dhh commented Feb 10, 2016

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!

@brchristian

This comment has been minimized.

Show comment
Hide comment
@brchristian

brchristian Feb 10, 2016

Contributor

Thank you! Yeah, second_to_last + third_to_last sound good to me too, and I've adjusted accordingly in e8aeda2.

Contributor

brchristian commented Feb 10, 2016

Thank you! Yeah, second_to_last + third_to_last sound good to me too, and I've adjusted accordingly in e8aeda2.

@brchristian brchristian changed the title from allow Array.penultimate and Array.antepenultiate access methods to allow Array.second_to_last and Array.third_to_last access methods Feb 10, 2016

@brchristian brchristian changed the title from allow Array.second_to_last and Array.third_to_last access methods to Array.second_to_last and Array.third_to_last access methods Feb 10, 2016

@vipulnsward

This comment has been minimized.

Show comment
Hide comment
@vipulnsward

vipulnsward Feb 10, 2016

Member

@brchristian this needs CHANGELOG entry.

Member

vipulnsward commented Feb 10, 2016

@brchristian this needs CHANGELOG entry.

@brchristian

This comment has been minimized.

Show comment
Hide comment
@brchristian

brchristian Feb 10, 2016

Contributor

Thanks! Added activerecord and activesupport CHANGELOG entries in eaa1efe.

Contributor

brchristian commented Feb 10, 2016

Thanks! Added activerecord and activesupport CHANGELOG entries in eaa1efe.

dhh added a commit that referenced this pull request Feb 10, 2016

Merge pull request #23583 from brchristian/penultimate
Array.second_to_last and Array.third_to_last access methods

@dhh dhh merged commit 074ff5c into rails:master Feb 10, 2016

@jeremy

This comment has been minimized.

Show comment
Hide comment
@jeremy

jeremy Feb 10, 2016

Member

Next up: #the_end and #beginning_of_the_end 😁

Member

jeremy commented Feb 10, 2016

Next up: #the_end and #beginning_of_the_end 😁

@kaspth

This comment has been minimized.

Show comment
Hide comment
@kaspth

kaspth Feb 10, 2016

Member

@jeremy my 💸 is on #apocalypse and #rapture respectively.

Member

kaspth commented Feb 10, 2016

@jeremy my 💸 is on #apocalypse and #rapture respectively.

@jeremy

This comment has been minimized.

Show comment
Hide comment
@jeremy

jeremy Feb 10, 2016

Member

🤘

Member

jeremy commented Feb 10, 2016

🤘

@brchristian brchristian deleted the brchristian:penultimate branch Mar 9, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment