coma 1.0.0

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.
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: []