thefox-wallet 0.10.0 → 0.10.1

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
  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