RusPrice

Gem Version Build Status

ВНИМАНИЕ!!! Те, кто успел заюзать версию 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" имеет два необязательных параметра:

  • Разделитель разрядов числа, например: ```ruby 1234567890.98.rusprice ' ' # "1 234 567 890 рублей 98 копеек

1234567890.98.rusprice '_'

"1_234_567_890 рублей 98 копеек


 - Сокращение "рублей" и "копеек" до вида "руб." и "коп." соответственно, например:
```ruby
1234567890.98.rusprice ' ', true
# "1 234 567 890 руб. 98 коп.

1234567890.98.rusprice '_', true
# "1_234_567_890 руб. 98 коп.

Кроме того начиная с версии 1.0.0 вводится несколько вспомогательных псевдо-методов:

  • Метод "rp" является полным аналогом "rusprice"; ```ruby 12345.98.rp # "12345 рублей 98 копеек

12345.98.rp ' ' # "12 345 рублей 98 копеек

12345.98.rp ' ', true # "12 345 руб. 98 коп.

 - Метод "ruspace" - это "rusprice" с установленным по умолчанию пробелом в качестве разделителя, ему можно передать аргумент true для сокращения "рублей" и "копеек" до вида "руб." и "коп.";
```ruby
12345.98.ruspace
# "12 345 рублей 98 копеек

12345.98.ruspace true
# "12 345 руб. 98 коп. 
  • Метод "rushort" - это "rusprice" с установленным по умолчанию сокращением "рублей" и "копеек" до вида "руб." и "коп.", в качестве аргумента ему можно передать символ разделителя разрядов; ```ruby 12345.98.rushort # "12345 руб. 98 коп.

12345.98.rushort ' '

"12 345 руб. 98 коп.


 - Метод "rpss" - это "rusprice" с установленным по умолчанию пробелом в качестве разделителя и сокращением "рублей" и "копеек" до вида "руб." и "коп.".
```ruby
12345.98.rpss
# "12 345 руб. 98 коп.

Лицензия

Этот гем распространяется по лицензии MIT.