Last active
December 29, 2015 00:09
-
-
Save maxjacobson/7584201 to your computer and use it in GitHub Desktop.
I was always pet peeved that Array#second didn't exist when Array#first and Array#last do wouldn't this be fun? haha
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# gem install numbers_in_words | |
require 'numbers_in_words' | |
require 'numbers_in_words/duck_punch' | |
class Array | |
def method_missing(m) | |
self[m.to_s.gsub(/\_/, ' ').in_numbers - 1] | |
end | |
end | |
nums = (1..100).to_a | |
puts nums.first #=> 1 | |
puts nums.second #=> 2 | |
puts nums.third #=> 3 | |
puts nums.fourth #=> 4 | |
puts nums.thirty_five #=> 35 | |
puts nums.thirty_fifth #=> 30 (bug) | |
# I just want to acknowledge that I'm using `#=>` incorrectly. That's supposed to indicate the return value, but I'm using it to indicate the output. |
so that means I can use .second
in my rails apps, who knew?
but I maintain that it's a bug because the interface is inconsistent. I don't mean it's a bug in that gem, I mean a bug in my implementation. if I can do [].second
then I should be able to do [].thirty_fifth
Yes, if you're tying the bug to your interface, then I agree completely. We both now know that the numbers_to_words
gem cannot handle "-nd" || "-th
processing, so that's something you'll have to account for.
Either way, this is a cool implementation and was a good excuse to pry
into someone else's code.
GET IT?! ❤️ ❤️ ❤️
@cjlwired thanks for breaking it down btw, I never would have thought it was leaning on active support if you hadn't dug into the source <3
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
oh, I see now that you said that