OpenExchangeRates
Crystal library for Open Exchange Rates Service
Docs
Installation
Add this to your application"s shard.yml
:
dependencies:
open_exchange_rates:
github: osfx/open_exchange_rates
Usage
require "open_exchange_rates"
Latest:
Get the latest exchange rates available from the Open Exchange Rates API.
Exapmple:
oxr = OpenExchangeRates::API.new("your_awesome_app_id")
puts oxr.latest #=> return mapped object
puts oxr.latest.rates #=> {"AED" => 3.672852, "AFN" => 67.842051, "ALL" => 121.8915, "AMD" => 476.242503...
puts oxr.latest["EUR"]#=> 0.8942
Historical:
Get historical exchange rates for any date available from the Open Exchange Rates API.
Exapmple:
oxr = OpenExchangeRates::API.new("your_awesome_app_id")
puts oxr.historical("2016-01-01") #=> {"AED" => 3.672754, "AFN" => 68.45, "ALL" => 125.9742, "AMD" => 483.75, "ANG" => 1.78875, "AOA" => 135.256669, "ARS" => 12.96635, "AUD" => 1.37393, "AWG" => 1.790083, "AZN" => 1.562017, "BAM" => 1.797331...}
Currencies:
Get a JSON list of all currency symbols available from the Open Exchange Rates API
Exapmple:
oxr = OpenExchangeRates::API.new("your_awesome_app_id")
puts oxr.currencies #=> "{"AED" => "United Arab Emirates Dirham", "AFN" => "Afghan Afghani", "ALL" => "Albanian Lek", "AMD" => "Armenian Dram", "ANG" => "Netherlands Antillean Guilder", "AOA" => "Angolan Kwanza", "ARS" => "Argentine Peso"...}
Time-Series:
Get historical exchange rates for a given time period, where available.
Open Exchange Rates time-series original docs
Exapmple:
oxr = OpenExchangeRates::API.new("your_awesome_app_id")
puts oxr.time_series("2016-01-01", "2016-01-31", "EUR,BTC")
#=> {"2016-01-01" => {"BTC" => 0.0023245218, "EUR" => 0.920961}, "2016-01-02" => {"BTC" => 0.00230479, "EUR" => 0.920862}, "2016-01-03" => {"BTC" => 0.0023312414, "EUR" => 0.920289}, "2016-01-04" => {"BTC" => 0.0022988242, "EUR" => 0.923285}, "2016-01-05" => {"BTC" => 0.0023133529, "EUR" => 0.930028}, "2016-01-06" => {"BTC" => 0.002318432, "EUR" => 0.92771}, "2016-01-07" => {"BTC" => 0.0021923574, "EUR" => 0.915366}}
Convert:
Convert any money value from one currency to another at the latest API rates. Open Exchange Rates convert docs
Exapmple:
oxr = OpenExchangeRates::API.new("your_awesome_app_id")
result = oxr.convert(value: 800.23, from: "USD", to: "BTC")
puts result["meta"] #=> "{"timestamp" => 1470957306, "rate" => 0.001700835604}"
Usage:
Show usage information
Exapmple:
oxr = OpenExchangeRates::API.new("your_awesome_app_id")
oxr = OpenExchangeRates::API.new("your_awesome_app_id")
usage = oxr.usage
puts usage.to_json #=> {"app_id":"your_awesome_app_id","status":"active","plan":{"name":"Unlimited","quota":"Unlimited requests/month","update_frequency":"300s","features":{"base":true,"symbols":true,"experimental":true,"time-series":true,"convert":true}},"usage":{"requests":275,"requests_quota":-1,"requests_remaining":-1,"days_elapsed":14,"days_remaining":17,"daily_average":19}}
puts usage.status #=> "active"
puts usage.plan.to_json #=> {"name":"Unlimited","quota":"Unlimited requests/month","update_frequency":"300s","features":{"base":true,"symbols":true,"experimental":true,"time-series":true,"convert":true}}
puts usage.plan.name #=> "Unlimited"
puts usage.plan.quota #=> "Unlimited requests/month"
puts usage.plan.update_frequency #=> "300s"
puts usage.plan.features #=> {"base" => true, "symbols" => true, "experimental" => true, "time-series" => true, "convert" => true}
Contributing
- Fork it ( https://github.com/osfx/open_exchange_rates/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am "Add some feature")
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Contributors
- Peter Boriskin - creator, maintainer