journala 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/journala.gemspec +1 -1
- data/lib/journala.rb +2 -0
- data/lib/journala/journal.rb +13 -9
- data/lib/journala/row.rb +1 -1
- metadata +8 -10
data/journala.gemspec
CHANGED
data/lib/journala.rb
CHANGED
data/lib/journala/journal.rb
CHANGED
@@ -48,7 +48,7 @@ module Journala
|
|
48
48
|
other_journal.entries.each do |entry|
|
49
49
|
transaction_id = entry.description.match(/\(transaction id: (\d+)\)/)[1]
|
50
50
|
|
51
|
-
if @entries.none? {|e| e.description.match(/\(transaction id: \
|
51
|
+
if @entries.none? {|e| e.description.match(/\(transaction id: #{transaction_id}\)/) }
|
52
52
|
@entries << entry
|
53
53
|
end
|
54
54
|
end
|
@@ -60,6 +60,7 @@ module Journala
|
|
60
60
|
file = File.open(filename, 'r')
|
61
61
|
|
62
62
|
journal = Journal.new
|
63
|
+
current_entry = nil
|
63
64
|
|
64
65
|
file.each_line do |line|
|
65
66
|
if line =~ /^$/
|
@@ -69,25 +70,28 @@ module Journala
|
|
69
70
|
confirmed = $2
|
70
71
|
description = $3
|
71
72
|
|
72
|
-
|
73
|
+
current_entry = Entry.new(:date => date, :confirmed => confirmed.present?, :description => description)
|
73
74
|
|
74
|
-
journal.entries <<
|
75
|
+
journal.entries << current_entry
|
75
76
|
|
76
77
|
# row with amount
|
77
|
-
elsif line =~ /\s+(.*)\s{2,}
|
78
|
-
row = Row.new(:account => $1, :amount => $2)
|
79
|
-
|
78
|
+
elsif line =~ /\s+(.*)\s{2,}(-?)\$?([\d\.]+)/
|
79
|
+
row = Row.new(:account => $1, :amount => $2.blank? ? $3 : (0.0 - $3.to_f))
|
80
|
+
current_entry.rows << row
|
80
81
|
|
81
82
|
# row without amount
|
82
83
|
elsif line =~ /\s+(.*)/
|
83
|
-
|
84
|
+
# already have 2 rows and try to do one without an amount? sorry, that's not allowed
|
85
|
+
raise "Must specify amount for each row for entries with more than 2 rows" if current_entry.rows.count >= 2
|
86
|
+
|
87
|
+
other_amount = current_entry.rows.first.amount
|
84
88
|
row = Row.new(:account => $1, :amount => 0-other_amount)
|
85
|
-
|
89
|
+
current_entry.rows << row
|
86
90
|
end
|
87
91
|
|
88
92
|
end
|
89
93
|
|
90
|
-
|
94
|
+
file.close
|
91
95
|
|
92
96
|
journal
|
93
97
|
end
|
data/lib/journala/row.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: journala
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-11-25 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
|
-
requirement: &
|
16
|
+
requirement: &70099074010140 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70099074010140
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jeweler
|
27
|
-
requirement: &
|
27
|
+
requirement: &70099074009560 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70099074009560
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rcov
|
38
|
-
requirement: &
|
38
|
+
requirement: &70099074008780 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70099074008780
|
47
47
|
description: a library that reads and write ledger format ledger files
|
48
48
|
email: rob.m.kaufman@gmail.com
|
49
49
|
executables: []
|
@@ -75,9 +75,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
|
-
segments:
|
79
|
-
- 0
|
80
|
-
hash: -389571128459184875
|
81
78
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
79
|
none: false
|
83
80
|
requirements:
|
@@ -91,3 +88,4 @@ signing_key:
|
|
91
88
|
specification_version: 3
|
92
89
|
summary: inspired by ledger
|
93
90
|
test_files: []
|
91
|
+
has_rdoc:
|