beatrichartz/exchange

View on GitHub
changelog.rdoc

Summary

Maintainability
Test Coverage
= Changes to Exchange

== 0.12.0
- Currencies can now be instantiated via ISO country codes
- Setting the host and the port now wipes existing cache clients in favor of a new one
- Better Dealing with Big Decimal precisions
- JRuby support

== 0.11.0
- Better implementation for preventing implicit conversions, if wished for: Now all operations including comparisons throw errors when implicit conversions are not allowed and currencies are to be converted implicitly.

== 0.10.0
- Changed the gem API to be less invasive in the numeric classes. The deprecated API had issues with three letter methods defined in active support, mainly the try method. The new API has just two methods, in(currency) and to(currency). There are no known conflicts at this time.

== 0.9.0
- added memory cache support as the new default. This allows you to cache without any external requirement, directly in ruby.
- Added a typecasting helper for money to exchange. This allows you to typecast any given attribute into a instance of Exchange::Money
- made the base operations more floating point error save. Now even when you use a float with exchange, it will convert it to bigdecimal before doing base calculations (* / + -) in both ways. This does not mean you will not encounter any floating point errors, but it makes it highly unlikely.
- improved performance quite a bit on the conversion methods. Exchange now beats every other known gem for currency conversion in conversion speed

== 0.8.0
- jruby compatibility, horray!
- readded json as an explicit dependency since its used in cache and api

== 0.7.1
- The DSL is now included into Numeric, which makes currency operations available for all subclasses (including your own) of Numeric
- Some structurally unsound behaviour with ruby base operators (+, -, *, /, round, floor, ceil) has been corrected. It is recommended to update to this latest version of exchange if you are using a version less than 0.7.1. 
- the api classes have been refactored to less complex, more readable code, 
- general performance has improved quite a bit.

== 0.6
- Memcached, Redis, JSON and Nokogiri have been removed as explicit dependencies of the gem. The gem will now try to load the gems you want to use with it during runtime, and it will throw an exception if a gem required according to your configuration is not present.
- The cache class is now a singleton and no class singleton anymore. This makes it easier to write a seamlessly integrating custom cache class for it.

== 0.5
- Changed the currency bot api to openexchangerates.org and changed the default api to xaviermedia. Since the openexchangerates.org api still supports a free plan with reasonable conditions, it will still be supported by the exchange gem, although it may be moved to a separate gem in the future

== 0.4
- Some potential 0 values on conversions when caching with memcached have been fixed.

== 0.3
- All Currencies & Rates get handled in BigDecimal now, preventing floating point errors
- Major Performance inprovements on the DSL methods
- New ECB API configuration possibility
- Refactoring of the cache classes, new File cache class for large file storage
- ISO 4217 String conversion is now available for all currencies, making it easier to display currencies in their right format

== Up to 0.2.6
- first version, bugfixes (see documentation)