Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Intuitive extensions and utilities to handle money in multiple currencies for Ruby on Rails
Ruby
branch: master

This branch is 1 commit ahead, 8 commits behind jamesbrooks:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
tasks
.gitignore
MIT-LICENSE
README.textile
init.rb

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 = CacheHandler::Base.new(1.day, "#{RAILS_ROOT}/log/rates_backup.yml")

Copyright and License

Copyright © 2008 James Brooks, released under the MIT license

Something went wrong with that request. Please try again.