qimport 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 960eed308ba43e92253001e758bf024299c2e8b5
4
+ data.tar.gz: 7749fc205e4e16c2ad7c07030705918c0167ec0d
5
+ SHA512:
6
+ metadata.gz: f88575458ddca2b560b9bba09689167a54d7a8a10fbe1ad22c9b8cc1fb4a66867cab4b4a2f16d6f72c48ebe8e0b4cf5b3050b43cf228a4f0acfe17ac8b7bcfbd
7
+ data.tar.gz: 7a8637e373d4bf54340ba18b88305195941f5bd033d5a49aa0bab23be783f434ac63f165965ebb7ed20b8d67e8bb5e0594897249a62d9364655c4c087ac68ddc
@@ -0,0 +1,4 @@
1
+ require 'qimport/import'
2
+
3
+ module Qimport
4
+ end
@@ -0,0 +1,45 @@
1
+ module Qimport
2
+ class Group
3
+ def initialize(*headers)
4
+ @headers = {}
5
+ headers.each do |header|
6
+ @headers[header] = {lines: [], columns: []}
7
+ end
8
+ end
9
+
10
+ def line(data, header=nil)
11
+ header ||= @headers.keys.first.to_sym
12
+
13
+ @headers[header][:columns] =
14
+ (@headers[header][:columns] + data.keys).uniq
15
+ @headers[header][:lines] << data
16
+
17
+ self
18
+ end
19
+
20
+ def to_s
21
+ s = ''
22
+ @headers.map do |k,v|
23
+ header = k.to_s.upcase
24
+ columns_to_s = v[:columns].map{|c| c.to_s.upcase}.join("\t")
25
+
26
+ s << "!#{header}\t#{columns_to_s}\r\n"
27
+
28
+ v[:lines].map do |line|
29
+ s << ([header] + array_to_empty_hash(v[:columns]).merge(line).map{|k,v| v }).join("\t")
30
+ s << "\r\n"
31
+ end
32
+ end
33
+ s
34
+ end
35
+
36
+ private
37
+ def array_to_empty_hash(array)
38
+ hash = {}
39
+ array.each do |i|
40
+ hash[i] = ''
41
+ end
42
+ hash
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,23 @@
1
+ module Qimport
2
+ class Import
3
+ def initialize(export_file_path)
4
+ @export_file_path = export_file_path
5
+ @groups = []
6
+ end
7
+
8
+ def group(*headers)
9
+ @groups << group = Group.new(*headers)
10
+ group
11
+ end
12
+
13
+ def save
14
+ File.open( @export_file_path, 'w' ) do |writer|
15
+ @groups.each do |g|
16
+ writer << g.to_s
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ require 'qimport/group'
metadata ADDED
@@ -0,0 +1,75 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: qimport
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Brett Basler
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-09-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: Qimport is a library for building Quickbooks iif files.
42
+ email: geekbrett@gmail.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - lib/qimport.rb
48
+ - lib/qimport/import.rb
49
+ - lib/qimport/group.rb
50
+ homepage: http://github.com/br3tt/qimport
51
+ licenses:
52
+ - MIT
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - '>='
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubyforge_project:
70
+ rubygems_version: 2.0.3
71
+ signing_key:
72
+ specification_version: 4
73
+ summary: qimport
74
+ test_files: []
75
+ has_rdoc: