coma 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/coma.rb +62 -0
  3. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 08c4fca9e40a99c96703080e6df2312fb89d76c3
4
+ data.tar.gz: e96a3cdda1142ee5bcaaff0b7f9cd35dd8b78e65
5
+ SHA512:
6
+ metadata.gz: 06ecc3d4839ecc1922adc679b479c06e1c9107c942b9206bf427c579f469396e995672b3143e9a7f735b71250411d00f062a8fa726bd2c60e9dbad0f010b7bd6
7
+ data.tar.gz: 0336ad975f836e7f91e816dd7d5663d4670d8d7ec651b06261e6929c260c8176d2983e0e4b88dd22b8b4650559c233bd93c1f271337d5f1551f194adea11edde
data/lib/coma.rb ADDED
@@ -0,0 +1,62 @@
1
+ class Coma
2
+
3
+ def initialize(csv, csvSettings = {})
4
+
5
+ @csv = csv
6
+ @delimiter = ','
7
+ @eol = "\n"
8
+ @keymap = []
9
+ @data = []
10
+ @temp = {}
11
+
12
+ if csvSettings.has_key?('delimiter')
13
+ @delimiter = csvSettings['delimiter']
14
+ end
15
+
16
+ if csvSettings.has_key?('eol')
17
+ @eol = csvSettings['eol']
18
+ end
19
+
20
+ end
21
+
22
+ def parse
23
+
24
+ @headers, *@csv = @csv.split(@eol)
25
+ @headers = @headers.split(@delimiter)
26
+
27
+ @headers.each_with_index do |header, index|
28
+
29
+ header.chomp!
30
+ @keymap.push(header)
31
+ eval("@temp[\"#{header}\"] = nil")
32
+
33
+ end
34
+
35
+ @csv.each_with_index do |line, index|
36
+
37
+ @columns = line.split(@delimiter)
38
+ if @columns.length > @keymap.count
39
+
40
+ next
41
+
42
+ end
43
+
44
+ @columns.each_with_index do |column, index|
45
+
46
+ header = @keymap[index]
47
+ column.chomp!
48
+
49
+ eval("@temp[\"#{header}\"] = column")
50
+
51
+ end
52
+
53
+ @data.push(@temp)
54
+ @temp = {}
55
+
56
+ end
57
+
58
+ return @data
59
+
60
+ end
61
+
62
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: coma
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jayme
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-09-17 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Coma is a small Ruby class for parsing CSV files and turning them into
14
+ an array/key structure
15
+ email: cronhound@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/coma.rb
21
+ homepage: https://github.com/neko/coma
22
+ licenses:
23
+ - GPL-2
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.4.5
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: small Ruby gem for parsing CSV files
45
+ test_files: []