A library for converting various objects into Money objects.
Add this line to your application's Gemfile:
gem 'monetize'
And then execute:
$ bundle
Or install it yourself as:
$ gem install monetize
Monetize.parse("USD 100") == Money.new(100_00,"USD")Monetize.parse("EUR 100") == Money.new(100_00,"EUR")Monetize.parse("GBP 100") == Money.new(100_00,"GBP")"100".to_money == Money.new(100_00,"USD")parse will return nil if it is unable to parse the input. Use parse! instead if you want a Monetize::Error (or one of the subclasses) to be raised instead:
>> Monetize.parse('OMG 100')=>nil
>> Monetize.parse!('OMG 100')Monetize::ParseError: Unknowncurrency'omg'Optionally, enable the ability to assume the currency from a passed symbol. Otherwise, currency symbols will be ignored, and USD used as the default currency:
Monetize.parse("£100") == Money.new(100_00,"USD")Monetize.assume_from_symbol=trueMonetize.parse("£100") == Money.new(100_00,"GBP")"€100".to_money == Money.new(100_00,"EUR")Monetize can also parse a list of values, returning an array-like object (Monetize::Collection):
Monetize.parse_collection("€80/$100") == [Money.new(80_00,"EUR"),Money.new(100_00,"USD")]Monetize.parse_collection("€80, $100") == [Money.new(80_00,"EUR"),Money.new(100_00,"USD")]# The #range? method detects the presence of a hyphenMonetize.parse_collection("€80-$100").range? == trueSee CONTRIBUTING.md for details.