data_imp 0.4.0 → 0.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5f0439c9288775b796fde25b0df3ca58dea69d5cec9a657ddf7ee3fc6ebc685e
4
- data.tar.gz: d6b13a0de84abe385cf41e78f3ec4987d89562022737dc41d39e74b9374251d6
3
+ metadata.gz: 81d55fb7b8c1448a0b86acbb28212b70947e9ccc4ae095105faf277fec8cc6a9
4
+ data.tar.gz: a8ffd88e7b050c9863c41cba7a54517ad784cd6e374ba3349053affc3d0ddf43
5
5
  SHA512:
6
- metadata.gz: 2d3e93db677416e1bdb7d865ca7e0a0980d750c15701647c9350f8f292dd6fe1c60bb8e6b2430a30587dc157c8c24a91ee6e0fc85a3f8a211bd7bcb06630c3bc
7
- data.tar.gz: dd0f6839002332342b3b425b8f237eb28547cf45d3f5017ba2e98182b788de76e9042848356c7c0b35f9c8381ef33a93373783650c2de558e0925694453e0696
6
+ metadata.gz: f4ff94a5f29d045a8a9bef3a8313928599006442d5aa3b7e9008928a4c8d883935aca4329f66091d7ad33a9a4e1b27a4ec75255d53928bf499926a78f98ad22a
7
+ data.tar.gz: c090b135de0d03f7467aba862ffc92cf274f16e8247b55e45cf268d6560ec2d0c39e3717bae6fd606b86a30f42d521665ca08837112f51760f265d935fa65a87
@@ -14,16 +14,20 @@ module DataImp::Finders
14
14
  def find_parser type
15
15
  return type if type.kind_of? DataImp::Parser
16
16
  type = type.to_s.camelize
17
- const_get "#{type}Parser"
18
- rescue NameError => e
19
- DataImp::Parser.find_parser type
17
+ "#{type}Parser".safe_constantize ||
18
+ "#{type.singularize}Parser".safe_constantize ||
19
+ "#{type.pluralize}Parser".safe_constantize ||
20
+ DataImp::Parser.find_parser(type)
20
21
  end
21
22
 
22
23
  def find_importer type
23
24
  return type if type.kind_of? DataImp::Porter
24
25
  type = type.to_s.camelize
25
- const_get "#{type}Importer"
26
- rescue NameError => e
27
- DataImp::Porter.find_importer type
26
+ "#{type}Importer".safe_constantize ||
27
+ "#{type.singularize}Importer".safe_constantize ||
28
+ "#{type.pluralize}Importer".safe_constantize ||
29
+ "#{type.singularize}Porter".safe_constantize ||
30
+ "#{type.pluralize}Porter".safe_constantize ||
31
+ DataImp::Porter.find_importer(type)
28
32
  end
29
33
  end
@@ -5,7 +5,7 @@ require_relative "importer"
5
5
 
6
6
  module DataImp::ImportMethods
7
7
  def import(*files, **options, &block)
8
- files.each do |file|
8
+ files.flatten.each do |file|
9
9
  file.strip!
10
10
  unless file =~ /^#/
11
11
  new(file, **options, &block).import
@@ -14,7 +14,7 @@ module DataImp::ImportMethods
14
14
  end
15
15
 
16
16
  def import_list(*lists, **options, &block)
17
- lists.each do |list|
17
+ lists.flatten.each do |list|
18
18
  list.each_line do |file|
19
19
  import file, **options, &block
20
20
  end
@@ -1,4 +1,3 @@
1
- require 'csv'
2
1
 
3
2
  class DataImp::Parser::Csv < DataImp::Parser
4
3
  def options
@@ -10,7 +10,8 @@ class DataImp::Parser
10
10
  def find_parser type
11
11
  return self if type.blank?
12
12
  begin
13
- const_get type.camelize
13
+ type = type.to_s.camelize
14
+ const_get type
14
15
  rescue NameError => e
15
16
  if require_relative "parser/#{type.underscore}"
16
17
  retry
@@ -19,8 +20,6 @@ class DataImp::Parser
19
20
  rescue LoadError => e
20
21
  raise DataImp::NoParser.new(type)
21
22
  end
22
-
23
- alias_method :find, :find_parser
24
23
  end
25
24
 
26
25
  def parse chunk
@@ -42,4 +41,7 @@ class DataImp::Parser
42
41
  end
43
42
  end
44
43
  end
44
+ require_relative './parser/csv.rb'
45
+ require_relative './parser/json.rb'
46
+ require_relative './parser/yaml.rb'
45
47
 
@@ -5,9 +5,11 @@ class DataImp::Porter
5
5
 
6
6
  class << self
7
7
  def find_importer type
8
+ return type if type.kind_of? DataImp::Porter
8
9
  return self if type.blank?
9
10
  begin
10
- const_get type.classify
11
+ type = type.to_s.camelize
12
+ const_get type
11
13
  rescue NameError => e
12
14
  if require_relative "porter/#{type.underscore}"
13
15
  retry
@@ -16,8 +18,6 @@ class DataImp::Porter
16
18
  rescue LoadError => e
17
19
  raise DataImp::NoImporter.new(type)
18
20
  end
19
-
20
- alias_method :find, :find_importer
21
21
  end
22
22
 
23
23
  def initialize(hash, index = nil)
@@ -1,3 +1,3 @@
1
1
  class DataImp
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
data/lib/data_imp.rb CHANGED
@@ -4,6 +4,9 @@ end
4
4
 
5
5
  require 'active_support'
6
6
  require 'active_support/all'
7
+ require 'csv'
8
+ require 'yaml'
9
+ require 'json'
7
10
 
8
11
  require_relative "data_imp/version"
9
12
  require_relative "data_imp/options"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_imp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert W. Ferney
@@ -23,6 +23,48 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: csv
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: yaml
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: json
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
26
68
  - !ruby/object:Gem::Dependency
27
69
  name: bundler
28
70
  requirement: !ruby/object:Gem::Requirement