reckon 0.3.8 → 0.3.9
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 +7 -0
- data/.ruby-version +1 -1
- data/Gemfile.lock +1 -1
- data/README.md +31 -17
- data/bin/reckon +1 -1
- data/lib/reckon.rb +2 -0
- data/lib/reckon/app.rb +15 -219
- data/lib/reckon/csv_parser.rb +259 -0
- data/lib/reckon/money.rb +150 -0
- data/reckon.gemspec +2 -2
- data/spec/reckon/app_spec.rb +14 -270
- data/spec/reckon/csv_parser_spec.rb +393 -0
- data/spec/reckon/date_column_spec.rb +39 -0
- data/spec/reckon/money_column_spec.rb +52 -0
- data/spec/reckon/money_spec.rb +68 -0
- metadata +28 -35
@@ -0,0 +1,68 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require "spec_helper"
|
5
|
+
require 'rubygems'
|
6
|
+
require 'reckon'
|
7
|
+
|
8
|
+
describe Reckon::Money do
|
9
|
+
describe "from_s" do
|
10
|
+
it "should handle currency indicators" do
|
11
|
+
Reckon::Money::from_s( "$2.00" ).should == 2.00
|
12
|
+
Reckon::Money::from_s( "-$1025.67" ).should == -1025.67
|
13
|
+
Reckon::Money::from_s( "$-1025.67" ).should == -1025.67
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should handle the comma_separates_cents option correctly" do
|
17
|
+
Reckon::Money::from_s( "$2,00", :comma_separates_cents => true ).should == 2.00
|
18
|
+
Reckon::Money::from_s( "-$1025,67", :comma_separates_cents => true ).should == -1025.67
|
19
|
+
Reckon::Money::from_s( "$-1025,67", :comma_separates_cents => true ).should == -1025.67
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return nil for an empty string" do
|
23
|
+
Reckon::Money::from_s( "" ).should == nil
|
24
|
+
Reckon::Money::from_s( "" ).should_not == 0
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should handle 1000 indicators correctly" do
|
28
|
+
Reckon::Money::from_s( "$2.000,00", :comma_separates_cents => true ).should == 2000.00
|
29
|
+
Reckon::Money::from_s( "-$1,025.67" ).should == -1025.67
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "pretty" do
|
34
|
+
it "work with negative and positive numbers" do
|
35
|
+
Reckon::Money.new( -20.00 ).pretty.should == "-$20.00"
|
36
|
+
Reckon::Money.new( 1558.52 ).pretty.should == " $1558.52"
|
37
|
+
end
|
38
|
+
|
39
|
+
it "work with other currencies such as €" do
|
40
|
+
Reckon::Money.new( -20.00, :currency => "€", :suffixed => false ).pretty.should == "-€20.00"
|
41
|
+
Reckon::Money.new( 1558.52, :currency => "€", :suffixed => false ).pretty.should == " €1558.52"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "work with suffixed currencies such as SEK" do
|
45
|
+
Reckon::Money.new( -20.00, :currency => "SEK", :suffixed => true ).pretty.should == "-20.00 SEK"
|
46
|
+
Reckon::Money.new( 1558.52, :currency => "SEK", :suffixed => true ).pretty.should == " 1558.52 SEK"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "likelihood" do
|
51
|
+
it "should return the likelihood that a string represents money" do
|
52
|
+
Reckon::Money::likelihood( "$20.00" ).should == 45
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "equality" do
|
57
|
+
it "should be comparable to other money" do
|
58
|
+
Reckon::Money.new( 2.0 ).should == Reckon::Money.new( 2.0 )
|
59
|
+
Reckon::Money.new( 1.0 ).should <= Reckon::Money.new( 2.0 )
|
60
|
+
Reckon::Money.new( 3.0 ).should > Reckon::Money.new( 2.0 )
|
61
|
+
end
|
62
|
+
it "should be comparable to other float" do
|
63
|
+
Reckon::Money.new( 2.0 ).should == 2.0
|
64
|
+
Reckon::Money.new( 1.0 ).should <= 2.0
|
65
|
+
Reckon::Money.new( 3.0 ).should > 2.0
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
metadata
CHANGED
@@ -1,94 +1,84 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reckon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.9
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Andrew Cantino
|
8
|
+
- BlackEdder
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-02-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
17
|
requirements:
|
19
|
-
- -
|
18
|
+
- - '>='
|
20
19
|
- !ruby/object:Gem::Version
|
21
20
|
version: 1.2.9
|
22
21
|
type: :development
|
23
22
|
prerelease: false
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
|
-
- -
|
25
|
+
- - '>='
|
28
26
|
- !ruby/object:Gem::Version
|
29
27
|
version: 1.2.9
|
30
28
|
- !ruby/object:Gem::Dependency
|
31
29
|
name: fastercsv
|
32
30
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
31
|
requirements:
|
35
|
-
- -
|
32
|
+
- - '>='
|
36
33
|
- !ruby/object:Gem::Version
|
37
34
|
version: 1.5.1
|
38
35
|
type: :runtime
|
39
36
|
prerelease: false
|
40
37
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
38
|
requirements:
|
43
|
-
- -
|
39
|
+
- - '>='
|
44
40
|
- !ruby/object:Gem::Version
|
45
41
|
version: 1.5.1
|
46
42
|
- !ruby/object:Gem::Dependency
|
47
43
|
name: chronic
|
48
44
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
45
|
requirements:
|
51
|
-
- -
|
46
|
+
- - '>='
|
52
47
|
- !ruby/object:Gem::Version
|
53
48
|
version: 0.3.0
|
54
49
|
type: :runtime
|
55
50
|
prerelease: false
|
56
51
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
52
|
requirements:
|
59
|
-
- -
|
53
|
+
- - '>='
|
60
54
|
- !ruby/object:Gem::Version
|
61
55
|
version: 0.3.0
|
62
56
|
- !ruby/object:Gem::Dependency
|
63
57
|
name: highline
|
64
58
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
59
|
requirements:
|
67
|
-
- -
|
60
|
+
- - '>='
|
68
61
|
- !ruby/object:Gem::Version
|
69
62
|
version: 1.5.2
|
70
63
|
type: :runtime
|
71
64
|
prerelease: false
|
72
65
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
66
|
requirements:
|
75
|
-
- -
|
67
|
+
- - '>='
|
76
68
|
- !ruby/object:Gem::Version
|
77
69
|
version: 1.5.2
|
78
70
|
- !ruby/object:Gem::Dependency
|
79
71
|
name: terminal-table
|
80
72
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
73
|
requirements:
|
83
|
-
- -
|
74
|
+
- - '>='
|
84
75
|
- !ruby/object:Gem::Version
|
85
76
|
version: 1.4.2
|
86
77
|
type: :runtime
|
87
78
|
prerelease: false
|
88
79
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
80
|
requirements:
|
91
|
-
- -
|
81
|
+
- - '>='
|
92
82
|
- !ruby/object:Gem::Version
|
93
83
|
version: 1.4.2
|
94
84
|
description: Reckon automagically converts CSV files for use with the command-line
|
@@ -115,47 +105,50 @@ files:
|
|
115
105
|
- bin/reckon
|
116
106
|
- lib/reckon.rb
|
117
107
|
- lib/reckon/app.rb
|
108
|
+
- lib/reckon/csv_parser.rb
|
118
109
|
- lib/reckon/ledger_parser.rb
|
110
|
+
- lib/reckon/money.rb
|
119
111
|
- reckon.gemspec
|
120
112
|
- spec/data_fixtures/extratofake.csv
|
121
113
|
- spec/reckon/app_spec.rb
|
114
|
+
- spec/reckon/csv_parser_spec.rb
|
115
|
+
- spec/reckon/date_column_spec.rb
|
122
116
|
- spec/reckon/ledger_parser_spec.rb
|
117
|
+
- spec/reckon/money_column_spec.rb
|
118
|
+
- spec/reckon/money_spec.rb
|
123
119
|
- spec/spec.opts
|
124
120
|
- spec/spec_helper.rb
|
125
121
|
homepage: https://github.com/cantino/reckon
|
126
122
|
licenses: []
|
123
|
+
metadata: {}
|
127
124
|
post_install_message:
|
128
125
|
rdoc_options: []
|
129
126
|
require_paths:
|
130
127
|
- lib
|
131
128
|
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
-
none: false
|
133
129
|
requirements:
|
134
|
-
- -
|
130
|
+
- - '>='
|
135
131
|
- !ruby/object:Gem::Version
|
136
132
|
version: '0'
|
137
|
-
segments:
|
138
|
-
- 0
|
139
|
-
hash: -1602098812968474489
|
140
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
134
|
requirements:
|
143
|
-
- -
|
135
|
+
- - '>='
|
144
136
|
- !ruby/object:Gem::Version
|
145
137
|
version: '0'
|
146
|
-
segments:
|
147
|
-
- 0
|
148
|
-
hash: -1602098812968474489
|
149
138
|
requirements: []
|
150
139
|
rubyforge_project:
|
151
|
-
rubygems_version: 1.
|
140
|
+
rubygems_version: 2.1.11
|
152
141
|
signing_key:
|
153
|
-
specification_version:
|
142
|
+
specification_version: 4
|
154
143
|
summary: Utility for interactively converting and labeling CSV files for the Ledger
|
155
144
|
accounting tool.
|
156
145
|
test_files:
|
157
146
|
- spec/data_fixtures/extratofake.csv
|
158
147
|
- spec/reckon/app_spec.rb
|
148
|
+
- spec/reckon/csv_parser_spec.rb
|
149
|
+
- spec/reckon/date_column_spec.rb
|
159
150
|
- spec/reckon/ledger_parser_spec.rb
|
151
|
+
- spec/reckon/money_column_spec.rb
|
152
|
+
- spec/reckon/money_spec.rb
|
160
153
|
- spec/spec.opts
|
161
154
|
- spec/spec_helper.rb
|