activerecord-importer 0.3.0 → 0.3.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.
- data/Rakefile +6 -0
- data/lib/activerecord/importer.rb +7 -0
- data/lib/activerecord/importer/runner.rb +16 -3
- data/lib/activerecord/importer/version.rb +2 -1
- metadata +24 -8
data/Rakefile
CHANGED
@@ -15,4 +15,10 @@ Hoe.spec 'activerecord-importer' do
|
|
15
15
|
|
16
16
|
self.licenses = ['Public Domain']
|
17
17
|
|
18
|
+
self.extra_deps = [
|
19
|
+
## ['activerecord', '~> 3.2'], # NB: will include activesupport,etc.
|
20
|
+
['activerecord-import', '~> 0.2.11']
|
21
|
+
### ['sqlite3', '~> 1.3'] # NB: install on your own; remove dependency
|
22
|
+
]
|
23
|
+
|
18
24
|
end
|
@@ -1,7 +1,14 @@
|
|
1
1
|
|
2
|
+
# stdlibs
|
3
|
+
|
2
4
|
require 'pp'
|
3
5
|
require 'yaml'
|
4
6
|
|
7
|
+
# 3rd party gems
|
8
|
+
|
9
|
+
require 'activerecord-import' # see https://github.com/zdennis/activerecord-import
|
10
|
+
|
11
|
+
# our own code
|
5
12
|
|
6
13
|
require 'activerecord/importer/version'
|
7
14
|
require 'activerecord/importer/runner'
|
@@ -73,6 +73,8 @@ module ActiveRecord::Importer
|
|
73
73
|
connect_new()
|
74
74
|
|
75
75
|
print "adding to table >#{model_klass.name}<"
|
76
|
+
|
77
|
+
objs = []
|
76
78
|
|
77
79
|
recs.each_with_index do |rec,i|
|
78
80
|
obj = model_klass.new
|
@@ -80,10 +82,16 @@ module ActiveRecord::Importer
|
|
80
82
|
## nb: use setters; lets us use obj.id = 42 e.g. mass assignment ignores/protects ids
|
81
83
|
obj.send( "#{col}=", rec[index] )
|
82
84
|
end
|
83
|
-
obj
|
85
|
+
objs << obj
|
86
|
+
## obj.save!
|
87
|
+
|
84
88
|
print_progress(i) # keep user entertained ...o....O...
|
85
89
|
end
|
86
|
-
|
90
|
+
|
91
|
+
## lets use batch inserts thanks to activerecord-importer gem (see https://github.com/zdennis/activerecord-import)
|
92
|
+
model_klass.import( objs )
|
93
|
+
|
94
|
+
puts 'OK'
|
87
95
|
end # method import_table_from_ary
|
88
96
|
|
89
97
|
|
@@ -102,13 +110,18 @@ module ActiveRecord::Importer
|
|
102
110
|
|
103
111
|
print "adding records to table >#{model_klass.name}<"
|
104
112
|
|
113
|
+
objs = []
|
114
|
+
|
105
115
|
recs.each_with_index do |rec,i|
|
106
116
|
#debug_dump_record( rec )
|
107
|
-
model_klass.
|
117
|
+
objs << model_klass.new( downcase_hash( rec ) )
|
108
118
|
|
109
119
|
print_progress(i) # keep user entertained ...o....O...
|
110
120
|
end
|
111
121
|
|
122
|
+
## lets use batch inserts thanks to activerecord-importer gem (see https://github.com/zdennis/activerecord-import)
|
123
|
+
model_klass.import( objs )
|
124
|
+
|
112
125
|
puts 'OK'
|
113
126
|
end
|
114
127
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-importer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Gerald Bauer
|
@@ -15,12 +15,28 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-12-
|
18
|
+
date: 2012-12-05 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
21
|
+
name: activerecord-import
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 1
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 2
|
32
|
+
- 11
|
33
|
+
version: 0.2.11
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rdoc
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
24
40
|
none: false
|
25
41
|
requirements:
|
26
42
|
- - ~>
|
@@ -31,11 +47,11 @@ dependencies:
|
|
31
47
|
- 10
|
32
48
|
version: "3.10"
|
33
49
|
type: :development
|
34
|
-
version_requirements: *
|
50
|
+
version_requirements: *id002
|
35
51
|
- !ruby/object:Gem::Dependency
|
36
52
|
name: hoe
|
37
53
|
prerelease: false
|
38
|
-
requirement: &
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
55
|
none: false
|
40
56
|
requirements:
|
41
57
|
- - ~>
|
@@ -46,7 +62,7 @@ dependencies:
|
|
46
62
|
- 3
|
47
63
|
version: "3.3"
|
48
64
|
type: :development
|
49
|
-
version_requirements: *
|
65
|
+
version_requirements: *id003
|
50
66
|
description: activerecord-importer - Another Data Importer
|
51
67
|
email: example@googlegroups.com
|
52
68
|
executables: []
|