currency-rate 2.0.0 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. metadata +8 -119
  3. data/.document +0 -5
  4. data/.gitignore +0 -20
  5. data/.rspec +0 -1
  6. data/Gemfile +0 -6
  7. data/Gemfile.lock +0 -68
  8. data/LICENSE.txt +0 -20
  9. data/README.md +0 -73
  10. data/Rakefile +0 -43
  11. data/currency-rate.gemspec +0 -41
  12. data/lib/adapter.rb +0 -100
  13. data/lib/adapters/crypto/binance_adapter.rb +0 -42
  14. data/lib/adapters/crypto/bitfinex_adapter.rb +0 -41
  15. data/lib/adapters/crypto/bitpay_adapter.rb +0 -29
  16. data/lib/adapters/crypto/bitstamp_adapter.rb +0 -26
  17. data/lib/adapters/crypto/coin_market_cap_adapter.rb +0 -29
  18. data/lib/adapters/crypto/coinbase_adapter.rb +0 -30
  19. data/lib/adapters/crypto/exmo_adapter.rb +0 -27
  20. data/lib/adapters/crypto/hit_BTC_adapter.rb +0 -64
  21. data/lib/adapters/crypto/huobi_adapter.rb +0 -25
  22. data/lib/adapters/crypto/kraken_adapter.rb +0 -46
  23. data/lib/adapters/crypto/localbitcoins_adapter.rb +0 -25
  24. data/lib/adapters/crypto/okcoin_adapter.rb +0 -17
  25. data/lib/adapters/crypto/paxful_adapter.rb +0 -18
  26. data/lib/adapters/crypto/poloniex_adapter.rb +0 -33
  27. data/lib/adapters/crypto/yadio_adapter.rb +0 -19
  28. data/lib/adapters/fiat/bonbast_adapter.rb +0 -23
  29. data/lib/adapters/fiat/coinmonitor_adapter.rb +0 -13
  30. data/lib/adapters/fiat/currency_layer_adapter.rb +0 -31
  31. data/lib/adapters/fiat/fixer_adapter.rb +0 -17
  32. data/lib/adapters/fiat/forge_adapter.rb +0 -34
  33. data/lib/adapters/fiat/free_forex_adapter.rb +0 -36
  34. data/lib/container.rb +0 -203
  35. data/lib/currency_rate.rb +0 -41
  36. data/lib/currency_rate/version.rb +0 -3
  37. data/lib/exceptions.rb +0 -9
  38. data/lib/storage/file_storage.rb +0 -34
  39. data/lib/storage/serializers/yaml_serializer.rb +0 -15
  40. data/lib/utils/string_extensions.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e33cf57e2389c7faea732bc6a2c1005d1373daa26622d77d07058a157cb408b4
4
- data.tar.gz: ecdcdf02e7478deb612bebe5fed48c3d46d99916f9f25b4e0666bcf88ed4c1f9
3
+ metadata.gz: a10bc81c496c144edf8b648154d5814cfd73d9b5da9a1893822348321939ebba
4
+ data.tar.gz: 8d48c68cd5a87c763c5ae5f1620c81074b7b7122cf487f5288d8490c9e22e22e
5
5
  SHA512:
6
- metadata.gz: d6d71b129e93052a97d6e27749531c16818e19eeb1f7b44b6889d67683543094eea7c9cf59f7dc6dae01e1e6e0f570c0709c06d3c786b7c7d275f1b4e60c6e65
7
- data.tar.gz: 21cd15e77e63eb8df45f4b52904b7c9ac3fb0e0a93838a3373c31165af5a7d115c6982b2e8cdf869898ed24dbe07008bcc817b9464ca0510717cf5a92e359844
6
+ metadata.gz: abd9bac11ce6a9c133d94d2f19bce9b0ce262bba3319cfa670ed1f92a7dbba3bcc2d49bcf20c4784eb3133bf29ea86d098305b3db0e62530bc3555f7f7143221
7
+ data.tar.gz: cf5b3d11df56c3fe9ca5718a3597b3518bba31aecc7d7c5688e163cd78901832c2db397663cfa12f9e549dfee9ece1a70233435427b244ac82f5ac1fd4dc3a11
metadata CHANGED
@@ -1,135 +1,24 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: currency-rate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
- - Roman Snitko
7
+ - romanitup
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-01 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: http
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '4.3'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '4.3'
27
- - !ruby/object:Gem::Dependency
28
- name: byebug
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '10.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '10.0'
55
- - !ruby/object:Gem::Dependency
56
- name: rspec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '3.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.0'
69
- - !ruby/object:Gem::Dependency
70
- name: webmock
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
11
+ date: 2021-03-29 00:00:00.000000000 Z
12
+ dependencies: []
83
13
  description: Fetches exchange rates from various sources and does the conversion
84
- email: roman.snitko@gmail.com
14
+ email: romanitup@protonmail.com
85
15
  executables: []
86
16
  extensions: []
87
17
  extra_rdoc_files: []
88
- files:
89
- - ".document"
90
- - ".gitignore"
91
- - ".rspec"
92
- - Gemfile
93
- - Gemfile.lock
94
- - LICENSE.txt
95
- - README.md
96
- - Rakefile
97
- - currency-rate.gemspec
98
- - lib/adapter.rb
99
- - lib/adapters/crypto/binance_adapter.rb
100
- - lib/adapters/crypto/bitfinex_adapter.rb
101
- - lib/adapters/crypto/bitpay_adapter.rb
102
- - lib/adapters/crypto/bitstamp_adapter.rb
103
- - lib/adapters/crypto/coin_market_cap_adapter.rb
104
- - lib/adapters/crypto/coinbase_adapter.rb
105
- - lib/adapters/crypto/exmo_adapter.rb
106
- - lib/adapters/crypto/hit_BTC_adapter.rb
107
- - lib/adapters/crypto/huobi_adapter.rb
108
- - lib/adapters/crypto/kraken_adapter.rb
109
- - lib/adapters/crypto/localbitcoins_adapter.rb
110
- - lib/adapters/crypto/okcoin_adapter.rb
111
- - lib/adapters/crypto/paxful_adapter.rb
112
- - lib/adapters/crypto/poloniex_adapter.rb
113
- - lib/adapters/crypto/yadio_adapter.rb
114
- - lib/adapters/fiat/bonbast_adapter.rb
115
- - lib/adapters/fiat/coinmonitor_adapter.rb
116
- - lib/adapters/fiat/currency_layer_adapter.rb
117
- - lib/adapters/fiat/fixer_adapter.rb
118
- - lib/adapters/fiat/forge_adapter.rb
119
- - lib/adapters/fiat/free_forex_adapter.rb
120
- - lib/container.rb
121
- - lib/currency_rate.rb
122
- - lib/currency_rate/version.rb
123
- - lib/exceptions.rb
124
- - lib/storage/file_storage.rb
125
- - lib/storage/serializers/yaml_serializer.rb
126
- - lib/utils/string_extensions.rb
18
+ files: []
127
19
  homepage: https://gitlab.com/hodlhodl-public/currency-rate
128
20
  licenses: []
129
- metadata:
130
- allowed_push_host: https://rubygems.org
131
- homepage_uri: https://gitlab.com/hodlhodl-public/currency-rate
132
- source_code_uri: https://gitlab.com/hodlhodl-public/currency-rate
21
+ metadata: {}
133
22
  post_install_message:
134
23
  rdoc_options: []
135
24
  require_paths:
data/.document DELETED
@@ -1,5 +0,0 @@
1
- lib/**/*.rb
2
- bin/*
3
- -
4
- features/**/*.feature
5
- LICENSE.txt
data/.gitignore DELETED
@@ -1,20 +0,0 @@
1
- # rcov generated
2
- coverage
3
- coverage.data
4
-
5
- # rdoc generated
6
- rdoc
7
-
8
- # yard generated
9
- doc
10
- .yardoc
11
-
12
- # bundler
13
- .bundle
14
-
15
- pkg
16
-
17
- .byebug_history
18
-
19
- # Private API keys for adapters
20
- spec/api_keys.yml
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in currency-rate.gemspec
6
- gemspec
data/Gemfile.lock DELETED
@@ -1,68 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- currency-rate (1.7.0)
5
- http (>= 4.3)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- addressable (2.7.0)
11
- public_suffix (>= 2.0.2, < 5.0)
12
- byebug (11.0.1)
13
- crack (0.4.3)
14
- safe_yaml (~> 1.0.0)
15
- diff-lcs (1.3)
16
- domain_name (0.5.20190701)
17
- unf (>= 0.0.5, < 1.0.0)
18
- ffi (1.13.1)
19
- ffi-compiler (1.0.1)
20
- ffi (>= 1.0.0)
21
- rake
22
- hashdiff (1.0.0)
23
- http (4.4.1)
24
- addressable (~> 2.3)
25
- http-cookie (~> 1.0)
26
- http-form_data (~> 2.2)
27
- http-parser (~> 1.2.0)
28
- http-cookie (1.0.3)
29
- domain_name (~> 0.5)
30
- http-form_data (2.3.0)
31
- http-parser (1.2.1)
32
- ffi-compiler (>= 1.0, < 2.0)
33
- public_suffix (4.0.1)
34
- rake (10.5.0)
35
- rspec (3.9.0)
36
- rspec-core (~> 3.9.0)
37
- rspec-expectations (~> 3.9.0)
38
- rspec-mocks (~> 3.9.0)
39
- rspec-core (3.9.0)
40
- rspec-support (~> 3.9.0)
41
- rspec-expectations (3.9.0)
42
- diff-lcs (>= 1.2.0, < 2.0)
43
- rspec-support (~> 3.9.0)
44
- rspec-mocks (3.9.0)
45
- diff-lcs (>= 1.2.0, < 2.0)
46
- rspec-support (~> 3.9.0)
47
- rspec-support (3.9.0)
48
- safe_yaml (1.0.5)
49
- unf (0.1.4)
50
- unf_ext
51
- unf_ext (0.0.7.7)
52
- webmock (3.7.6)
53
- addressable (>= 2.3.6)
54
- crack (>= 0.3.2)
55
- hashdiff (>= 0.4.0, < 2.0.0)
56
-
57
- PLATFORMS
58
- ruby
59
-
60
- DEPENDENCIES
61
- byebug
62
- currency-rate!
63
- rake (~> 10.0)
64
- rspec (~> 3.0)
65
- webmock
66
-
67
- BUNDLED WITH
68
- 2.1.2
data/LICENSE.txt DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2016 Roman Snitko
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md DELETED
@@ -1,73 +0,0 @@
1
- currency-rate
2
- =============
3
-
4
- Converter for fiat and crypto currencies. Currently supports BTC and LTC.
5
-
6
- Installation
7
- ------------
8
-
9
- gem install currency-rate
10
-
11
- or in Gemfile
12
-
13
- gem "currency-rate"
14
-
15
- Configuration
16
- -------------
17
- ```ruby
18
- CurrencyRate.configure do |config|
19
- # Now only ForgeAdapter requires api key to fetch rates
20
- # Empty array by default
21
- config.api_keys["ForgeAdapter"] = "forge_api_key"
22
-
23
- # CurrencyRate::FileStorage is built-in storage provider and has only `path` parameter
24
- config.storage << CurrencyRate::FileStorage(path: "/home/user/data")
25
-
26
- # CurrencyRate uses default Logger from Ruby core library
27
- # It can be replaced with any compatible object
28
- # All logger values listed below are default
29
- config.logger[:device] = $stdout
30
- config.logger[:level] = :info
31
- config.logger[:formatter] = nil
32
-
33
- # Cryptocurrency exchange adapters to fetch
34
- config.crypto_adapters = ["Kraken", "Localbitcoins"]
35
-
36
- # Fiat exchange adapters to fetch
37
- config.fiat_adapters = ["Yahoo"]
38
- end
39
- ```
40
-
41
- Usage
42
- -----
43
-
44
- To fetch rates from exchanges into file storage (the only supported at this moment):
45
- ```ruby
46
- CurrencyRate.sync!
47
- ```
48
- This method will load all available data from exchanges and put into `yml` files. Failed exchanges will not create new / update exsisting files.
49
-
50
- To get rates for Crypto/Fiat currency pair use:
51
- ```ruby
52
- CurrencyRate.fetch_crypto("Bitstamp", "BTC", "USD")
53
- ```
54
-
55
- For fetching Fiat/Fiat pair:
56
- ```ruby
57
- CurrencyRate.fetch_fiat("CNY", "USD")
58
- ```
59
-
60
- Details
61
- -------
62
-
63
- `CurrencyRate` contains two parts that can work independently: Synchronizer and Fetcher.
64
- `CurrencyRate::Synchronizer` loads data from selected exchanges using adapters and saves it into FileStorage in normalized format.
65
- `CurrencyRate::Fetch` reads data from FileStorage and returns rate for requested pair and exchange.
66
-
67
- Development
68
- -----------
69
- When adapter's output format changes you can replace fixtures by running `bin/rake update_rates['ExchangeName']`.
70
- For example `bin/rake update_rates['Fixer']` will update fixtures for the FixerAdapter.
71
-
72
- Some of adapters require API keys so the task searches for 'api_keys.yml` file in project root.
73
- You can copy it from `api_keys.yml.sample` and set up your values.
data/Rakefile DELETED
@@ -1,43 +0,0 @@
1
- require 'byebug'
2
- require 'yaml'
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
5
- require_relative "lib/currency_rate"
6
-
7
- RSpec::Core::RakeTask.new(:spec)
8
-
9
- task :default => :spec
10
-
11
- desc "Update rates for specified adapter"
12
- task :update_rates, [:exchange] do |_, args|
13
- api_keys = YAML.load_file("api_keys.yml")
14
-
15
- CurrencyRate.configure do |config|
16
- api_keys.each { |name, key| config.api_keys[name] = key }
17
- end
18
-
19
- adapter = CurrencyRate::const_get("#{args.exchange}Adapter").instance
20
-
21
- print "Loading data for #{args.exchange}... "
22
- exchange_data = adapter.exchange_data
23
- raw_storage = CurrencyRate::FileStorage.new(path: File.expand_path("spec/fixtures/adapters", __dir__))
24
- raw_storage.write(args.exchange, exchange_data)
25
- puts "Success!"
26
-
27
- print "Normalizing data for #{args.exchange}..."
28
- normalized_data = adapter.normalize exchange_data
29
- normalized_storage = CurrencyRate::FileStorage.new(path: File.expand_path("spec/fixtures/adapters/normalized", __dir__))
30
- normalized_storage.write(args.exchange, normalized_data)
31
- puts "Success!"
32
-
33
- puts "#{args.exchange} fixtures update finished!"
34
- end
35
-
36
- desc "Update rates for all defined adapters"
37
- task :update_all_rates do |_, _|
38
- CurrencyRate.constants.grep(/.Adapter$/).each do |name|
39
- short_name = name.to_s.sub("Adapter", "")
40
- Rake::Task[:update_rates].invoke(short_name)
41
- Rake::Task[:update_rates].reenable
42
- end
43
- end
@@ -1,41 +0,0 @@
1
- lib = File.expand_path("../lib", __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "currency_rate/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "currency-rate"
7
- spec.version = CurrencyRate::VERSION
8
- spec.authors = ["Roman Snitko"]
9
- spec.email = "roman.snitko@gmail.com"
10
-
11
- spec.summary = "Converter for fiat and crypto currencies"
12
- spec.description = "Fetches exchange rates from various sources and does the conversion"
13
- spec.homepage = "https://gitlab.com/hodlhodl-public/currency-rate"
14
-
15
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
16
- # to allow pushing to a single host or delete this section to allow pushing to any host.
17
- if spec.respond_to?(:metadata)
18
- spec.metadata["allowed_push_host"] = "https://rubygems.org"
19
-
20
- spec.metadata["homepage_uri"] = spec.homepage
21
- spec.metadata["source_code_uri"] = "https://gitlab.com/hodlhodl-public/currency-rate"
22
- else
23
- raise "RubyGems 2.0 or newer is required to protect against " \
24
- "public gem pushes."
25
- end
26
-
27
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
28
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
29
- end
30
- spec.bindir = "exe"
31
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
32
- spec.require_paths = ["lib"]
33
-
34
- spec.add_dependency "http", ">= 4.3"
35
-
36
- spec.add_development_dependency "byebug"
37
- spec.add_development_dependency "rake", "~> 10.0"
38
- spec.add_development_dependency "rspec", "~> 3.0"
39
- spec.add_development_dependency "webmock"
40
- end
41
-