Empact-activerecord-import 0.3.3 → 0.3.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.
data/Rakefile
CHANGED
@@ -36,7 +36,7 @@ namespace :display do
|
|
36
36
|
end
|
37
37
|
task :default => ["display:notice"]
|
38
38
|
|
39
|
-
ADAPTERS = %w(mysql mysql2 postgresql sqlite3)
|
39
|
+
ADAPTERS = %w(mysql mysql2 jdbcmysql postgresql sqlite3)
|
40
40
|
ADAPTERS.each do |adapter|
|
41
41
|
namespace :test do
|
42
42
|
desc "Runs #{adapter} database tests."
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.4
|
@@ -1,60 +1,60 @@
|
|
1
1
|
module ActiveRecord::Import::AbstractAdapter
|
2
2
|
NO_MAX_PACKET = 0
|
3
3
|
QUERY_OVERHEAD = 8 #This was shown to be true for MySQL, but it's not clear where the overhead is from.
|
4
|
-
|
4
|
+
|
5
5
|
module ClassMethods
|
6
6
|
def get_insert_value_sets( values, sql_size, max_bytes ) # :nodoc:
|
7
|
-
value_sets = []
|
7
|
+
value_sets = []
|
8
8
|
arr, current_arr_values_size, current_size = [], 0, 0
|
9
9
|
values.each_with_index do |val,i|
|
10
10
|
comma_bytes = arr.size
|
11
11
|
sql_size_thus_far = sql_size + current_size + val.size + comma_bytes
|
12
12
|
if NO_MAX_PACKET == max_bytes or sql_size_thus_far <= max_bytes
|
13
|
-
current_size += val.
|
13
|
+
current_size += val.bytesize
|
14
14
|
arr << val
|
15
15
|
else
|
16
16
|
value_sets << arr
|
17
17
|
arr = [ val ]
|
18
|
-
current_size = val.
|
18
|
+
current_size = val.bytesize
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
# if we're on the last iteration push whatever we have in arr to value_sets
|
22
22
|
value_sets << arr if i == (values.size-1)
|
23
23
|
end
|
24
24
|
[ *value_sets ]
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
module InstanceMethods
|
29
29
|
def next_value_for_sequence(sequence_name)
|
30
30
|
%{#{sequence_name}.nextval}
|
31
31
|
end
|
32
|
-
|
33
|
-
# +sql+ can be a single string or an array. If it is an array all
|
32
|
+
|
33
|
+
# +sql+ can be a single string or an array. If it is an array all
|
34
34
|
# elements that are in position >= 1 will be appended to the final SQL.
|
35
35
|
def insert_many( sql, values, *args ) # :nodoc:
|
36
36
|
# the number of inserts default
|
37
37
|
number_of_inserts = 0
|
38
|
-
|
38
|
+
|
39
39
|
base_sql,post_sql = if sql.is_a?( String )
|
40
40
|
[ sql, '' ]
|
41
41
|
elsif sql.is_a?( Array )
|
42
42
|
[ sql.shift, sql.join( ' ' ) ]
|
43
43
|
end
|
44
|
-
|
45
|
-
sql_size = QUERY_OVERHEAD + base_sql.size + post_sql.size
|
44
|
+
|
45
|
+
sql_size = QUERY_OVERHEAD + base_sql.size + post_sql.size
|
46
46
|
|
47
47
|
# the number of bytes the requested insert statement values will take up
|
48
48
|
values_in_bytes = values.sum {|value| value.size }
|
49
|
-
|
49
|
+
|
50
50
|
# the number of bytes (commas) it will take to comma separate our values
|
51
51
|
comma_separated_bytes = values.size-1
|
52
|
-
|
52
|
+
|
53
53
|
# the total number of bytes required if this statement is one statement
|
54
54
|
total_bytes = sql_size + values_in_bytes + comma_separated_bytes
|
55
|
-
|
55
|
+
|
56
56
|
max = max_allowed_packet
|
57
|
-
|
57
|
+
|
58
58
|
# if we can insert it all as one statement
|
59
59
|
if NO_MAX_PACKET == max or total_bytes < max
|
60
60
|
number_of_inserts += 1
|
@@ -23,6 +23,6 @@ end
|
|
23
23
|
|
24
24
|
|
25
25
|
this_dir = Pathname.new File.dirname(__FILE__)
|
26
|
-
require this_dir.join("import")
|
27
|
-
require this_dir.join("active_record/adapters/abstract_adapter")
|
28
|
-
require this_dir.join("synchronize")
|
26
|
+
require this_dir.join("import").to_s
|
27
|
+
require this_dir.join("active_record/adapters/abstract_adapter").to_s
|
28
|
+
require this_dir.join("synchronize").to_s
|
metadata
CHANGED
@@ -1,76 +1,75 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: Empact-activerecord-import
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.4
|
4
5
|
prerelease:
|
5
|
-
version: 0.3.3
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Zach Dennis
|
9
9
|
- Ben Woosley
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2011-08-16 00:00:00.000000000Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
17
16
|
name: activerecord
|
18
|
-
requirement: &
|
17
|
+
requirement: &2152287780 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
23
22
|
version: 3.0.0
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
|
-
version_requirements: *
|
27
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *2152287780
|
26
|
+
- !ruby/object:Gem::Dependency
|
28
27
|
name: rake
|
29
|
-
requirement: &
|
28
|
+
requirement: &2152285900 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
35
34
|
type: :development
|
36
35
|
prerelease: false
|
37
|
-
version_requirements: *
|
38
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *2152285900
|
37
|
+
- !ruby/object:Gem::Dependency
|
39
38
|
name: jeweler
|
40
|
-
requirement: &
|
39
|
+
requirement: &2152283860 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
45
44
|
version: 1.4.0
|
46
45
|
type: :development
|
47
46
|
prerelease: false
|
48
|
-
version_requirements: *
|
49
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *2152283860
|
48
|
+
- !ruby/object:Gem::Dependency
|
50
49
|
name: activerecord
|
51
|
-
requirement: &
|
50
|
+
requirement: &2152281560 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
56
55
|
version: 3.0.0
|
57
56
|
type: :runtime
|
58
57
|
prerelease: false
|
59
|
-
version_requirements: *
|
60
|
-
description: Extraction of the ActiveRecord::Base#import functionality from ar-extensions
|
58
|
+
version_requirements: *2152281560
|
59
|
+
description: Extraction of the ActiveRecord::Base#import functionality from ar-extensions
|
60
|
+
for Rails 3 and beyond
|
61
61
|
email: ben.woosley@gmail.com
|
62
62
|
executables: []
|
63
|
-
|
64
63
|
extensions: []
|
65
|
-
|
66
|
-
extra_rdoc_files:
|
64
|
+
extra_rdoc_files:
|
67
65
|
- README.markdown
|
68
|
-
files:
|
66
|
+
files:
|
69
67
|
- README.markdown
|
70
68
|
- Rakefile
|
71
69
|
- VERSION
|
72
70
|
- lib/activerecord-import.rb
|
73
71
|
- lib/activerecord-import/active_record/adapters/abstract_adapter.rb
|
72
|
+
- lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb
|
74
73
|
- lib/activerecord-import/active_record/adapters/mysql2_adapter.rb
|
75
74
|
- lib/activerecord-import/active_record/adapters/mysql_adapter.rb
|
76
75
|
- lib/activerecord-import/active_record/adapters/postgresql_adapter.rb
|
@@ -88,33 +87,29 @@ files:
|
|
88
87
|
- lib/activerecord-import/synchronize.rb
|
89
88
|
homepage: http://github.com/Empact/activerecord-import
|
90
89
|
licenses: []
|
91
|
-
|
92
90
|
post_install_message:
|
93
91
|
rdoc_options: []
|
94
|
-
|
95
|
-
require_paths:
|
92
|
+
require_paths:
|
96
93
|
- lib
|
97
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
95
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
segments:
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
segments:
|
104
101
|
- 0
|
105
|
-
|
106
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
hash: 2262008768261655531
|
103
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
104
|
none: false
|
108
|
-
requirements:
|
109
|
-
- -
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version:
|
105
|
+
requirements:
|
106
|
+
- - ! '>='
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
112
109
|
requirements: []
|
113
|
-
|
114
110
|
rubyforge_project:
|
115
|
-
rubygems_version: 1.8.
|
111
|
+
rubygems_version: 1.8.5
|
116
112
|
signing_key:
|
117
113
|
specification_version: 3
|
118
114
|
summary: Bulk-loading extension for ActiveRecord
|
119
115
|
test_files: []
|
120
|
-
|