currency-rate 1.5.3 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -3
  3. data/Gemfile.lock +68 -0
  4. data/README.md +2 -2
  5. data/Rakefile +12 -3
  6. data/currency-rate.gemspec +1 -1
  7. data/lib/adapter.rb +56 -22
  8. data/lib/adapters/crypto/binance_adapter.rb +1 -1
  9. data/lib/adapters/crypto/bitfinex_adapter.rb +3 -2
  10. data/lib/adapters/crypto/bitpay_adapter.rb +1 -1
  11. data/lib/adapters/crypto/bitstamp_adapter.rb +1 -1
  12. data/lib/adapters/crypto/coin_market_cap_adapter.rb +2 -4
  13. data/lib/adapters/crypto/coinbase_adapter.rb +3 -3
  14. data/lib/adapters/crypto/exmo_adapter.rb +1 -1
  15. data/lib/adapters/crypto/hit_BTC_adapter.rb +64 -0
  16. data/lib/adapters/crypto/huobi_adapter.rb +17 -9
  17. data/lib/adapters/crypto/kraken_adapter.rb +5 -5
  18. data/lib/adapters/crypto/localbitcoins_adapter.rb +1 -1
  19. data/lib/adapters/crypto/okcoin_adapter.rb +4 -6
  20. data/lib/adapters/crypto/paxful_adapter.rb +18 -0
  21. data/lib/adapters/crypto/poloniex_adapter.rb +33 -0
  22. data/lib/adapters/crypto/yadio_adapter.rb +2 -1
  23. data/lib/adapters/fiat/bonbast_adapter.rb +3 -5
  24. data/lib/adapters/fiat/coinmonitor_adapter.rb +4 -5
  25. data/lib/adapters/fiat/currency_layer_adapter.rb +2 -3
  26. data/lib/adapters/fiat/fixer_adapter.rb +3 -4
  27. data/lib/adapters/fiat/forge_adapter.rb +15 -6
  28. data/lib/adapters/fiat/free_forex_adapter.rb +7 -3
  29. data/lib/container.rb +203 -0
  30. data/lib/currency_rate.rb +20 -63
  31. data/lib/currency_rate/version.rb +1 -1
  32. data/lib/exceptions.rb +9 -0
  33. data/lib/storage/file_storage.rb +15 -10
  34. data/lib/utils/string_extensions.rb +19 -0
  35. metadata +12 -14
  36. data/api_keys.yml.sample +0 -4
  37. data/bin/rake +0 -29
  38. data/bin/rspec +0 -29
  39. data/lib/adapters/crypto/btc_china_adapter.rb +0 -11
  40. data/lib/adapters/crypto/btc_e_adapter.rb +0 -18
  41. data/lib/adapters/fiat/yahoo_adapter.rb +0 -35
  42. data/lib/configuration.rb +0 -29
  43. data/lib/fetcher.rb +0 -78
  44. data/lib/synchronizer.rb +0 -51
@@ -1,51 +0,0 @@
1
- module CurrencyRate
2
- class Synchronizer
3
- attr_accessor :storage
4
-
5
- def initialize(storage: nil)
6
- @storage = storage || FileStorage.new
7
- end
8
-
9
- def sync_fiat!
10
- _sync CurrencyRate.configuration.fiat_adapters
11
- end
12
-
13
- def sync_crypto!
14
- _sync CurrencyRate.configuration.crypto_adapters
15
- end
16
-
17
- def sync!
18
- fiat = sync_fiat!
19
- crypto = sync_crypto!
20
- [fiat[0] | crypto[0], fiat[1] | crypto[1]]
21
- end
22
-
23
- private
24
-
25
- def _sync(adapters)
26
- successfull = []
27
- failed = []
28
- adapters.each do |provider|
29
- adapter_name = "#{provider}Adapter"
30
- begin
31
- adapter = CurrencyRate::const_get(adapter_name).instance
32
- rates = adapter.fetch_rates
33
- unless rates
34
- CurrencyRate.logger.warn("Synchronizer#sync!: rates for #{provider} not found")
35
- failed.push(provider)
36
- next
37
- end
38
- exchange_name = provider.downcase
39
- @storage.write(exchange_name, rates)
40
- successfull.push(provider)
41
- rescue StandardError => e
42
- failed.push({ provider: e })
43
- CurrencyRate.logger.error(e)
44
- next
45
- end
46
- end
47
- [successfull, failed]
48
- end
49
-
50
- end
51
- end