thefox-wallet 0.10.0 → 0.10.1

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
  SHA1:
3
- metadata.gz: cd5ea869e14eae3be3cbab943cf67509350237a2
4
- data.tar.gz: e21e861a5c49337b1f383cb776c0e1732fb90ebd
3
+ metadata.gz: 5aa512dc7e1d1c4b47e56a6a17b54c49261be834
4
+ data.tar.gz: 0f3dafbb310164d06dde21a0d62ff5d7f5ee0fd0
5
5
  SHA512:
6
- metadata.gz: 8250d333120eea0261af00cc3d84c58f62334b354be89de4d8e2e6209f95cbb97581b8b760d3d230f8f8c574d2201519e31c3e8f62df376b8b9bdc1872fe6635
7
- data.tar.gz: 28a6c2edca9e17e80dc4c63f562b9495f8bcf3919b7e4f1b2acd3f74a2677164878fd6486e2279f9ceca798f0ce333a476bd88e9e041bf8b8b6b3651f9ad0380
6
+ metadata.gz: 0232f070dd469143833763373f6048b856e83515485a7d95cae910f48f16ec060db70efdc53dee3f209a66d374a88deca1089a16029eb7170ef50f1acdd7609c
7
+ data.tar.gz: b3fe40a5230bb5e313cf67ebdc3682ff1b89c7f2b865b008c21237fa38497e6650bf3de8d4bb1f4234d7f29dcd1efc2e63e466673ac534ec365f70540f2e2a3c
@@ -22,16 +22,10 @@ module TheFox::Wallet
22
22
  end
23
23
 
24
24
  print "revenue: [#{@options[:entry_revenue]}] "
25
- revenue_t = STDIN.gets.strip
26
- if revenue_t.length > 0
27
- @options[:entry_revenue] = eval(revenue_t).to_s.sub(/,/, '.').to_f.round(NUMBER_ROUND).abs
28
- end
25
+ @options[:entry_revenue] = revenue(STDIN.gets.strip)
29
26
 
30
27
  print "expense: [#{@options[:entry_expense]}] "
31
- expense_t = STDIN.gets.strip
32
- if expense_t.length > 0
33
- @options[:entry_expense] = -eval(expense_t).to_s.sub(/,/, '.').to_f.round(NUMBER_ROUND).abs
34
- end
28
+ @options[:entry_expense] = expense(STDIN.gets.strip)
35
29
 
36
30
  print "category: [#{@options[:entry_category]}] "
37
31
  category_t = STDIN.gets.strip
@@ -65,6 +59,22 @@ module TheFox::Wallet
65
59
  wallet.add(entry)
66
60
  end
67
61
 
62
+ def revenue(revenue_s)
63
+ rv = 0.0
64
+ if !revenue_s.nil? && revenue_s.length > 0
65
+ rv = eval(revenue_s.to_s.gsub(/,/, '.')).to_f.round(NUMBER_ROUND).abs
66
+ end
67
+ rv
68
+ end
69
+
70
+ def expense(expense_s)
71
+ rv = 0.0
72
+ if !expense_s.nil? && expense_s.length > 0
73
+ rv = -eval(expense_s.to_s.gsub(/,/, '.')).to_f.round(NUMBER_ROUND).abs
74
+ end
75
+ rv
76
+ end
77
+
68
78
  end
69
79
 
70
80
  end
@@ -2,8 +2,8 @@
2
2
  module TheFox
3
3
  module Wallet
4
4
  NAME = 'Wallet'
5
- VERSION = '0.10.0'
6
- DATE = '2016-07-03'
5
+ VERSION = '0.10.1'
6
+ DATE = '2016-07-04'
7
7
  HOMEPAGE = 'https://github.com/TheFox/wallet'
8
8
  NUMBER_FORMAT = '%.2f'
9
9
  NUMBER_ROUND = 5
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'minitest/autorun'
4
+ require 'wallet'
5
+
6
+
7
+ class TestAddCommand < MiniTest::Test
8
+ def test_revenue
9
+ cmd = TheFox::Wallet::AddCommand.new
10
+
11
+ # String
12
+ assert_equal(0.0, cmd.revenue(nil))
13
+ assert_equal(0.0, cmd.revenue(''))
14
+ assert_equal(21.0, cmd.revenue('21'))
15
+ assert_equal(21.0, cmd.revenue(' 21 '))
16
+
17
+ # Negative
18
+ assert_equal(21.0, cmd.revenue('-21'))
19
+
20
+ # Float
21
+ assert_equal(21.2, cmd.revenue('21.2'))
22
+ assert_equal(21.2, cmd.revenue('21.20'))
23
+ assert_equal(21.87, cmd.revenue('21.87'))
24
+
25
+ # Calc
26
+ assert_equal(16, cmd.revenue('21-5'))
27
+ assert_equal(15.8, cmd.revenue('21.7-5.9'))
28
+ assert_equal(14.8, cmd.revenue('22,7-7,9'))
29
+ assert_equal(29, cmd.revenue('21-50'))
30
+ assert_equal(0.1, cmd.revenue('0,1-0,2'))
31
+ assert_equal(0.0, cmd.revenue('0,1-0,1'))
32
+ end
33
+
34
+ def test_expense
35
+ cmd = TheFox::Wallet::AddCommand.new
36
+
37
+ # String
38
+ assert_equal(0.0, cmd.expense(nil))
39
+ assert_equal(0.0, cmd.expense(''))
40
+ assert_equal(-21.0, cmd.expense('21'))
41
+ assert_equal(-21.0, cmd.expense(' 21 '))
42
+
43
+ # Positive
44
+ assert_equal(-21.0, cmd.expense('-21'))
45
+ assert_equal(-21.0, cmd.expense('21'))
46
+
47
+ # Float
48
+ assert_equal(-21.2, cmd.expense('21.2'))
49
+ assert_equal(-21.2, cmd.expense('21.20'))
50
+ assert_equal(-21.87, cmd.expense('21.87'))
51
+
52
+ # Calc
53
+ assert_equal(-16, cmd.expense('21-5'))
54
+ assert_equal(-15.8, cmd.expense('21.7-5.9'))
55
+ assert_equal(-14.8, cmd.expense('22,7-7,9'))
56
+ assert_equal(-29, cmd.expense('21-50'))
57
+ assert_equal(-0.1, cmd.expense('0,1-0,2'))
58
+ assert_equal(0.0, cmd.expense('0,1-0,1'))
59
+ end
60
+ end
data/tests/ts_all.rb CHANGED
@@ -2,3 +2,4 @@
2
2
 
3
3
  require_relative 'tc_wallet'
4
4
  require_relative 'tc_entry'
5
+ require_relative 'tc_command_add'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: thefox-wallet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Mayer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-03 00:00:00.000000000 Z
11
+ date: 2016-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -48,6 +48,7 @@ files:
48
48
  - lib/wallet/entry.rb
49
49
  - lib/wallet/version.rb
50
50
  - lib/wallet/wallet.rb
51
+ - tests/tc_command_add.rb
51
52
  - tests/tc_entry.rb
52
53
  - tests/tc_wallet.rb
53
54
  - tests/ts_all.rb