как мне настроить rounding_method с драгоценным камнем Ruby Money? - PullRequest
0 голосов
/ 26 марта 2012

Мы используем драгоценный камень Ruby Money.Это прекрасно работает.

Теперь у нас есть новое требование округлять сумму конвертированной валюты до целого доллара (без копеек).

Я нашел метод округления Ruby для Fixnum

190.round (-1) возвращает 200 149.round (-1) возвращает 100

, что я и хочу.

Я вижу, что класс Money :: Bank :: VariableExchange поддерживаетrounding_method.

Я могу получить дескриптор объекта банка, вызвав

Money.default_bank

, но как мне зарегистрировать или назначить метод округления для объекта Money.default_bank?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 мая 2012

Поскольку вы хотите использовать банк VariableExchange:

Money.default_bank = Money::Bank::VariableExchange.new { |n| n.round(-2) }

Устанавливает для вашего банка по умолчанию использование VariableExchange и округляет обмен до ближайшего доллара.

0 голосов
/ 26 марта 2012

Просмотр документации:

http://rubydoc.info/github/RubyMoney/money/Money/Bank/Base#rounding_method-instance_method

Похоже, вам нужно создать банк как:

Money::Bank::Base.new {|n| n.round(-1) }
...