zold-ruby-sdk 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5f77cfaa341fc53d966cdc048bfbb2f4a9ec4ca7c3bd5cc407413bd5460ffe2
4
- data.tar.gz: 6fe60f88eae2fb341d128771a20721d63667b9e8907b0cd5acfd4444953f0f35
3
+ metadata.gz: ce7aea32407824fee9aaac411bc6ffaf1bbc34d4ab5c6b11d8cbf90c76b2af3b
4
+ data.tar.gz: 914288435490d8e465b10698890e95e45cfbd6f4a4ff6e604382fff67ba9e7ab
5
5
  SHA512:
6
- metadata.gz: e706d2c9dc7c180ca92ccbaa60405055338075bc296acbd35ee706418d8c8b594ea6f262e0895c5a3e91a9b5ff9fd2ed9d88d900be7a40fb8430a1cf981990cf
7
- data.tar.gz: 15f24cde6757b62815507deda97af55f12818f2cb66c8353c34c5ae72f81bbf5ad5a221d943d2d54fae243226fbb2af76f7ed8dfea9af59560177319ea308f57
6
+ metadata.gz: 39a715a9c6a203b6fcc7a6b80b58d70550940c287754dad1adbf6afe1ff142f8f793ddd9238d639073124c527fa682ec8733c1a3179c4eb9a1372deef3c4dca7
7
+ data.tar.gz: e71cf1f3c7a711eddc44b81a30d0ff2f06ba6844665d977dc825ed7297b571e6abd5e082cc25cce5288303b262ce9de0c33da6a24396c53f47fe11bcd3f96172
data/.rubocop.yml CHANGED
@@ -6,6 +6,8 @@ Layout/EmptyLineAfterGuardClause:
6
6
  Enabled: false
7
7
  Layout/EndOfLine:
8
8
  EnforcedStyle: lf
9
+ Style/ClassAndModuleChildren:
10
+ Enabled: false
9
11
  Metrics/AbcSize:
10
12
  Max: 45
11
13
  Metrics/BlockLength:
data/.rultor.yml CHANGED
@@ -3,10 +3,10 @@ assets:
3
3
  install: |-
4
4
  export GEM_HOME=~/.ruby
5
5
  export GEM_PATH=$GEM_HOME:$GEM_PATH
6
+ bundle install
6
7
  release:
7
8
  script: |-
8
- bundle install
9
- rake
9
+ bundle exec rake
10
10
  rm -rf *.gem
11
11
  sed -i "s/0\.0\.0/${tag}/g" zold-ruby-sdk.gemspec
12
12
  git add zold-ruby-sdk.gemspec
@@ -14,13 +14,10 @@ release:
14
14
  gem build zold-ruby-sdk.gemspec
15
15
  chmod 0600 ../rubygems.yml
16
16
  gem push *.gem --config-file ../rubygems.yml
17
- commanders:
18
- - yegor256
19
- architect:
20
- - yegor256
21
17
  merge:
22
- commanders: []
23
18
  script: |-
24
- bundle install
25
- rake
26
- deploy: {}
19
+ bundle exec rake
20
+ deploy:
21
+ script: |-
22
+ echo 'There is nothing to deploy'
23
+ exit -1
data/.travis.yml CHANGED
@@ -1,20 +1,16 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.1
4
- - 2.3.3
5
- - 2.4.5
3
+ - 2.6.0
6
4
  cache: bundler
7
5
  branches:
8
6
  only:
9
7
  - master
10
8
  install:
11
9
  - travis_retry bundle update
12
- - gem install pdd
13
- - sudo apt-get install cppcheck
10
+ - gem install pdd -v 0.20.5
14
11
  script:
15
12
  - pdd -f /dev/null
16
- - cppcheck --enable=all --quiet --suppress=unusedFunction .
17
13
  - export RUBYOPT="-W0"
18
- - rake --quiet
14
+ - bundle exec rake --quiet
19
15
  after_success:
20
16
  - "bash <(curl -s https://codecov.io/bash)"
data/README.md CHANGED
@@ -11,19 +11,23 @@
11
11
  [![PDD status](http://www.0pdd.com/svg?name=zold-io/zold-ruby-sdk)](http://www.0pdd.com/p?name=zold-io/zold-ruby-sdk)
12
12
  [![Gem Version](https://badge.fury.io/rb/zold-ruby-sdk.svg)](http://badge.fury.io/rb/zold-ruby-sdk)
13
13
  [![Test Coverage](https://img.shields.io/codecov/c/github/zold-io/zold-ruby-sdk.svg)](https://codecov.io/github/zold-io/zold-ruby-sdk?branch=master)
14
+ [![Yard Docs](http://img.shields.io/badge/yard-docs-blue.svg)](http://rubydoc.info/github/zold-io/zold-ruby-sdk/master/frames)
15
+
16
+ [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/takes/blob/master/LICENSE.txt)
17
+ [![Hits-of-Code](https://hitsofcode.com/github/zold-io/zold-score)](https://hitsofcode.com/view/github/zold-io/zold-ruby-sdk)
14
18
 
15
19
  Here is the [White Paper](https://papers.zold.io/wp.pdf).
16
20
 
17
21
  Join our [Telegram group](https://t.me/zold_io) to discuss it all live.
18
22
 
19
- The license is [MIT](https://github.com/zold-io/zold-ruby-sdk/blob/master/LICENSE.txt).
20
-
21
23
  This is a simple Ruby SDK for making payments, checking balances, and finding transactions in
22
24
  Zold wallets via [WTS](https://wts.zold.io) system.
23
25
 
26
+ There are other languages too: [Java SDK](https://github.com/amihaiemil/zold-java-client).
27
+
24
28
  First, you install it:
25
29
 
26
- ```
30
+ ```bash
27
31
  gem install zold-ruby-sdk
28
32
  ```
29
33
 
@@ -63,7 +67,7 @@ txns = wts.find(id: '123', details: /pizza/)
63
67
 
64
68
  That's it.
65
69
 
66
- # How to contribute
70
+ ## How to contribute
67
71
 
68
72
  Read [these guidelines](https://www.yegor256.com/2014/04/15/github-guidelines.html).
69
73
  Make sure you build is green before you contribute
@@ -72,7 +76,7 @@ your pull request. You will need to have [Ruby](https://www.ruby-lang.org/en/) 2
72
76
 
73
77
  ```
74
78
  $ bundle update
75
- $ rake
79
+ $ bundle exec rake
76
80
  ```
77
81
 
78
82
  If it's clean and you don't see any error messages, submit your pull request.
data/lib/zold/wts.rb CHANGED
@@ -22,6 +22,7 @@
22
22
 
23
23
  require 'typhoeus'
24
24
  require 'cgi'
25
+ require 'loog'
25
26
  require 'zold/age'
26
27
  require 'zold/amount'
27
28
  require 'zold/id'
@@ -32,168 +33,195 @@ require 'zold/txn'
32
33
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
33
34
  # Copyright:: Copyright (c) 2018-2019 Yegor Bugayenko
34
35
  # License:: MIT
35
- module Zold
36
- # WTS
37
- class WTS
38
- # Makes a new object of the class. The <tt>key</tt> you are supposed
39
- # to obtain at this page: https://wts.zold.io/api. You will have to login
40
- # and confirm your account first. Keep this key secret, to avoid
41
- # information lost. However, even knowing the secret no payments can
42
- # be sent without they keygap.
43
- def initialize(key, log: STDOUT)
44
- raise 'Key can\'t be nil' if key.nil?
45
- @key = key
46
- raise 'Log can\'t be nil' if log.nil?
47
- @log = log
48
- end
49
-
50
- # Initiate PULL request. The server will pull your wallet form the network,
51
- # and make it ready for future requests. Without this operation you won't
52
- # be able to perform <tt>find()</tt> or <tt>balance()</tt> requests.
53
- #
54
- # The method returns the job ID, which you should wait for completion
55
- # using the method <tt>wait()</tt>.
36
+ class Zold::WTS
37
+ # Fake implementation.
38
+ class Fake
56
39
  def pull
57
- start = Time.now
58
- job = job_of(
59
- clean(
60
- Typhoeus::Request.get(
61
- 'https://wts.zold.io/pull',
62
- headers: headers
63
- )
64
- )
65
- )
66
- debug("PULL job #{job} started in #{Zold::Age.new(start)}")
67
- job
40
+ 'job-id'
68
41
  end
69
42
 
70
- # Get wallet balance.
71
43
  def balance
72
- start = Time.now
73
- http = clean(
74
- Typhoeus::Request.get(
75
- 'https://wts.zold.io/balance',
76
- headers: headers
77
- )
78
- )
79
- balance = Zold::Amount.new(zents: http.body.to_i)
80
- debug("Wallet balance #{balance} retrieved in #{Zold::Age.new(start)}")
81
- balance
44
+ Zold::Amount.new(zld: 4.0)
82
45
  end
83
46
 
84
- # Get wallet ID.
85
47
  def id
86
- start = Time.now
87
- http = clean(
88
- Typhoeus::Request.get(
89
- 'https://wts.zold.io/id',
90
- headers: headers
91
- )
92
- )
93
- id = Zold::Id.new(http.body.to_s)
94
- debug("Wallet ID #{id} retrieved in #{Zold::Age.new(start)}")
95
- id
48
+ Zold::Id::ROOT
96
49
  end
97
50
 
98
- # Initiate PAY request. The <tt>keygap</tt> is a string you get
99
- # when you confirm the account. The <tt>bnf</tt> is the name of the
100
- # GitHub account, the wallet ID or the invoice (up to you). The
101
- # <tt>amount</tt> is the amount in ZLD, e.g. "19.99". The <tt>details</tt>
102
- # is the text to add to the transaction.
103
- #
104
- # The method returns the job ID, which you should wait for completion
105
- # using the method <tt>wait()</tt>.
106
- def pay(keygap, bnf, amount, details)
107
- start = Time.now
108
- job = job_of(
109
- clean(
110
- Typhoeus::Request.post(
111
- 'https://wts.zold.io/do-pay',
112
- headers: headers,
113
- body: { keygap: keygap, bnf: bnf, amount: amount, details: details }
114
- )
115
- )
116
- )
117
- debug("PAY job #{job} started in #{Zold::Age.new(start)}")
118
- job
51
+ def pay(_keygap, _bnf, _amount, _details)
52
+ 'job-id'
53
+ end
54
+
55
+ def find(_query)
56
+ []
119
57
  end
120
58
 
121
- # Find transactions by the criteria. All criterias are regular expressions
122
- # and their summary result is concatenated by OR. For example, this request
123
- # will return all transactions that have "pizza" in details OR which
124
- # are coming from the root wallet:
125
- #
126
- # find(details: /pizza/, bnf: '0000000000000000')
127
- #
128
- # The method returns an array of Zold::Txn objects.
129
- def find(query)
130
- start = Time.now
131
- http = clean(
59
+ def wait(_job, time: 5 * 60)
60
+ raise 'Time must be positive' if time.negative?
61
+ 'OK'
62
+ end
63
+ end
64
+
65
+ # Makes a new object of the class. The <tt>key</tt> you are supposed
66
+ # to obtain at this page: https://wts.zold.io/api. You will have to login
67
+ # and confirm your account first. Keep this key secret, to avoid
68
+ # information lost. However, even knowing the secret no payments can
69
+ # be sent without they keygap.
70
+ def initialize(key, log: Loog::NULL)
71
+ raise 'Key can\'t be nil' if key.nil?
72
+ @key = key
73
+ raise 'Log can\'t be nil' if log.nil?
74
+ @log = log
75
+ end
76
+
77
+ # Initiate PULL request. The server will pull your wallet form the network,
78
+ # and make it ready for future requests. Without this operation you won't
79
+ # be able to perform <tt>find()</tt> or <tt>balance()</tt> requests.
80
+ #
81
+ # The method returns the job ID, which you should wait for completion
82
+ # using the method <tt>wait()</tt>.
83
+ def pull
84
+ start = Time.now
85
+ job = job_of(
86
+ clean(
132
87
  Typhoeus::Request.get(
133
- 'https://wts.zold.io/find?' + query.map do |k, v|
134
- "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
135
- end.join('&'),
88
+ 'https://wts.zold.io/pull',
136
89
  headers: headers
137
90
  )
138
91
  )
139
- txns = http.body.split("\n").map { |t| Zold::Txn.parse(t) }
140
- debug("#{txns.count} transactions found in #{Zold::Age.new(start)}")
141
- txns
142
- end
92
+ )
93
+ @log.debug("PULL job #{job} started in #{Zold::Age.new(start)}")
94
+ job
95
+ end
143
96
 
144
- # Wait for the job to complete. If the job completes successfully, the
145
- # method returns 'OK' in a few seconds (up to a few minutes). If the
146
- # is some error, the exception will be raised.
147
- def wait(job, time: 5 * 60)
148
- start = Time.now
149
- loop do
150
- if Time.now - start > time
151
- raise "Can't wait any longer for the job #{job} to complete"
152
- end
153
- http = Typhoeus::Request.get(
154
- 'https://wts.zold.io/job?id=' + job,
155
- headers: headers
156
- )
157
- raise "Job #{job} not found on the server" if http.code == 404
158
- raise "Unpredictable response code #{http.code}" unless http.code == 200
159
- next if http.body == 'Running'
160
- raise http.body unless http.body == 'OK'
161
- debug("Job #{job} completed, in #{Zold::Age.new(start)}")
162
- return http.body
163
- end
164
- end
97
+ # Get wallet balance.
98
+ def balance
99
+ start = Time.now
100
+ http = clean(
101
+ Typhoeus::Request.get(
102
+ 'https://wts.zold.io/balance',
103
+ headers: headers
104
+ )
105
+ )
106
+ balance = Zold::Amount.new(zents: http.body.to_i)
107
+ @log.debug("The balance #{balance} retrieved in #{Zold::Age.new(start)}")
108
+ balance
109
+ end
165
110
 
166
- private
111
+ # Get wallet ID.
112
+ def id
113
+ start = Time.now
114
+ http = clean(
115
+ Typhoeus::Request.get(
116
+ 'https://wts.zold.io/id',
117
+ headers: headers
118
+ )
119
+ )
120
+ id = Zold::Id.new(http.body.to_s)
121
+ @log.debug("Wallet ID #{id} retrieved in #{Zold::Age.new(start)}")
122
+ id
123
+ end
167
124
 
168
- def headers
169
- {
170
- 'X-Zold-WTS': @key,
171
- 'User-Agent': 'zold-ruby-sdk'
172
- }
173
- end
125
+ # Initiate PAY request. The <tt>keygap</tt> is a string you get
126
+ # when you confirm the account. The <tt>bnf</tt> is the name of the
127
+ # GitHub account, the wallet ID or the invoice (up to you). The
128
+ # <tt>amount</tt> is the amount in ZLD, e.g. "19.99". The <tt>details</tt>
129
+ # is the text to add to the transaction.
130
+ #
131
+ # The method returns the job ID, which you should wait for completion
132
+ # using the method <tt>wait()</tt>.
133
+ def pay(keygap, bnf, amount, details)
134
+ start = Time.now
135
+ job = job_of(
136
+ clean(
137
+ Typhoeus::Request.post(
138
+ 'https://wts.zold.io/do-pay',
139
+ headers: headers,
140
+ body: { keygap: keygap, bnf: bnf, amount: amount, details: details }
141
+ )
142
+ )
143
+ )
144
+ @log.debug("PAY job #{job} started in #{Zold::Age.new(start)}")
145
+ job
146
+ end
174
147
 
175
- def job_of(http)
176
- job = http.headers['X-Zold-Job']
177
- raise 'Job ID is not returned, for some reason' if job.nil?
178
- job
179
- end
148
+ # Returns current USD rate of one ZLD.
149
+ def usd_rate
150
+ clean(Typhoeus::Request.get('https://wts.zold.io/usd_rate')).body.to_f
151
+ end
180
152
 
181
- def clean(http)
182
- error = http.headers['X-Zold-Error']
183
- raise error unless error.nil?
184
- unless http.code == 200 || http.code == 302
185
- debug(http.body)
186
- raise "Unexpected response code #{http.code}"
153
+ # Find transactions by the criteria. All criterias are regular expressions
154
+ # and their summary result is concatenated by OR. For example, this request
155
+ # will return all transactions that have "pizza" in details OR which
156
+ # are coming from the root wallet:
157
+ #
158
+ # find(details: /pizza/, bnf: '0000000000000000')
159
+ #
160
+ # The method returns an array of Zold::Txn objects.
161
+ def find(query)
162
+ start = Time.now
163
+ http = clean(
164
+ Typhoeus::Request.get(
165
+ 'https://wts.zold.io/find?' + query.map do |k, v|
166
+ "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
167
+ end.join('&'),
168
+ headers: headers
169
+ )
170
+ )
171
+ txns = http.body.split("\n").map { |t| Zold::Txn.parse(t) }
172
+ @log.debug("#{txns.count} transactions found in #{Zold::Age.new(start)}")
173
+ txns
174
+ end
175
+
176
+ # Wait for the job to complete. If the job completes successfully, the
177
+ # method returns 'OK' in a few seconds (up to a few minutes). If the
178
+ # is some error, the exception will be raised.
179
+ def wait(job, time: 5 * 60)
180
+ start = Time.now
181
+ loop do
182
+ if Time.now - start > time
183
+ raise "Can't wait any longer for the job #{job} to complete"
187
184
  end
188
- http
185
+ http = Typhoeus::Request.get(
186
+ 'https://wts.zold.io/job?id=' + job,
187
+ headers: headers
188
+ )
189
+ raise "Job #{job} not found on the server" if http.code == 404
190
+ raise "Unpredictable response code #{http.code}" unless http.code == 200
191
+ if http.body == 'Running'
192
+ @log.debug("Job #{job} is still running, \
193
+ #{Zold::Age.new(start)} already...")
194
+ sleep 1
195
+ next
196
+ end
197
+ raise http.body unless http.body == 'OK'
198
+ @log.debug("Job #{job} completed, in #{Zold::Age.new(start)}")
199
+ return http.body
189
200
  end
201
+ end
190
202
 
191
- def debug(msg)
192
- if @log.respond_to?(:debug)
193
- @log.debug(msg)
194
- elsif @log.respond_to?(:puts)
195
- @log.puts(msg)
196
- end
203
+ private
204
+
205
+ def headers
206
+ {
207
+ 'X-Zold-WTS': @key,
208
+ 'User-Agent': 'zold-ruby-sdk'
209
+ }
210
+ end
211
+
212
+ def job_of(http)
213
+ job = http.headers['X-Zold-Job']
214
+ raise 'Job ID is not returned, for some reason' if job.nil?
215
+ job
216
+ end
217
+
218
+ def clean(http)
219
+ error = http.headers['X-Zold-Error']
220
+ raise error unless error.nil?
221
+ unless http.code == 200 || http.code == 302
222
+ @log.debug(http.body)
223
+ raise "Unexpected response code #{http.code}"
197
224
  end
225
+ http
198
226
  end
199
227
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2018-2019 Yegor Bugayenko
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the 'Software'), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ STDOUT.sync = true
24
+
25
+ require 'simplecov'
26
+ SimpleCov.start
27
+ if ENV['CI'] == 'true'
28
+ require 'codecov'
29
+ SimpleCov.formatter = SimpleCov::Formatter::Codecov
30
+ end
31
+
32
+ require 'minitest/autorun'
@@ -20,6 +20,7 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
+ require 'loog'
23
24
  require 'minitest/autorun'
24
25
  require_relative '../../lib/zold/wts'
25
26
 
@@ -28,33 +29,42 @@ require_relative '../../lib/zold/wts'
28
29
  # Copyright:: Copyright (c) 2018-2019 Yegor Bugayenko
29
30
  # License:: MIT
30
31
  class TestWTS < Minitest::Test
31
- KEY = '8HNxjYuEFp0....LYOWxsEaC3rQ=='
32
+ KEY = '0000000000000000-b416493aefae4ca487c4739050aaec15'
32
33
 
33
34
  def test_pulls
34
- skip if KEY.length < 50
35
- wts = Zold::WTS.new(KEY)
35
+ wts = Zold::WTS.new(KEY, log: Loog::VERBOSE)
36
36
  job = wts.pull
37
37
  wts.wait(job)
38
38
  assert(!job.nil?)
39
39
  end
40
40
 
41
41
  def test_finds_transactions
42
- skip if KEY.length < 50
43
- wts = Zold::WTS.new(KEY)
42
+ wts = Zold::WTS.new(KEY, log: Loog::VERBOSE)
44
43
  job = wts.pull
45
44
  wts.wait(job)
46
- assert_equal(1, wts.find(details: /^for hosting$/).count)
45
+ assert_equal(0, wts.find(details: /^for hosting$/).count)
47
46
  end
48
47
 
49
48
  def test_retrieves_wallet_id
50
- skip if KEY.length < 50
51
- wts = Zold::WTS.new(KEY)
49
+ wts = Zold::WTS.new(KEY, log: Loog::VERBOSE)
52
50
  assert(!wts.id.nil?)
53
51
  end
54
52
 
55
53
  def test_retrieves_balance
56
- skip if KEY.length < 50
57
- wts = Zold::WTS.new(KEY)
54
+ wts = Zold::WTS.new(KEY, log: Loog::VERBOSE)
55
+ job = wts.pull
56
+ wts.wait(job)
57
+ assert(!wts.balance.nil?)
58
+ end
59
+
60
+ def test_retrieves_usd_rate
61
+ wts = Zold::WTS.new(KEY, log: Loog::VERBOSE)
62
+ rate = wts.usd_rate
63
+ assert(!rate.nil?)
64
+ end
65
+
66
+ def test_works_with_fake
67
+ wts = Zold::WTS::Fake.new
58
68
  job = wts.pull
59
69
  wts.wait(job)
60
70
  assert(!wts.balance.zero?)
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
29
29
  s.rubygems_version = '2.2'
30
30
  s.required_ruby_version = '>=2.5'
31
31
  s.name = 'zold-ruby-sdk'
32
- s.version = '0.1.0'
32
+ s.version = '0.2.0'
33
33
  s.license = 'MIT'
34
34
  s.summary = 'Zold score'
35
35
  s.description = 'Ruby SDK for Zold online wallets management system (WTS)'
@@ -41,8 +41,9 @@ Gem::Specification.new do |s|
41
41
  s.test_files = s.files.grep(%r{^(test|features)/})
42
42
  s.rdoc_options = ['--charset=UTF-8']
43
43
  s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
44
+ s.add_runtime_dependency 'loog', '~>0.2'
44
45
  s.add_runtime_dependency 'typhoeus', '1.3.1'
45
- s.add_runtime_dependency 'zold', '0.21.4'
46
+ s.add_runtime_dependency 'zold', '~>0.21'
46
47
  s.add_development_dependency 'codecov', '0.1.14'
47
48
  s.add_development_dependency 'minitest', '5.11.3'
48
49
  s.add_development_dependency 'minitest-hooks', '1.5.0'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold-ruby-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-09 00:00:00.000000000 Z
11
+ date: 2019-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: loog
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.2'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: typhoeus
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -28,16 +42,16 @@ dependencies:
28
42
  name: zold
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - '='
45
+ - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: 0.21.4
47
+ version: '0.21'
34
48
  type: :runtime
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - '='
52
+ - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: 0.21.4
54
+ version: '0.21'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: codecov
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -171,6 +185,7 @@ files:
171
185
  - README.md
172
186
  - Rakefile
173
187
  - lib/zold/wts.rb
188
+ - test/test__helper.rb
174
189
  - test/zold/test_wts.rb
175
190
  - zold-ruby-sdk.gemspec
176
191
  homepage: http://github.com/zold-io/zold-ruby-sdk
@@ -198,4 +213,5 @@ signing_key:
198
213
  specification_version: 2
199
214
  summary: Zold score
200
215
  test_files:
216
+ - test/test__helper.rb
201
217
  - test/zold/test_wts.rb