Some useful number helpers in Rails
In my previous blog on Rails I discussed about some useful text helpers for rails based on my work experience on Scrumpad. Now I would like to shade on some useful number helpers in rails which made my life easy during the project work. Let’s dive into some samples!
Software developers do the complex thing and forget about small ones. Sometimes after design discussions, writing a lot of lines of codes with complex logic create a number. Say, bill of a particular company for the month of January! When you will deliver the result to your product owner with pride, he will take a look at the number (you are expecting a pat on your back ) and ignoring your days of work may start talking with an unsatisfied face that “You forgot the currency. Is it in pound? I will be damn rich, then”. Now you come down to the earth! What a silly thing it was using number helpers in rails!! These methods are from ActionView::Helpers::NumberHelper
number_to_currency(1234.506) # $1234.51 number_to_currency(1234.506, :precision=&amp;gt;3) # $1234.506 number_to_currency(1234.506, :precision=&amp;gt;3, :unit=&amp;gt;”&amp;amp;pound”) # &amp;amp;pound1234.506
A lot of systems deal with user interaction now a days. Attachment is an important part of it. Users like to upload files like images, texts, documents and so on. Beside a beautiful icon of that attachment, it is nice to mention the size of that file. It can be easily done by rails using this function.
number_to_human_size(123) # 123 Bytes number_to_human_size(1234) # 123 KB number_to_human_size(1234567) # 1.2 MB
It can be used with precision and separator, too.
number_to_human_size(1234567, :precision=&amp;gt;2, :separator=&amp;gt;’,’) # 1,18 MB
It formats a number as percentage strings. At some places discount is calculated dynamically based on number of active users. Here comes a useful helper.
It formats a phone number to US phone number format. Once can customize it, too. It takes area code, country code, extension as option hash.
Let’s give some example:
number_to_phone(1115678) # 111-5678 number_to_phone(1114567890, :area_code=&amp;gt;true) # (111) 456-7890 number_to_phone(1114567890, :area_code=&amp;gt;true, :extension=&amp;gt;999) # (111) 456-7890 x 999 number_to_phone(1114567890, :country_code=&amp;gt;1 # +1- 111 - 456-7890
So, based upon your requirement you can show the user phone number.
That’s it for today. I will come shortly with more helper that I usually use! Happy coding 🙂
Contributor: Fuad Bin Omar, COO, Nascenia