вторник, 8 декабря 2009 г.

Ruby, 1000 чертей!

Ruby

Случается, что число чертей или других сущностей (и не обязательно – зловредных) переваливает далеко за 1000+. В моем случае это было количество товаров в тестовом приложении. Ровно 40305. Отобразить такое большое число на странице, не поломав при этом верстку, бывает довольно проблематично. Поэтому я сегодня добавил пару методов для сокращения размера оного.


Пример:

210 → 1024 → 1k+


Код написан на Ruby.

def bignum_format(number)
if number > 1000000 # == 10**6
(number/1000000).to_i.to_s+"M+"
elsif number > 1000 # == 10**3
(number/1000).to_i.to_s+"k+"
else
number
end
end

def html_bignum_format(number)
number > 1000 ? "<span class='bignum' title='#{number}'>"+bignum_format(number)+"</span>" : number
end


Стили CSS для сокращенного числа:

.bignum {
border-bottom:1px dashed;
cursor:help;
}


Вызов метода из хэлпера (helper):

<%= html_bignum_format(@items_count) %>


В качестве суффиксов M и k, для миллиона и тысячи соответственно, взял префиксы системы СИ.

0 Комментариев :

Отправить комментарий

Жги!