active_import 0.0.3 → 0.1.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.
data/lib/active_import.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require "active_import/utility"
1
2
  require "active_import/import_csv"
2
3
  require "active_import/import_excel"
3
4
  require 'active_import/model_converter'
@@ -1,6 +1,5 @@
1
1
  module ActiveImport
2
2
  class Seed
3
-
4
3
  def self.seed_from_file seed_file_name
5
4
  seed_file = File.open(seed_file_name, "r")
6
5
  seed_file.each_line do |seed_line|
@@ -10,11 +9,11 @@ module ActiveImport
10
9
  converter_name = seed_info[1]
11
10
 
12
11
  unless data_file_name.nil? || converter_name.nil?
13
- data_file_name = import_file_with_path data_file_name
12
+ data_file_name = ActiveImport.import_file_with_path data_file_name
14
13
 
15
14
  if (File.exists? data_file_name)
16
15
  converter_name.strip!
17
- converter_options = process_converter_options seed_info[2]
16
+ converter_options = ActiveImport.process_converter_options seed_info[2]
18
17
 
19
18
  puts "Importing from: #{data_file_name.cyan}"
20
19
  puts "Using converter: #{converter_name.cyan}"
@@ -38,7 +37,7 @@ module ActiveImport
38
37
  else
39
38
  puts "File type cannot be processed".red
40
39
  end
41
- parse(import, model_converter) unless import.nil?
40
+ ActiveImport.parse(import, model_converter) unless import.nil?
42
41
  else
43
42
  puts "Skipping non existing file: #{data_file_name}".red
44
43
  end
@@ -0,0 +1,39 @@
1
+ module ActiveImport
2
+ def self.import_file_with_path file
3
+ f = file.strip
4
+ unless /^\//.match(f)
5
+ f = File.join(Rails.root, "db", "active_import", f)
6
+ end
7
+ f
8
+ end
9
+
10
+ def self.process_converter_options options_string
11
+ converter_options = {}
12
+ if options_string
13
+ options = options_string.split(";")
14
+ options.each do |option|
15
+ s = option.split("=")
16
+ converter_options[s[0].strip] = s[1].strip
17
+ end
18
+ end
19
+ converter_options
20
+ end
21
+
22
+ def self.parse(import, model_converter)
23
+ model_converter.before
24
+ import.parse do |import_row, converter, row_number, total_rows|
25
+ model_converter.process_values import_row
26
+ model = model_converter.save
27
+ if model.respond_to?("errors")
28
+ print "#{row_number.to_s.cyan}: "
29
+ if model.errors.empty?
30
+ puts "OK".green
31
+ else
32
+ model.errors.full_messages.each { |message| puts message.red }
33
+ end
34
+ end
35
+ end
36
+ model_converter.after
37
+ puts model_converter.report
38
+ end
39
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveImport
2
- VERSION = "0.0.3"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,37 +1,17 @@
1
1
  require "active_import"
2
2
  require "colorize"
3
3
 
4
- def import_file_with_path file
5
- f = file.strip
6
- unless /^\//.match(f)
7
- f = File.join(Rails.root, "db", "active_import", f)
8
- end
9
- f
10
- end
11
-
12
- def process_converter_options options_string
13
- converter_options = {}
14
- if options_string
15
- options = options_string.split(";")
16
- options.each do |option|
17
- s = option.split("=")
18
- converter_options[s[0].strip] = s[1].strip
19
- end
20
- end
21
- converter_options
22
- end
23
-
24
4
  def process_import_options
25
5
  converter = ENV["converter"] || ENV["CONVERTER"]
26
6
  converter_model = "#{converter.camelize}Converter"
27
7
  options = ENV["converter_options"] || ENV["CONVERTER_OPTIONS"]
28
- converter_options = process_converter_options options
8
+ converter_options = ActiveImport.process_converter_options options
29
9
 
30
10
  puts "Converter Model: #{converter_model.cyan}"
31
11
  puts "Converter Options: #{converter_options.to_s.cyan}"
32
12
  file = ENV["file"] || ENV["FILE"]
33
13
  file ||= "#{converter.underscore}.csv"
34
- data_file = import_file_with_path file
14
+ data_file = ActiveImport.import_file_with_path file
35
15
 
36
16
  if File.exists?(data_file)
37
17
  puts "Found import file: #{data_file}".green
@@ -44,34 +24,13 @@ def process_import_options
44
24
  return {:data_file => data_file, :model_converter => model_converter}
45
25
  end
46
26
 
47
- def parse(import, model_converter)
48
- model_converter.before
49
- import.parse do |import_row, converter, row_number, total_rows|
50
- model_converter.process_values import_row
51
- model = model_converter.save
52
- if model.respond_to?("errors")
53
- print "#{row_number.to_s.cyan}: "
54
- if model.errors.empty?
55
- puts "OK".green
56
- else
57
- model.errors.full_messages.each { |message| puts message.red }
58
- end
59
- end
60
- end
61
- model_converter.after
62
- puts model_converter.report
63
- end
64
-
65
- def seed_from_file(seed_file_name)
66
- end
67
-
68
27
  namespace :active_import do
69
28
  desc "Load csv file into a model using a model converter"
70
29
  task :csv => :environment do
71
30
  result = process_import_options
72
31
  unless result[:data_file].nil?
73
32
  import = ActiveImport::ImportCsv.new(result[:model_converter], result[:data_file])
74
- parse(import, result[:model_converter])
33
+ ActiveImport.parse(import, result[:model_converter])
75
34
  end
76
35
  end
77
36
  desc "Load excel file into a model using a model converter"
@@ -79,7 +38,7 @@ namespace :active_import do
79
38
  result = process_import_options
80
39
  unless result[:data_file].nil?
81
40
  import = ActiveImport::ImportExcel.new(result[:model_converter], result[:data_file])
82
- parse(import, result[:model_converter])
41
+ ActiveImport.parse(import, result[:model_converter])
83
42
  end
84
43
  end
85
44
  desc "Seed a list of import files"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_import
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-04-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70129661763280 !ruby/object:Gem::Requirement
16
+ requirement: &70111127111460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70129661763280
24
+ version_requirements: *70111127111460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: colorize
27
- requirement: &70129661762220 !ruby/object:Gem::Requirement
27
+ requirement: &70111127109520 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70129661762220
35
+ version_requirements: *70111127109520
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: roo
38
- requirement: &70129661759880 !ruby/object:Gem::Requirement
38
+ requirement: &70111127107260 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70129661759880
46
+ version_requirements: *70111127107260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sqlite3
49
- requirement: &70129661758520 !ruby/object:Gem::Requirement
49
+ requirement: &70111127102900 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70129661758520
57
+ version_requirements: *70111127102900
58
58
  description: ''
59
59
  email:
60
60
  - david.monagle@intrica.com.au
@@ -66,6 +66,7 @@ files:
66
66
  - lib/active_import/import_excel.rb
67
67
  - lib/active_import/model_converter.rb
68
68
  - lib/active_import/seed.rb
69
+ - lib/active_import/utility.rb
69
70
  - lib/active_import/version.rb
70
71
  - lib/active_import.rb
71
72
  - lib/generators/active_import/model_converter_generator.rb
@@ -120,7 +121,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
121
  version: '0'
121
122
  segments:
122
123
  - 0
123
- hash: 3899470936762174354
124
+ hash: 3636221692883456785
124
125
  required_rubygems_version: !ruby/object:Gem::Requirement
125
126
  none: false
126
127
  requirements:
@@ -129,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
130
  version: '0'
130
131
  segments:
131
132
  - 0
132
- hash: 3899470936762174354
133
+ hash: 3636221692883456785
133
134
  requirements: []
134
135
  rubyforge_project:
135
136
  rubygems_version: 1.8.6