reckon 0.3.1 → 0.3.2
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.
- data/.gitignore +24 -0
- data/.rvmrc +1 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +32 -0
- data/Rakefile +3 -46
- data/bin/reckon +0 -0
- data/lib/reckon/app.rb +14 -7
- data/reckon.gemspec +12 -63
- data/spec/reckon/app_spec.rb +10 -1
- data/spec/reckon/ledger_parser_spec.rb +1 -1
- data/spec/spec_helper.rb +3 -6
- metadata +92 -118
data/.gitignore
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
## MAC OS
|
2
|
+
.DS_Store
|
3
|
+
|
4
|
+
## TEXTMATE
|
5
|
+
*.tmproj
|
6
|
+
tmtags
|
7
|
+
|
8
|
+
## EMACS
|
9
|
+
*~
|
10
|
+
\#*
|
11
|
+
.\#*
|
12
|
+
|
13
|
+
## VIM
|
14
|
+
*.swp
|
15
|
+
|
16
|
+
## PROJECT::GENERAL
|
17
|
+
coverage
|
18
|
+
rdoc
|
19
|
+
pkg
|
20
|
+
|
21
|
+
## PROJECT::SPECIFIC
|
22
|
+
.idea
|
23
|
+
reckon_local
|
24
|
+
private_tests
|
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use 1.9.3@reckon --create
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
reckon (0.3.1)
|
5
|
+
chronic (>= 0.3.0)
|
6
|
+
fastercsv (>= 1.5.1)
|
7
|
+
highline (>= 1.5.2)
|
8
|
+
terminal-table (>= 1.4.2)
|
9
|
+
|
10
|
+
GEM
|
11
|
+
remote: http://rubygems.org/
|
12
|
+
specs:
|
13
|
+
chronic (0.6.7)
|
14
|
+
diff-lcs (1.1.3)
|
15
|
+
fastercsv (1.5.5)
|
16
|
+
highline (1.6.13)
|
17
|
+
rspec (2.11.0)
|
18
|
+
rspec-core (~> 2.11.0)
|
19
|
+
rspec-expectations (~> 2.11.0)
|
20
|
+
rspec-mocks (~> 2.11.0)
|
21
|
+
rspec-core (2.11.1)
|
22
|
+
rspec-expectations (2.11.2)
|
23
|
+
diff-lcs (~> 1.1.3)
|
24
|
+
rspec-mocks (2.11.1)
|
25
|
+
terminal-table (1.4.5)
|
26
|
+
|
27
|
+
PLATFORMS
|
28
|
+
ruby
|
29
|
+
|
30
|
+
DEPENDENCIES
|
31
|
+
reckon!
|
32
|
+
rspec (>= 1.2.9)
|
data/Rakefile
CHANGED
@@ -1,49 +1,6 @@
|
|
1
|
-
require
|
2
|
-
require '
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require 'rspec/core/rake_task'
|
3
3
|
|
4
|
-
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "reckon"
|
8
|
-
gem.summary = %Q{Utility for interactively converting and labeling CSV files for the Ledger accounting tool.}
|
9
|
-
gem.description = %Q{Reckon automagically converts CSV files for use with the command-line accounting tool Ledger. It also helps you to select the correct accounts associated with the CSV data using Bayesian machine learning.}
|
10
|
-
gem.email = "andrew@iterationlabs.com"
|
11
|
-
gem.homepage = "http://github.com/iterationlabs/reckon"
|
12
|
-
gem.authors = ["Andrew Cantino"]
|
13
|
-
gem.add_development_dependency "rspec", "1.3.1"
|
14
|
-
gem.add_development_dependency "jeweler"
|
15
|
-
gem.add_dependency('fastercsv', '>= 1.5.1')
|
16
|
-
gem.add_dependency('chronic', '>= 0.3.0')
|
17
|
-
gem.add_dependency('highline', '>= 1.5.2')
|
18
|
-
gem.add_dependency('terminal-table', '>= 1.4.2')
|
19
|
-
end
|
20
|
-
Jeweler::GemcutterTasks.new
|
21
|
-
rescue LoadError
|
22
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'spec/rake/spectask'
|
26
|
-
Spec::Rake::SpecTask.new(:spec) do |spec|
|
27
|
-
spec.libs << 'lib' << 'spec'
|
28
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
29
|
-
end
|
30
|
-
|
31
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
32
|
-
spec.libs << 'lib' << 'spec'
|
33
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
34
|
-
spec.rcov = true
|
35
|
-
end
|
36
|
-
|
37
|
-
task :spec => :check_dependencies
|
4
|
+
RSpec::Core::RakeTask.new(:spec)
|
38
5
|
|
39
6
|
task :default => :spec
|
40
|
-
|
41
|
-
require 'rake/rdoctask'
|
42
|
-
Rake::RDocTask.new do |rdoc|
|
43
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
44
|
-
|
45
|
-
rdoc.rdoc_dir = 'rdoc'
|
46
|
-
rdoc.title = "reckon #{version}"
|
47
|
-
rdoc.rdoc_files.include('README*')
|
48
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
49
|
-
end
|
data/bin/reckon
CHANGED
File without changes
|
data/lib/reckon/app.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'pp'
|
2
|
+
|
1
3
|
module Reckon
|
2
4
|
class App
|
3
5
|
VERSION = "Reckon 0.1"
|
@@ -171,6 +173,7 @@ module Reckon
|
|
171
173
|
def date_for(index)
|
172
174
|
value = columns[date_column_index][index]
|
173
175
|
value = [$1, $2, $3].join("/") if value =~ /^(\d{4})(\d{2})(\d{2})\d+\[\d+\:GMT\]$/ # chase format
|
176
|
+
value = [$3, $2, $1].join("/") if value =~ /^(\d{2})\.(\d{2})\.(\d{4})$/ # chase format
|
174
177
|
begin
|
175
178
|
guess = Chronic.parse(value, :context => :past)
|
176
179
|
if guess.to_i < 953236800 && value =~ /\//
|
@@ -226,7 +229,7 @@ module Reckon
|
|
226
229
|
|
227
230
|
# Try to determine if this is a balance column
|
228
231
|
entry_as_num = entry.gsub(/[^\-\d\.]/, '').to_f
|
229
|
-
if last && entry_as_num != 0 && last != 0
|
232
|
+
if last && entry_as_num != 0 && last != 0
|
230
233
|
row.each do |row_entry|
|
231
234
|
row_entry = row_entry.to_s.gsub(/[^\-\d\.]/, '').to_f
|
232
235
|
if row_entry != 0 && last + row_entry == entry_as_num
|
@@ -267,7 +270,6 @@ module Reckon
|
|
267
270
|
output_columns
|
268
271
|
end
|
269
272
|
|
270
|
-
require 'pp'
|
271
273
|
def detect_columns
|
272
274
|
results, found_likely_money_column = evaluate_columns(columns)
|
273
275
|
self.money_column_indices = [ results.sort { |a, b| b[:money_score] <=> a[:money_score] }.first[:index] ]
|
@@ -287,7 +289,7 @@ module Reckon
|
|
287
289
|
break
|
288
290
|
end
|
289
291
|
end
|
290
|
-
|
292
|
+
|
291
293
|
if !found_likely_double_money_columns && !settings[:testing]
|
292
294
|
puts "I didn't find a high-likelyhood money column, but I'm taking my best guess with column #{money_column_indices.first + 1}."
|
293
295
|
end
|
@@ -331,7 +333,9 @@ module Reckon
|
|
331
333
|
|
332
334
|
def parse
|
333
335
|
data = options[:string] || File.read(options[:file])
|
334
|
-
|
336
|
+
@csv_data = (RUBY_VERSION =~ /^1\.9/ ? CSV : FasterCSV).parse(data.strip, :col_sep => options[:csv_separator] || ',')
|
337
|
+
csv_data.shift if options[:contains_header]
|
338
|
+
csv_data
|
335
339
|
end
|
336
340
|
|
337
341
|
def self.parse_opts(args = ARGV)
|
@@ -364,7 +368,11 @@ module Reckon
|
|
364
368
|
options[:ignore_columns] = ignore.split(",").map { |i| i.to_i }
|
365
369
|
end
|
366
370
|
|
367
|
-
opts.on("", "--
|
371
|
+
opts.on("", "--contains-header", "The first row of the CSV is a header and should be skipped") do |contains_header|
|
372
|
+
options[:contains_header] = contains_header
|
373
|
+
end
|
374
|
+
|
375
|
+
opts.on("", "--csv-separator ','", "Separator for parsing the CSV - default is comma.") do |csv_separator|
|
368
376
|
options[:csv_separator] = csv_separator
|
369
377
|
end
|
370
378
|
|
@@ -409,10 +417,9 @@ module Reckon
|
|
409
417
|
def self.settings
|
410
418
|
@settings
|
411
419
|
end
|
412
|
-
|
420
|
+
|
413
421
|
def settings
|
414
422
|
self.class.settings
|
415
423
|
end
|
416
424
|
end
|
417
425
|
end
|
418
|
-
|
data/reckon.gemspec
CHANGED
@@ -1,75 +1,24 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
5
3
|
|
6
4
|
Gem::Specification.new do |s|
|
7
5
|
s.name = %q{reckon}
|
8
|
-
s.version = "0.3.
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
|
+
s.version = "0.3.2"
|
11
7
|
s.authors = ["Andrew Cantino"]
|
12
|
-
s.date = %q{2011-02-07}
|
13
|
-
s.default_executable = %q{reckon}
|
14
|
-
s.description = %q{Reckon automagically converts CSV files for use with the command-line accounting tool Ledger. It also helps you to select the correct accounts associated with the CSV data using Bayesian machine learning.}
|
15
8
|
s.email = %q{andrew@iterationlabs.com}
|
16
|
-
s.executables = ["reckon"]
|
17
|
-
s.extra_rdoc_files = [
|
18
|
-
"LICENSE",
|
19
|
-
"README.rdoc"
|
20
|
-
]
|
21
|
-
s.files = [
|
22
|
-
".document",
|
23
|
-
"LICENSE",
|
24
|
-
"README.rdoc",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"bin/reckon",
|
28
|
-
"lib/reckon.rb",
|
29
|
-
"lib/reckon/app.rb",
|
30
|
-
"lib/reckon/ledger_parser.rb",
|
31
|
-
"reckon.gemspec",
|
32
|
-
"spec/reckon/app_spec.rb",
|
33
|
-
"spec/reckon/ledger_parser_spec.rb",
|
34
|
-
"spec/spec.opts",
|
35
|
-
"spec/spec_helper.rb"
|
36
|
-
]
|
37
9
|
s.homepage = %q{http://github.com/iterationlabs/reckon}
|
38
|
-
s.
|
39
|
-
s.rubygems_version = %q{1.3.7}
|
10
|
+
s.description = %q{Reckon automagically converts CSV files for use with the command-line accounting tool Ledger. It also helps you to select the correct accounts associated with the CSV data using Bayesian machine learning.}
|
40
11
|
s.summary = %q{Utility for interactively converting and labeling CSV files for the Ledger accounting tool.}
|
41
|
-
s.test_files = [
|
42
|
-
"spec/reckon/app_spec.rb",
|
43
|
-
"spec/reckon/ledger_parser_spec.rb",
|
44
|
-
"spec/spec_helper.rb"
|
45
|
-
]
|
46
12
|
|
47
|
-
|
48
|
-
|
49
|
-
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
15
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
16
|
+
s.require_paths = ["lib"]
|
50
17
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
s.add_runtime_dependency(%q<highline>, [">= 1.5.2"])
|
57
|
-
s.add_runtime_dependency(%q<terminal-table>, [">= 1.4.2"])
|
58
|
-
else
|
59
|
-
s.add_dependency(%q<rspec>, ["= 1.3.1"])
|
60
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
61
|
-
s.add_dependency(%q<fastercsv>, [">= 1.5.1"])
|
62
|
-
s.add_dependency(%q<chronic>, [">= 0.3.0"])
|
63
|
-
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
64
|
-
s.add_dependency(%q<terminal-table>, [">= 1.4.2"])
|
65
|
-
end
|
66
|
-
else
|
67
|
-
s.add_dependency(%q<rspec>, ["= 1.3.1"])
|
68
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
69
|
-
s.add_dependency(%q<fastercsv>, [">= 1.5.1"])
|
70
|
-
s.add_dependency(%q<chronic>, [">= 0.3.0"])
|
71
|
-
s.add_dependency(%q<highline>, [">= 1.5.2"])
|
72
|
-
s.add_dependency(%q<terminal-table>, [">= 1.4.2"])
|
73
|
-
end
|
18
|
+
s.add_development_dependency "rspec", ">= 1.2.9"
|
19
|
+
s.add_runtime_dependency "fastercsv", ">= 1.5.1"
|
20
|
+
s.add_runtime_dependency "chronic", ">= 0.3.0"
|
21
|
+
s.add_runtime_dependency "highline", ">= 1.5.2"
|
22
|
+
s.add_runtime_dependency "terminal-table", ">= 1.4.2"
|
74
23
|
end
|
75
24
|
|
data/spec/reckon/app_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require "
|
3
|
+
require "spec_helper"
|
4
4
|
require 'rubygems'
|
5
5
|
require 'reckon'
|
6
6
|
|
@@ -12,6 +12,7 @@ describe Reckon::App do
|
|
12
12
|
@some_other_bank = Reckon::App.new(:string => SOME_OTHER_CSV)
|
13
13
|
@two_money_columns = Reckon::App.new(:string => TWO_MONEY_COLUMNS_BANK)
|
14
14
|
@simple_csv = Reckon::App.new(:string => SIMPLE_CSV)
|
15
|
+
@german_date = Reckon::App.new(:string => GERMAN_DATE_EXAMPLE)
|
15
16
|
end
|
16
17
|
|
17
18
|
it "should be in testing mode" do
|
@@ -101,6 +102,9 @@ describe Reckon::App do
|
|
101
102
|
@some_other_bank.date_for(1).year.should == Time.parse("2010/12/24").year
|
102
103
|
@some_other_bank.date_for(1).month.should == Time.parse("2010/12/24").month
|
103
104
|
@some_other_bank.date_for(1).day.should == Time.parse("2010/12/24").day
|
105
|
+
@german_date.date_for(1).year.should == Time.parse("2009/12/24").year
|
106
|
+
@german_date.date_for(1).month.should == Time.parse("2009/12/24").month
|
107
|
+
@german_date.date_for(1).day.should == Time.parse("2009/12/24").day
|
104
108
|
end
|
105
109
|
end
|
106
110
|
|
@@ -175,4 +179,9 @@ describe Reckon::App do
|
|
175
179
|
04-Nov-9,1234.00,,,TRANSFER CREDIT INTERNET TRANSFER,INTERNET TRANSFER,1234.00,
|
176
180
|
28-Oct-10,-123.12,,,TRANSFER DEBIT INTERNET TRANSFER,INTERNET TRANSFER SAV TO MORTGAGE,0.00,
|
177
181
|
CSV
|
182
|
+
GERMAN_DATE_EXAMPLE = (<<-CSV).strip
|
183
|
+
24.12.2009,Check - 0000000122,122,-$76.00,"","$1,750.06"
|
184
|
+
24.12.2009,BLARG R SH 456930,"","",+$327.49,"$1,826.06"
|
185
|
+
24.12.2009,Check - 0000000112,112,-$800.00,"","$1,498.57"
|
186
|
+
CSV
|
178
187
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rspec'
|
3
3
|
require 'reckon'
|
4
|
-
require 'spec'
|
5
|
-
require 'spec/autorun'
|
6
|
-
|
7
|
-
Spec::Runner.configure do |config|
|
8
4
|
|
5
|
+
RSpec.configure do |config|
|
9
6
|
end
|
metadata
CHANGED
@@ -1,128 +1,110 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: reckon
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 1
|
10
|
-
version: 0.3.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.2
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Andrew Cantino
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-07-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: rspec
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 1
|
32
|
-
- 3
|
33
|
-
- 1
|
34
|
-
version: 1.3.1
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.2.9
|
35
22
|
type: :development
|
36
|
-
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: jeweler
|
39
23
|
prerelease: false
|
40
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
25
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
- 0
|
48
|
-
version: "0"
|
49
|
-
type: :development
|
50
|
-
version_requirements: *id002
|
51
|
-
- !ruby/object:Gem::Dependency
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.2.9
|
30
|
+
- !ruby/object:Gem::Dependency
|
52
31
|
name: fastercsv
|
53
|
-
|
54
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
55
33
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
hash: 1
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 5
|
63
|
-
- 1
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
64
37
|
version: 1.5.1
|
65
38
|
type: :runtime
|
66
|
-
version_requirements: *id003
|
67
|
-
- !ruby/object:Gem::Dependency
|
68
|
-
name: chronic
|
69
39
|
prerelease: false
|
70
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
41
|
none: false
|
72
|
-
requirements:
|
73
|
-
- -
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.5.1
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: chronic
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
80
53
|
version: 0.3.0
|
81
54
|
type: :runtime
|
82
|
-
version_requirements: *id004
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: highline
|
85
55
|
prerelease: false
|
86
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.3.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: highline
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
87
65
|
none: false
|
88
|
-
requirements:
|
89
|
-
- -
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
hash: 7
|
92
|
-
segments:
|
93
|
-
- 1
|
94
|
-
- 5
|
95
|
-
- 2
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
96
69
|
version: 1.5.2
|
97
70
|
type: :runtime
|
98
|
-
version_requirements: *id005
|
99
|
-
- !ruby/object:Gem::Dependency
|
100
|
-
name: terminal-table
|
101
71
|
prerelease: false
|
102
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.5.2
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: terminal-table
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
103
81
|
none: false
|
104
|
-
requirements:
|
105
|
-
- -
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
hash: 3
|
108
|
-
segments:
|
109
|
-
- 1
|
110
|
-
- 4
|
111
|
-
- 2
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
112
85
|
version: 1.4.2
|
113
86
|
type: :runtime
|
114
|
-
|
115
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.4.2
|
94
|
+
description: Reckon automagically converts CSV files for use with the command-line
|
95
|
+
accounting tool Ledger. It also helps you to select the correct accounts associated
|
96
|
+
with the CSV data using Bayesian machine learning.
|
116
97
|
email: andrew@iterationlabs.com
|
117
|
-
executables:
|
98
|
+
executables:
|
118
99
|
- reckon
|
119
100
|
extensions: []
|
120
|
-
|
121
|
-
|
122
|
-
- LICENSE
|
123
|
-
- README.rdoc
|
124
|
-
files:
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
125
103
|
- .document
|
104
|
+
- .gitignore
|
105
|
+
- .rvmrc
|
106
|
+
- Gemfile
|
107
|
+
- Gemfile.lock
|
126
108
|
- LICENSE
|
127
109
|
- README.rdoc
|
128
110
|
- Rakefile
|
@@ -136,41 +118,33 @@ files:
|
|
136
118
|
- spec/reckon/ledger_parser_spec.rb
|
137
119
|
- spec/spec.opts
|
138
120
|
- spec/spec_helper.rb
|
139
|
-
has_rdoc: true
|
140
121
|
homepage: http://github.com/iterationlabs/reckon
|
141
122
|
licenses: []
|
142
|
-
|
143
123
|
post_install_message:
|
144
124
|
rdoc_options: []
|
145
|
-
|
146
|
-
require_paths:
|
125
|
+
require_paths:
|
147
126
|
- lib
|
148
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
149
128
|
none: false
|
150
|
-
requirements:
|
151
|
-
- -
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
|
154
|
-
|
155
|
-
- 0
|
156
|
-
version: "0"
|
157
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
134
|
none: false
|
159
|
-
requirements:
|
160
|
-
- -
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
|
163
|
-
segments:
|
164
|
-
- 0
|
165
|
-
version: "0"
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
166
139
|
requirements: []
|
167
|
-
|
168
140
|
rubyforge_project:
|
169
|
-
rubygems_version: 1.
|
141
|
+
rubygems_version: 1.8.24
|
170
142
|
signing_key:
|
171
143
|
specification_version: 3
|
172
|
-
summary: Utility for interactively converting and labeling CSV files for the Ledger
|
173
|
-
|
144
|
+
summary: Utility for interactively converting and labeling CSV files for the Ledger
|
145
|
+
accounting tool.
|
146
|
+
test_files:
|
174
147
|
- spec/reckon/app_spec.rb
|
175
148
|
- spec/reckon/ledger_parser_spec.rb
|
149
|
+
- spec/spec.opts
|
176
150
|
- spec/spec_helper.rb
|