currency-rate 1.5.4 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ea85ddb7aed559684e8dd54fd3bdaa422ee93ee806971dd96f492edda1d61c7
4
- data.tar.gz: e766fecac778210f232721c5a64e023963714829b352222f19d11c5132a8c82d
3
+ metadata.gz: 6c47a6075c17cd2607ff962c2eba930b5e6f9e829b67f684c2178dcabbaab3f9
4
+ data.tar.gz: 0fb833c095e7bd320ffea734b584c5ed31360891553b437d54599cbe560b5900
5
5
  SHA512:
6
- metadata.gz: 256e3760059f1a5f60fbea8885d623e84660be15e785bbb72c5b0c69deed48ebb0d952135bea97de560bcf5aaed3acadefcd28efecb05bd9b784712d950eaf9f
7
- data.tar.gz: 7df86a15080699489c0c3607c8893df85e04f534c1176528e0b3280a79764cc82755a6521548ca0f7a44d1c9d569f957d27b6a6fcc1c871b4bf1593b5d6523a6
6
+ metadata.gz: 4d284b54c95ec1ecdb77f802899508156ccadb03aab16681c753ee3fa97f0bda71ee402aff6976156e8635e72703cc666b949403b0ab1805a316dbf3ce60184a
7
+ data.tar.gz: f9d7d5c458c76b93486007761f4d9e2777649bd22d5de13d78075afa4fd69334b0d91863fbc3bc6dbafd99235a7a2ff28f511b46940932c51f039a40e82af9ab
data/.gitignore CHANGED
@@ -16,7 +16,5 @@ pkg
16
16
 
17
17
  .byebug_history
18
18
 
19
- Gemfile.lock
20
-
21
19
  # Private API keys for adapters
22
20
  api_keys.yml
@@ -0,0 +1,68 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ currency-rate (1.6.0)
5
+ http
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.12.2)
19
+ ffi-compiler (1.0.1)
20
+ ffi (>= 1.0.0)
21
+ rake
22
+ hashdiff (1.0.0)
23
+ http (4.3.0)
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.6)
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.0.2
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ RSpec::Core::RakeTask.new(:spec)
9
9
  task :default => :spec
10
10
 
11
11
  desc "Update rates for specified adapter"
12
- task :update_rates, [:exchange] do |t, args|
12
+ task :update_rates, [:exchange] do |_, args|
13
13
  api_keys = YAML.load_file("api_keys.yml")
14
14
 
15
15
  CurrencyRate.configure do |config|
@@ -32,3 +32,12 @@ task :update_rates, [:exchange] do |t, args|
32
32
 
33
33
  puts "#{args.exchange} fixtures update finished!"
34
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,4 +1,3 @@
1
-
2
1
  module CurrencyRate
3
2
  class Adapter
4
3
  include Singleton
@@ -59,7 +58,13 @@ module CurrencyRate
59
58
  fetch_url << "#{param_symbol}#{self.class::API_KEY_PARAM}=#{api_key}" if api_key
60
59
  end
61
60
  http_client = HTTP.timeout(connect: CurrencyRate.configuration.connect_timeout, read: CurrencyRate.configuration.read_timeout)
62
- JSON.parse(http_client.get(fetch_url).to_s)
61
+ JSON.parse(
62
+ http_client
63
+ .headers("Accept" => "application/json; version=1")
64
+ .headers("Content-Type" => "text/plain")
65
+ .get(fetch_url)
66
+ .to_s
67
+ )
63
68
  end
64
69
 
65
70
  end
@@ -0,0 +1,18 @@
1
+ module CurrencyRate
2
+ class PaxfulAdapter < Adapter
3
+ SUPPORTED_CURRENCIES = %w(USD)
4
+
5
+ ANCHOR_CURRENCY = "BTC"
6
+
7
+ FETCH_URL = "https://paxful.com/api/currency/btc"
8
+
9
+ def normalize(data)
10
+ return nil unless super
11
+
12
+ {
13
+ "anchor" => ANCHOR_CURRENCY,
14
+ "USD" => BigDecimal(data["price"].to_s)
15
+ }
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module CurrencyRate
2
- VERSION = "1.5.4"
2
+ VERSION = "1.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: currency-rate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.4
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Snitko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-27 00:00:00.000000000 Z
11
+ date: 2020-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -90,6 +90,7 @@ files:
90
90
  - ".gitignore"
91
91
  - ".rspec"
92
92
  - Gemfile
93
+ - Gemfile.lock
93
94
  - LICENSE.txt
94
95
  - README.md
95
96
  - Rakefile
@@ -111,6 +112,7 @@ files:
111
112
  - lib/adapters/crypto/kraken_adapter.rb
112
113
  - lib/adapters/crypto/localbitcoins_adapter.rb
113
114
  - lib/adapters/crypto/okcoin_adapter.rb
115
+ - lib/adapters/crypto/paxful_adapter.rb
114
116
  - lib/adapters/crypto/yadio_adapter.rb
115
117
  - lib/adapters/fiat/bonbast_adapter.rb
116
118
  - lib/adapters/fiat/coinmonitor_adapter.rb
@@ -147,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
149
  - !ruby/object:Gem::Version
148
150
  version: '0'
149
151
  requirements: []
150
- rubygems_version: 3.0.3
152
+ rubygems_version: 3.0.6
151
153
  signing_key:
152
154
  specification_version: 4
153
155
  summary: Converter for fiat and crypto currencies