Project

rusprice

0.0
No commit activity in last 3 years
No release in over 3 years
Gem allows to convert number into string like 'X рублей Y копеек' accordingly russian language rules.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.14
~> 10.0
~> 3.4.0
~> 3.0
~> 0.9.8
 Project Readme

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" имеет два необязательных параметра:

  • Разделитель разрядов числа, например:
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.