universal_data_parser 0.0.3 → 0.0.4

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 +4 -4
  2. data/lib/universal_data_parser.rb +22 -2
  3. metadata +15 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ab0be84f5663cc284d38e2bd9cfd4503b2e72f7
4
- data.tar.gz: 2881334781950f188a83163c574832d8475acfad
3
+ metadata.gz: d1b07dadc230130eaef384c06a95f372a04b0a71
4
+ data.tar.gz: 73b341251c0fd3e1dc375e899b2399c5fbd0c639
5
5
  SHA512:
6
- metadata.gz: 01c4b5d55c6cdab0423e5addd51a7409af83f583b1b53d1b34e9d560bc248434a13e81355f647b15769e1b4e6d4e9525d3e72b658e126632b0aaf1b87b5682b7
7
- data.tar.gz: db3e18b996357360d7cc69f5a5986001e71ab0be539708602e5cda95e7b87705e149ec9af4a9f69936d9277d72b2476cca887e21995d3b662555840388a414eb
6
+ metadata.gz: 267553d15924e7f45806e855393d97b23519d8b5542f8159bcc9b7ecd7d3498e38e847706551db5b3fc05e765249638df7f01afb829637f91ade242c486fc186
7
+ data.tar.gz: 221adc703a37bd45eb42c70a1131fbe59cdff96996f3eae32ab62d7f51cc3596c19594751f817f51a21b976c6312765f9fbf20b1af2b2ddc74572b57c99a44bb
@@ -2,6 +2,7 @@
2
2
  require 'csv'
3
3
  require 'charlock_holmes'
4
4
  require "i18n"
5
+ require 'chronic'
5
6
 
6
7
  I18n.enforce_available_locales = false
7
8
  I18n.locale = :es
@@ -12,11 +13,13 @@ module UniversalDataParser
12
13
  attr_accessor :columns
13
14
  attr_accessor :items
14
15
  attr_accessor :headers
16
+ attr_accessor :header_types
15
17
  attr_accessor :raw_data
16
18
 
17
19
  def initialize(raw_data)
18
20
  @raw_data = raw_data
19
21
  guess_columns
22
+ column_types
20
23
  generate_data
21
24
  end
22
25
 
@@ -25,13 +28,30 @@ module UniversalDataParser
25
28
  def generate_data
26
29
  @items = @raw_data.map do |row|
27
30
  new_row = Hash.new
28
- headers.each_with_index do |c, i|
29
- new_row[c.to_sym] = row[i]
31
+ @headers.each_with_index do |c, i|
32
+ if @header_types[i] == 'datetime' or header_types[i] == 'time'
33
+ datum = Chronic.parse(row[i], :endian_precedence => :little)
34
+ else
35
+ datum = row[i]
36
+ end
37
+ new_row[c.to_sym] = datum
30
38
  end
31
39
  new_row
32
40
  end
33
41
  end
34
42
 
43
+ def column_types
44
+ @header_types = @headers.map do |c|
45
+ if c.include? 'fecha'
46
+ 'datetime'
47
+ elsif c.include? 'hora'
48
+ 'time'
49
+ else
50
+ 'text'
51
+ end
52
+ end
53
+ end
54
+
35
55
  def guess_columns
36
56
  @raw_data.each do |row|
37
57
  n = false
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universal_data_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Garcia
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.7.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: chronic
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: Gem intended to analize and deduct data from CSV, XLS, XLSX, files
28
42
  email: ricardo@ukko.mx
29
43
  executables: []