The project is in a healthy, maintained state
Gem para conversão de moedas usando a API exchangerate.host
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

 Project Readme

CurrencyConverterPlus

CurrencyConverterPlus é uma gem Ruby simples para conversão de moedas, com suporte a taxas atuais e históricas, usando a API gratuita do exchangerate.host.

✨ Recursos

  • Conversão entre duas moedas com taxa atual
  • Consulta das taxas ao vivo de múltiplas moedas
  • Consulta de taxas históricas em uma data específica
  • Suporte a configuração por .env ou programaticamente

🔧 Instalação

Você pode instalar a gem diretamente pelo RubyGems:

gem install currency_converter_plus

Ou se preferir, adicione esta linha ao seu Gemfile:

gem 'currency_converter_plus', git: 'https://github.com/GodKelvin/currency_converter_plus.git',  tag: 'v0.1.0'

E depois execute:

bundle install

🔑 Obtendo a chave da API

  1. Vá para: https://exchangerate.host/#/
  2. Clique em Get Free API Key
  3. Registre-se com seu e-mail
  4. Você receberá um access_key, copie-o

🛠️ Configuração

Você pode configurar a chave da API de duas formas:

1. Via arquivo .env

Crie um arquivo .env na raiz do seu projeto:

EXCHANGE_RATE_API_KEY=sua_chave_aqui

E certifique-se de que a gem dotenv esteja carregada. No seu código principal:

require 'dotenv'
Dotenv.load

2. Manualmente no código

CurrencyConverter.configure do |config|
  config.access_key = "sua_chave_aqui"
end

📦 Uso

Conversão de valores (convert)

require 'currency_converter'

result = CurrencyConverter.convert(100, from: 'USD', to: 'BRL')
puts "100 USD em BRL: #{result}"

Taxas ao vivo (live)

Retorna taxas de câmbio em tempo real com base na moeda base.

CurrencyConverter.live(base: 'USD', currencies: ['EUR', 'GBP'])
# => { "USDEUR"=>0.91, "USDGBP"=>0.78, ... }

Se currencies for omitido, retorna todas as taxas disponíveis.

Taxas históricas (historical)

Consulta taxas de uma data específica (formato YYYY-MM-DD):

CurrencyConverter.historical(date: '2024-01-01', base: 'EUR', currencies: ['USD', 'JPY'])
# => { "EURUSD"=>1.09, "EURJPY"=>157.15 }

❗ Tratamento de erros

  • Se a requisição falhar ou os parâmetros forem inválidos, uma exceção CurrencyConverter::Error será lançada.
  • Certifique-se de capturar exceções onde apropriado:
begin
  CurrencyConverter.convert(100, from: 'USD', to: 'EUR')
rescue CurrencyConverter::Error => e
  puts "Erro na conversão: #{e.message}"
end

📁 Estrutura do Projeto

currency_converter/
├── lib/
│   ├── currency_converter.rb
│   ├── currency_converter/version.rb
│   └── currency_converter/configuration.rb
├── .env
├── currency_converter.gemspec
└── README.md

📄 Licença

Esta gem é open-source sob a licença MIT.

🤝 Contribuições

Pull requests são bem-vindos! Para grandes mudanças, por favor, abra uma issue primeiro para discutir o que você gostaria de modificar.

📬 Contato

Linkedin: Kelvin Lehrback