Money gem - работа с деньгами

Posted on December 22, 2008
Если есть необходимость работать с разными валютами, да и вообще с деньгами, то есть специальный gem - Money
Например, для конвертации одной валюты в другую можно использовать следующий код:

Money.bank = VariableExchangeBank.new
  Money.bank.add_rate("USD", "CAD", 1.24515)
  Money.bank.add_rate("CAD", "USD", 0.803115)
  Money.us_dollar(100).exchange_to("CAD") => Money.ca_dollar(124)
  Money.ca_dollar(100).exchange_to("USD") => Money.us_dollar(80)
Так-же при необходимости можно легко конвертировать из долларов в центы и обратно.

irb(main):004:0> 100.to_money
=> #<Money:0xb7893db8 @bank=#<Money::VariableExchangeBank:0xb7899024 @mutex=#<Mutex:0xb7898fd4>, @rates={}>, @currency="USD", @cents=10000>
Таким образом, если вы делаете интеграцию с несколькими платежными системами, работающими в разных валютах, то сможете для каждого пользователя показывать ту валюту которую он выбрал Блогун - монетизируем блоги