universal_data_parser 0.0.3 → 0.0.4

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