zold 0.14.49 → 0.14.50

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: b3a66103ede11237d2ccfcdd1ce46a4e59eedd713a601443440459677c7f665e
4
- data.tar.gz: 177d88b0030850e1d6848a7ef92b10873e23342b77f50ff2b2344c29dac4d99a
3
+ metadata.gz: c93f5cab672e8cda8e44e15b589f97d593486c089f4428487370835207087b00
4
+ data.tar.gz: 5a14a57fcf20345a21acb27086042dac6cb7df2abfb5b226bae85d6014cc9899
5
5
  SHA512:
6
- metadata.gz: 7d8ede15f27a062b31ffa705fc3ccf4f387a7884dd5d3b18527cb24b9d3baa1e31715420412a385f41d1f98735b3de7ff017218d5c21fec301fcc0f7e3a31a50
7
- data.tar.gz: c9d21059a4093c33677c81b1402b217ff8cbe1aff453f6682fc815681a938b584ae5b52d7b5ca5e7ec21f763aa96ec611fe66bee3c5d69cc360f93ee590ae1af
6
+ metadata.gz: 8f4ac2585a5eaf88260243cdad9326eaee19a8a5c7db6689a3bd0a1fd9ba69d466aa95a390f4937ec9ae3fa916c5cb72214a9d4d20ae563e9e4c2d65ff41e018
7
+ data.tar.gz: 992a00ef00711065ee79e191b3a1ac40d96c70e3074331298484a5a90f5f27170925c5420cac43b617aaabdc1a3712c5729a4d2ff452923faeec3e797c2a89bb
@@ -111,6 +111,10 @@ module Zold
111
111
  @coins.negative?
112
112
  end
113
113
 
114
+ def positive?
115
+ @coins.positive?
116
+ end
117
+
114
118
  def *(other)
115
119
  raise '* may only work with a number' unless other.is_a?(Integer) || other.is_a?(Float)
116
120
  c = (@coins * other).to_i
@@ -25,6 +25,6 @@
25
25
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module Zold
28
- VERSION = '0.14.49'
28
+ VERSION = '0.14.50'
29
29
  PROTOCOL = 2
30
30
  end
@@ -130,7 +130,7 @@ module Zold
130
130
 
131
131
  def add(txn)
132
132
  raise 'The txn has to be of type Txn' unless txn.is_a?(Txn)
133
- dup = txns.find { |t| t.bnf == txn.bnf && t.id == txn.id }
133
+ dup = txns.find { |t| t.bnf == txn.bnf && t.id == txn.id && t.amount.negative? && txn.amount.negative? }
134
134
  raise "Wallet #{id} can't pay itself: #{txn}" if txn.bnf == id
135
135
  raise "The transaction with the same ID and BNF already exists in #{id}: #{dup}" unless dup.nil?
136
136
  raise "The tax payment already exists in #{id}: #{txn}" if Tax.new(self).exists?(txn.details)
@@ -47,6 +47,8 @@ class TestAmount < Minitest::Test
47
47
  def test_compares_with_zero
48
48
  amount = Zold::Amount.new(zld: 0.00001)
49
49
  assert(!amount.zero?)
50
+ assert(amount.positive?)
51
+ assert(!amount.negative?)
50
52
  assert(amount != Zold::Amount::ZERO)
51
53
  end
52
54
 
@@ -71,6 +71,18 @@ class TestWallet < Minitest::Test
71
71
  end
72
72
  end
73
73
 
74
+ def test_adds_similar_transaction
75
+ FakeHome.new.run do |home|
76
+ wallet = home.create_wallet
77
+ amount = Zold::Amount.new(zld: 39.99)
78
+ key = Zold::Key.new(file: 'fixtures/id_rsa')
79
+ id = Zold::Id.new
80
+ wallet.sub(amount, "NOPREFIX@#{id}", key)
81
+ wallet.add(Zold::Txn.new(1, Time.now, amount, 'NOPREFIX', id, '-'))
82
+ assert(wallet.balance.zero?)
83
+ end
84
+ end
85
+
74
86
  def test_refurbishes_wallet
75
87
  FakeHome.new.run do |home|
76
88
  wallet = home.create_wallet
@@ -54,7 +54,7 @@ and suggests a different architecture for digital wallet maintenance.'
54
54
  s.test_files = s.files.grep(%r{^(test|features)/})
55
55
  s.rdoc_options = ['--charset=UTF-8']
56
56
  s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
57
- s.add_runtime_dependency 'backtrace', '~>0.3'
57
+ s.add_runtime_dependency 'backtrace', '~>0'
58
58
  s.add_runtime_dependency 'cachy', '~>0.4'
59
59
  s.add_runtime_dependency 'concurrent-ruby', '~>1.0'
60
60
  s.add_runtime_dependency 'cucumber', '~>3.1' # has to stay here for Heroku
@@ -75,10 +75,10 @@ and suggests a different architecture for digital wallet maintenance.'
75
75
  s.add_runtime_dependency 'slop', '~>4.4'
76
76
  s.add_runtime_dependency 'sys-proctable', '~>1.1'
77
77
  s.add_runtime_dependency 'usagewatch_ext', '~>0.2'
78
- s.add_runtime_dependency 'xcop', '~>0.5'
78
+ s.add_runtime_dependency 'xcop', '~>0'
79
79
  s.add_development_dependency 'codecov', '~>0.1'
80
80
  s.add_development_dependency 'minitest', '~>5.11'
81
- s.add_development_dependency 'random-port', '~>0.1'
81
+ s.add_development_dependency 'random-port', '~>0'
82
82
  s.add_development_dependency 'rdoc', '~>4.2'
83
83
  s.add_development_dependency 'rspec-rails', '~>3.1'
84
84
  s.add_development_dependency 'webmock', '~>3.4'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.49
4
+ version: 0.14.50
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-15 00:00:00.000000000 Z
11
+ date: 2018-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.3'
19
+ version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.3'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: cachy
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -310,14 +310,14 @@ dependencies:
310
310
  requirements:
311
311
  - - "~>"
312
312
  - !ruby/object:Gem::Version
313
- version: '0.5'
313
+ version: '0'
314
314
  type: :runtime
315
315
  prerelease: false
316
316
  version_requirements: !ruby/object:Gem::Requirement
317
317
  requirements:
318
318
  - - "~>"
319
319
  - !ruby/object:Gem::Version
320
- version: '0.5'
320
+ version: '0'
321
321
  - !ruby/object:Gem::Dependency
322
322
  name: codecov
323
323
  requirement: !ruby/object:Gem::Requirement
@@ -352,14 +352,14 @@ dependencies:
352
352
  requirements:
353
353
  - - "~>"
354
354
  - !ruby/object:Gem::Version
355
- version: '0.1'
355
+ version: '0'
356
356
  type: :development
357
357
  prerelease: false
358
358
  version_requirements: !ruby/object:Gem::Requirement
359
359
  requirements:
360
360
  - - "~>"
361
361
  - !ruby/object:Gem::Version
362
- version: '0.1'
362
+ version: '0'
363
363
  - !ruby/object:Gem::Dependency
364
364
  name: rdoc
365
365
  requirement: !ruby/object:Gem::Requirement