RusPrice
ВНИМАНИЕ!!! Те, кто успел заюзать версию 0.1.0 обратите внимание, что в дальнейших версиях гема изменилась логика включения в проект. Начиная с версии 0.2.0 не надо создавать экземпляры RusPrice::Converter, достаточно вызвать метод "rusprice" на любом числе в вашем коде. Кроме того в версии 0.1.0 присутствует "проблема 999", исправленная в версии версии 0.2.1.
Гем позволяет преобразовать число, представляющее некую цену в строку вида "X рублей Y копеек". Форма слов "рубль" и "копейка" будет изменена согласно правилам русского языка в зависимости от данного числа. Метод "rusprice" добавляется в класс Numeric и может быть вызван на любом числе (см. "Примеры использования").
Примечание
- Отрицательное число будет преобразовано в положительное;
- Дробная часть будет округлена до двух знаков (используется метод "Float#round");
- Числа 0 и 0.0 преобразуются к строке "0 рублей";
- Число 0.001 преобразуются к строке "0 рублей";
- Число 0.005 преобразуются к строке "1 копейка";
- Число 0.999 преобразуется к строке "1 рубль".
Установка
Добавьте следующую строку в Gemfile:
gem 'rusprice'
Потом выполните команду:
$ bundle
Вы также можете установить rusprice в свою систему:
$ gem install rusprice
Примеры использования
123.45.rusprice
# "123 рубля 45 копеек"
98.rusprice
# "98 рублей"
0.72.rusprice
# "72 копейки"
Вспомогательные методы
Начиная с версии 1.0.0 метод "rusprice" имеет два необязательных параметра:
- Разделитель разрядов числа, например:
1234567890.98.rusprice ' '
# "1 234 567 890 рублей 98 копеек
1234567890.98.rusprice '_'
# "1_234_567_890 рублей 98 копеек
- Сокращение "рублей" и "копеек" до вида "руб." и "коп." соответственно, например:
1234567890.98.rusprice ' ', true
# "1 234 567 890 руб. 98 коп.
1234567890.98.rusprice '_', true
# "1_234_567_890 руб. 98 коп.
Кроме того начиная с версии 1.0.0 вводится несколько вспомогательных псевдо-методов:
- Метод "rp" является полным аналогом "rusprice";
12345.98.rp
# "12345 рублей 98 копеек
12345.98.rp ' '
# "12 345 рублей 98 копеек
12345.98.rp ' ', true
# "12 345 руб. 98 коп.
- Метод "ruspace" - это "rusprice" с установленным по умолчанию пробелом в качестве разделителя, ему можно передать аргумент true для сокращения "рублей" и "копеек" до вида "руб." и "коп.";
12345.98.ruspace
# "12 345 рублей 98 копеек
12345.98.ruspace true
# "12 345 руб. 98 коп.
- Метод "rushort" - это "rusprice" с установленным по умолчанию сокращением "рублей" и "копеек" до вида "руб." и "коп.", в качестве аргумента ему можно передать символ разделителя разрядов;
12345.98.rushort
# "12345 руб. 98 коп.
12345.98.rushort ' '
# "12 345 руб. 98 коп.
- Метод "rpss" - это "rusprice" с установленным по умолчанию пробелом в качестве разделителя и сокращением "рублей" и "копеек" до вида "руб." и "коп.".
12345.98.rpss
# "12 345 руб. 98 коп.
Лицензия
Этот гем распространяется по лицензии MIT.