JamesBrooks / cash_handler
- Source
- Commits
- Network (1)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Tree:
6ac41c5
commit 6ac41c5393080874f5fb0c3226f836df1fb71bd3
tree c047fd8c461bb0815e49f82afea92ec9add1c39d
parent ec1c053526ecd4ed1dbd235266b4ff75c7a206c0
tree c047fd8c461bb0815e49f82afea92ec9add1c39d
parent ec1c053526ecd4ed1dbd235266b4ff75c7a206c0
| name | age | message | |
|---|---|---|---|
| |
.gitignore | ||
| |
MIT-LICENSE | ||
| |
README.textile | ||
| |
init.rb | ||
| |
lib/ | ||
| |
tasks/ |
README.textile
cash_handler
cash_handler aims to be an intuitive (and useful) set of extensions and utilities to assist in handling money across different currencies for Ruby on Rails.
Requirements and Installation
- Install the hpricot gem (gem install hpricot)
- Install the cash_handler plugin (script/plugin install git://github.com/JamesBrooks/cash_handler.git)
Usage
c = CashHandler::Base.new
# Get the current exchange rate of the AUD against the USD (currency code strings are case in-sensitive, can also be symbols)
c.get('AUD')
=> 0.619099
# Get the current exchange rate of the AUD against the GBP
c.get('AUD', :against => 'GBP')
=> 0.418621272567449
# Convert
c.convert(10, :aud, :usd)
=> 6.19099
# Force the converstion rates cache to reload currencies
c.cache.expire
# The CashHandler::Cache has a default cache life of one day, this can be overridden in one of two ways
# Upon creation
c = CashHandler::Base.new(30.minutes)
# During operation
c.cache.ttl = 30.minutes
Backup rates in case x-rates.com is inaccessible
You may configure cash_handler to create a backup file every time it pulls rates from x-rates.com. In the event that x-rates.com is inaccessible, the rates stored in the backup file will be used.
# Configure cash_handler to persist rates to our app's log directory
c = CashHandler::Base.new(1.day, "#{RAILS_ROOT}/log/rates_backup.yml")
Copyright and License
Copyright © 2008 James Brooks, released under the MIT license

