README.md in monetize-1.12.0 vs README.md in monetize-1.13.0

- old
+ new

@@ -8,18 +8,14 @@ A library for converting various objects into `Money` objects. ## Installation -Add this line to your application's Gemfile: +Run: - gem 'monetize' + bundle add monetize -And then execute: - - $ bundle - Or install it yourself as: $ gem install monetize ## Usage @@ -50,9 +46,25 @@ Monetize.assume_from_symbol = true Monetize.parse("£100") == Money.new(100_00, "GBP") "€100".to_money == Money.new(100_00, "EUR") ``` + +Parsing can be improved where the input is not expected to contain fractonal subunits. +To do this, set `Monetize.expect_whole_subunits = true` + +```ruby +Monetize.parse('EUR 10,000') == Money.new(100_00, "EUR") + +Monetize.expect_whole_subunits = true +Monetize.parse('EUR 10,000') == Money.new(10_000_00, "EUR") +``` + +Why does this work? If we expect fractional subunits then the parser will treat a single +delimiter as a decimal marker if it matches the currency's decimal marker. But often +this is not the case - a European site will show $10.000 because that's the local format. +As a human, if this was a stock ticker we might expect fractional cents. If it's a retail price we know it's actually an incorrect thousands separator. + Monetize can also parse a list of values, returning an array-like object ([Monetize::Collection](lib/collection.rb)): ```ruby Monetize.parse_collection("€80/$100") == [Money.new(80_00, "EUR"), Money.new(100_00, "USD")]