activerecord-import 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +31 -0
  3. data/Brewfile +3 -0
  4. data/Gemfile +39 -0
  5. data/Rakefile +1 -24
  6. data/activerecord-import.gemspec +22 -0
  7. data/benchmarks/README +32 -0
  8. data/benchmarks/benchmark.rb +64 -0
  9. data/benchmarks/boot.rb +18 -0
  10. data/benchmarks/lib/base.rb +137 -0
  11. data/benchmarks/lib/cli_parser.rb +103 -0
  12. data/benchmarks/lib/float.rb +15 -0
  13. data/benchmarks/lib/mysql_benchmark.rb +22 -0
  14. data/benchmarks/lib/output_to_csv.rb +18 -0
  15. data/benchmarks/lib/output_to_html.rb +69 -0
  16. data/benchmarks/models/test_innodb.rb +3 -0
  17. data/benchmarks/models/test_memory.rb +3 -0
  18. data/benchmarks/models/test_myisam.rb +3 -0
  19. data/benchmarks/schema/mysql_schema.rb +16 -0
  20. data/gemfiles/3.1.gemfile +4 -0
  21. data/gemfiles/3.2.gemfile +4 -0
  22. data/gemfiles/4.0.gemfile +4 -0
  23. data/lib/activerecord-import/active_record/adapters/abstract_adapter.rb +0 -1
  24. data/lib/activerecord-import/active_record/adapters/em_mysql2_adapter.rb +8 -0
  25. data/lib/activerecord-import/adapters/abstract_adapter.rb +5 -58
  26. data/lib/activerecord-import/adapters/em_mysql2_adapter.rb +5 -0
  27. data/lib/activerecord-import/adapters/mysql_adapter.rb +50 -3
  28. data/lib/activerecord-import/adapters/sqlite3_adapter.rb +28 -3
  29. data/lib/activerecord-import/base.rb +3 -2
  30. data/lib/activerecord-import/em_mysql2.rb +7 -0
  31. data/lib/activerecord-import/import.rb +29 -29
  32. data/lib/activerecord-import/synchronize.rb +11 -10
  33. data/lib/activerecord-import/value_sets_parser.rb +54 -0
  34. data/lib/activerecord-import/version.rb +5 -0
  35. data/test/adapters/em_mysql2.rb +1 -0
  36. data/test/adapters/jdbcmysql.rb +1 -0
  37. data/test/adapters/mysql.rb +1 -0
  38. data/test/adapters/mysql2.rb +1 -0
  39. data/test/adapters/mysql2spatial.rb +1 -0
  40. data/test/adapters/mysqlspatial.rb +1 -0
  41. data/test/adapters/postgis.rb +1 -0
  42. data/test/adapters/postgresql.rb +1 -0
  43. data/test/adapters/seamless_database_pool.rb +1 -0
  44. data/test/adapters/spatialite.rb +1 -0
  45. data/test/adapters/sqlite3.rb +1 -0
  46. data/test/database.yml.sample +57 -0
  47. data/test/em_mysql2/import_test.rb +6 -0
  48. data/test/import_test.rb +350 -0
  49. data/test/jdbcmysql/import_test.rb +6 -0
  50. data/test/models/book.rb +3 -0
  51. data/test/models/group.rb +3 -0
  52. data/test/models/topic.rb +7 -0
  53. data/test/models/widget.rb +7 -0
  54. data/test/mysql/import_test.rb +6 -0
  55. data/test/mysql2/import_test.rb +6 -0
  56. data/test/mysqlspatial/import_test.rb +6 -0
  57. data/test/mysqlspatial2/import_test.rb +6 -0
  58. data/test/postgis/import_test.rb +4 -0
  59. data/test/postgresql/import_test.rb +4 -0
  60. data/test/schema/generic_schema.rb +104 -0
  61. data/test/schema/mysql_schema.rb +17 -0
  62. data/test/schema/version.rb +10 -0
  63. data/test/sqlite3/import_test.rb +52 -0
  64. data/test/support/active_support/test_case_extensions.rb +67 -0
  65. data/test/support/factories.rb +19 -0
  66. data/test/support/generate.rb +29 -0
  67. data/test/support/mysql/assertions.rb +55 -0
  68. data/test/support/mysql/import_examples.rb +147 -0
  69. data/test/support/postgresql/import_examples.rb +21 -0
  70. data/test/synchronize_test.rb +22 -0
  71. data/test/test_helper.rb +48 -0
  72. data/test/value_sets_bytes_parser_test.rb +96 -0
  73. data/test/value_sets_records_parser_test.rb +32 -0
  74. metadata +120 -58
  75. data/VERSION +0 -1
@@ -0,0 +1,21 @@
1
+ # encoding: UTF-8
2
+ def should_support_postgresql_import_functionality
3
+ describe "#supports_imports?" do
4
+ it "should support import" do
5
+ assert ActiveRecord::Base.supports_import?
6
+ end
7
+ end
8
+
9
+ describe "#import" do
10
+ it "should import with a single insert" do
11
+ # see ActiveRecord::ConnectionAdapters::AbstractAdapter test for more specifics
12
+ assert_difference "Topic.count", +10 do
13
+ result = Topic.import Build(3, :topics)
14
+ assert_equal 1, result.num_inserts
15
+
16
+ result = Topic.import Build(7, :topics)
17
+ assert_equal 1, result.num_inserts
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,22 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ describe ".synchronize" do
4
+ let(:topics){ Generate(3, :topics) }
5
+ let(:titles){ %w(one two three) }
6
+
7
+ setup do
8
+ # update records outside of ActiveRecord knowing about it
9
+ Topic.connection.execute( "UPDATE #{Topic.table_name} SET title='#{titles[0]}_haha' WHERE id=#{topics[0].id}", "Updating record 1 without ActiveRecord" )
10
+ Topic.connection.execute( "UPDATE #{Topic.table_name} SET title='#{titles[1]}_haha' WHERE id=#{topics[1].id}", "Updating record 2 without ActiveRecord" )
11
+ Topic.connection.execute( "UPDATE #{Topic.table_name} SET title='#{titles[2]}_haha' WHERE id=#{topics[2].id}", "Updating record 3 without ActiveRecord" )
12
+ end
13
+
14
+ it "reloads data for the specified records" do
15
+ Book.synchronize topics
16
+
17
+ actual_titles = topics.map(&:title)
18
+ assert_equal "#{titles[0]}_haha", actual_titles[0], "the first record was not correctly updated"
19
+ assert_equal "#{titles[1]}_haha", actual_titles[1], "the second record was not correctly updated"
20
+ assert_equal "#{titles[2]}_haha", actual_titles[2], "the third record was not correctly updated"
21
+ end
22
+ end
@@ -0,0 +1,48 @@
1
+ require 'pathname'
2
+ test_dir = Pathname.new File.dirname(__FILE__)
3
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+
6
+ require "fileutils"
7
+
8
+ ENV["RAILS_ENV"] = "test"
9
+
10
+ require "bundler"
11
+ Bundler.setup
12
+
13
+ require "logger"
14
+ require 'test/unit'
15
+ require "active_record"
16
+ require "active_record/fixtures"
17
+ require "active_support/test_case"
18
+
19
+ require "delorean"
20
+ require "ruby-debug" if RUBY_VERSION.to_f < 1.9
21
+
22
+ adapter = ENV["ARE_DB"] || "sqlite3"
23
+
24
+ FileUtils.mkdir_p 'log'
25
+ ActiveRecord::Base.logger = Logger.new("log/test.log")
26
+ ActiveRecord::Base.logger.level = Logger::DEBUG
27
+ ActiveRecord::Base.configurations["test"] = YAML.load_file(test_dir.join("database.yml"))[adapter]
28
+
29
+ require "activerecord-import"
30
+ ActiveRecord::Base.establish_connection "test"
31
+
32
+ ActiveSupport::Notifications.subscribe(/active_record.sql/) do |event, _, _, _, hsh|
33
+ ActiveRecord::Base.logger.info hsh[:sql]
34
+ end
35
+
36
+ require "factory_girl"
37
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each{ |file| require file }
38
+
39
+ # Load base/generic schema
40
+ require test_dir.join("schema/version")
41
+ require test_dir.join("schema/generic_schema")
42
+ adapter_schema = test_dir.join("schema/#{adapter}_schema.rb")
43
+ require adapter_schema if File.exists?(adapter_schema)
44
+
45
+ Dir[File.dirname(__FILE__) + "/models/*.rb"].each{ |file| require file }
46
+
47
+ # Prevent this deprecation warning from breaking the tests.
48
+ Rake::FileList.send(:remove_method, :import)
@@ -0,0 +1,96 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ require 'activerecord-import/value_sets_parser'
4
+
5
+ describe ActiveRecord::Import::ValuesSetsBytesParser do
6
+ context "#parse - computing insert value sets" do
7
+ let(:parser){ ActiveRecord::Import::ValuesSetsBytesParser }
8
+ let(:base_sql){ "INSERT INTO atable (a,b,c)" }
9
+ let(:values){ [ "(1,2,3)", "(2,3,4)", "(3,4,5)" ] }
10
+
11
+ context "when the max allowed bytes is 33 and the base SQL is 26 bytes" do
12
+ it "should return 3 value sets when given 3 value sets of 7 bytes a piece" do
13
+ value_sets = parser.parse values, :reserved_bytes => base_sql.size, :max_bytes => 33
14
+ assert_equal 3, value_sets.size
15
+ end
16
+ end
17
+
18
+ context "when the max allowed bytes is 40 and the base SQL is 26 bytes" do
19
+ it "should return 3 value sets when given 3 value sets of 7 bytes a piece" do
20
+ value_sets = parser.parse values, :reserved_bytes => base_sql.size, :max_bytes => 40
21
+ assert_equal 3, value_sets.size
22
+ end
23
+ end
24
+
25
+ context "when the max allowed bytes is 41 and the base SQL is 26 bytes" do
26
+ it "should return 2 value sets when given 2 value sets of 7 bytes a piece" do
27
+ value_sets = parser.parse values, :reserved_bytes => base_sql.size, :max_bytes => 41
28
+ assert_equal 2, value_sets.size
29
+ end
30
+ end
31
+
32
+ context "when the max allowed bytes is 48 and the base SQL is 26 bytes" do
33
+ it "should return 2 value sets when given 2 value sets of 7 bytes a piece" do
34
+ value_sets = parser.parse values, :reserved_bytes => base_sql.size, :max_bytes => 48
35
+ assert_equal 2, value_sets.size
36
+ end
37
+ end
38
+
39
+ context "when the max allowed bytes is 49 and the base SQL is 26 bytes" do
40
+ it "should return 1 value sets when given 1 value sets of 7 bytes a piece" do
41
+ value_sets = parser.parse values, :reserved_bytes => base_sql.size, :max_bytes => 49
42
+ assert_equal 1, value_sets.size
43
+ end
44
+ end
45
+
46
+ context "when the max allowed bytes is 999999 and the base SQL is 26 bytes" do
47
+ it "should return 1 value sets when given 1 value sets of 7 bytes a piece" do
48
+ value_sets = parser.parse values, :reserved_bytes => base_sql.size, :max_bytes => 999999
49
+ assert_equal 1, value_sets.size
50
+ end
51
+ end
52
+
53
+ it "should properly build insert value set based on max packet allowed" do
54
+ values = [
55
+ "('1','2','3')",
56
+ "('4','5','6')",
57
+ "('7','8','9')" ]
58
+
59
+ values_size_in_bytes = values.sum {|value| value.bytesize }
60
+ base_sql_size_in_bytes = 15
61
+ max_bytes = 30
62
+
63
+ value_sets = parser.parse values, reserved_bytes: base_sql_size_in_bytes, max_bytes: max_bytes
64
+ assert_equal 3, value_sets.size, 'Three value sets were expected!'
65
+
66
+ # Each element in the value_sets array must be an array
67
+ value_sets.each_with_index { |e,i|
68
+ assert_kind_of Array, e, "Element #{i} was expected to be an Array!" }
69
+
70
+ # Each element in the values array should have a 1:1 correlation to the elements
71
+ # in the returned value_sets arrays
72
+ assert_equal values[0], value_sets[0].first
73
+ assert_equal values[1], value_sets[1].first
74
+ assert_equal values[2], value_sets[2].first
75
+ end
76
+
77
+ context "data contains multi-byte chars" do
78
+ it "should properly build insert value set based on max packet allowed" do
79
+ # each accented e should be 2 bytes, so each entry is 6 bytes instead of 5
80
+ values = [
81
+ "('é')",
82
+ "('é')" ]
83
+
84
+ base_sql_size_in_bytes = 15
85
+ max_bytes = 26
86
+
87
+ values_size_in_bytes = values.sum {|value| value.bytesize }
88
+ value_sets = parser.parse values, reserved_bytes: base_sql_size_in_bytes, max_bytes: max_bytes
89
+
90
+ assert_equal 2, value_sets.size, 'Two value sets were expected!'
91
+ end
92
+ end
93
+ end
94
+
95
+ end
96
+
@@ -0,0 +1,32 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
2
+
3
+ require 'activerecord-import/value_sets_parser'
4
+
5
+ describe "ActiveRecord::Import::ValuesSetsRecordsParser" do
6
+ context "#parse - computing insert value sets" do
7
+ let(:parser){ ActiveRecord::Import::ValueSetsRecordsParser }
8
+ let(:base_sql){ "INSERT INTO atable (a,b,c)" }
9
+ let(:values){ [ "(1,2,3)", "(2,3,4)", "(3,4,5)" ] }
10
+
11
+ context "when the max number of records is 1" do
12
+ it "should return 3 value sets when given 3 values sets" do
13
+ value_sets = parser.parse values, :max_records => 1
14
+ assert_equal 3, value_sets.size
15
+ end
16
+ end
17
+
18
+ context "when the max number of records is 2" do
19
+ it "should return 2 value sets when given 3 values sets" do
20
+ value_sets = parser.parse values, :max_records => 2
21
+ assert_equal 2, value_sets.size
22
+ end
23
+ end
24
+
25
+ context "when the max number of records is 3" do
26
+ it "should return 1 value sets when given 3 values sets" do
27
+ value_sets = parser.parse values, :max_records => 3
28
+ assert_equal 1, value_sets.size
29
+ end
30
+ end
31
+ end
32
+ end
metadata CHANGED
@@ -1,93 +1,76 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-import
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
5
- prerelease:
4
+ version: 0.4.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Zach Dennis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-16 00:00:00.000000000 Z
11
+ date: 2013-07-17 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '3.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '3.0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: jeweler
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: 1.4.0
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: 1.4.0
62
- - !ruby/object:Gem::Dependency
63
- name: activerecord
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '3.0'
70
- type: :runtime
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: '3.0'
78
41
  description: Extraction of the ActiveRecord::Base#import functionality from ar-extensions
79
42
  for Rails 3 and beyond
80
- email: zach.dennis@gmail.com
43
+ email:
44
+ - zach.dennis@gmail.com
81
45
  executables: []
82
46
  extensions: []
83
- extra_rdoc_files:
84
- - README.markdown
47
+ extra_rdoc_files: []
85
48
  files:
49
+ - .gitignore
50
+ - Brewfile
51
+ - Gemfile
86
52
  - README.markdown
87
53
  - Rakefile
88
- - VERSION
54
+ - activerecord-import.gemspec
55
+ - benchmarks/README
56
+ - benchmarks/benchmark.rb
57
+ - benchmarks/boot.rb
58
+ - benchmarks/lib/base.rb
59
+ - benchmarks/lib/cli_parser.rb
60
+ - benchmarks/lib/float.rb
61
+ - benchmarks/lib/mysql_benchmark.rb
62
+ - benchmarks/lib/output_to_csv.rb
63
+ - benchmarks/lib/output_to_html.rb
64
+ - benchmarks/models/test_innodb.rb
65
+ - benchmarks/models/test_memory.rb
66
+ - benchmarks/models/test_myisam.rb
67
+ - benchmarks/schema/mysql_schema.rb
68
+ - gemfiles/3.1.gemfile
69
+ - gemfiles/3.2.gemfile
70
+ - gemfiles/4.0.gemfile
89
71
  - lib/activerecord-import.rb
90
72
  - lib/activerecord-import/active_record/adapters/abstract_adapter.rb
73
+ - lib/activerecord-import/active_record/adapters/em_mysql2_adapter.rb
91
74
  - lib/activerecord-import/active_record/adapters/jdbcmysql_adapter.rb
92
75
  - lib/activerecord-import/active_record/adapters/mysql2_adapter.rb
93
76
  - lib/activerecord-import/active_record/adapters/mysql_adapter.rb
@@ -95,42 +78,121 @@ files:
95
78
  - lib/activerecord-import/active_record/adapters/seamless_database_pool_adapter.rb
96
79
  - lib/activerecord-import/active_record/adapters/sqlite3_adapter.rb
97
80
  - lib/activerecord-import/adapters/abstract_adapter.rb
81
+ - lib/activerecord-import/adapters/em_mysql2_adapter.rb
98
82
  - lib/activerecord-import/adapters/mysql2_adapter.rb
99
83
  - lib/activerecord-import/adapters/mysql_adapter.rb
100
84
  - lib/activerecord-import/adapters/postgresql_adapter.rb
101
85
  - lib/activerecord-import/adapters/sqlite3_adapter.rb
102
86
  - lib/activerecord-import/base.rb
87
+ - lib/activerecord-import/em_mysql2.rb
103
88
  - lib/activerecord-import/import.rb
104
89
  - lib/activerecord-import/mysql.rb
105
90
  - lib/activerecord-import/mysql2.rb
106
91
  - lib/activerecord-import/postgresql.rb
107
92
  - lib/activerecord-import/sqlite3.rb
108
93
  - lib/activerecord-import/synchronize.rb
94
+ - lib/activerecord-import/value_sets_parser.rb
95
+ - lib/activerecord-import/version.rb
96
+ - test/adapters/em_mysql2.rb
97
+ - test/adapters/jdbcmysql.rb
98
+ - test/adapters/mysql.rb
99
+ - test/adapters/mysql2.rb
100
+ - test/adapters/mysql2spatial.rb
101
+ - test/adapters/mysqlspatial.rb
102
+ - test/adapters/postgis.rb
103
+ - test/adapters/postgresql.rb
104
+ - test/adapters/seamless_database_pool.rb
105
+ - test/adapters/spatialite.rb
106
+ - test/adapters/sqlite3.rb
107
+ - test/database.yml.sample
108
+ - test/em_mysql2/import_test.rb
109
+ - test/import_test.rb
110
+ - test/jdbcmysql/import_test.rb
111
+ - test/models/book.rb
112
+ - test/models/group.rb
113
+ - test/models/topic.rb
114
+ - test/models/widget.rb
115
+ - test/mysql/import_test.rb
116
+ - test/mysql2/import_test.rb
117
+ - test/mysqlspatial/import_test.rb
118
+ - test/mysqlspatial2/import_test.rb
119
+ - test/postgis/import_test.rb
120
+ - test/postgresql/import_test.rb
121
+ - test/schema/generic_schema.rb
122
+ - test/schema/mysql_schema.rb
123
+ - test/schema/version.rb
124
+ - test/sqlite3/import_test.rb
125
+ - test/support/active_support/test_case_extensions.rb
126
+ - test/support/factories.rb
127
+ - test/support/generate.rb
128
+ - test/support/mysql/assertions.rb
129
+ - test/support/mysql/import_examples.rb
130
+ - test/support/postgresql/import_examples.rb
131
+ - test/synchronize_test.rb
132
+ - test/test_helper.rb
133
+ - test/value_sets_bytes_parser_test.rb
134
+ - test/value_sets_records_parser_test.rb
109
135
  homepage: http://github.com/zdennis/activerecord-import
110
136
  licenses: []
137
+ metadata: {}
111
138
  post_install_message:
112
139
  rdoc_options: []
113
140
  require_paths:
114
141
  - lib
115
142
  required_ruby_version: !ruby/object:Gem::Requirement
116
- none: false
117
143
  requirements:
118
- - - ! '>='
144
+ - - '>='
119
145
  - !ruby/object:Gem::Version
120
- version: '0'
121
- segments:
122
- - 0
123
- hash: -1608822567820744483
146
+ version: 1.9.2
124
147
  required_rubygems_version: !ruby/object:Gem::Requirement
125
- none: false
126
148
  requirements:
127
- - - ! '>='
149
+ - - '>='
128
150
  - !ruby/object:Gem::Version
129
151
  version: '0'
130
152
  requirements: []
131
153
  rubyforge_project:
132
- rubygems_version: 1.8.24
154
+ rubygems_version: 2.0.3
133
155
  signing_key:
134
- specification_version: 3
156
+ specification_version: 4
135
157
  summary: Bulk-loading extension for ActiveRecord
136
- test_files: []
158
+ test_files:
159
+ - test/adapters/em_mysql2.rb
160
+ - test/adapters/jdbcmysql.rb
161
+ - test/adapters/mysql.rb
162
+ - test/adapters/mysql2.rb
163
+ - test/adapters/mysql2spatial.rb
164
+ - test/adapters/mysqlspatial.rb
165
+ - test/adapters/postgis.rb
166
+ - test/adapters/postgresql.rb
167
+ - test/adapters/seamless_database_pool.rb
168
+ - test/adapters/spatialite.rb
169
+ - test/adapters/sqlite3.rb
170
+ - test/database.yml.sample
171
+ - test/em_mysql2/import_test.rb
172
+ - test/import_test.rb
173
+ - test/jdbcmysql/import_test.rb
174
+ - test/models/book.rb
175
+ - test/models/group.rb
176
+ - test/models/topic.rb
177
+ - test/models/widget.rb
178
+ - test/mysql/import_test.rb
179
+ - test/mysql2/import_test.rb
180
+ - test/mysqlspatial/import_test.rb
181
+ - test/mysqlspatial2/import_test.rb
182
+ - test/postgis/import_test.rb
183
+ - test/postgresql/import_test.rb
184
+ - test/schema/generic_schema.rb
185
+ - test/schema/mysql_schema.rb
186
+ - test/schema/version.rb
187
+ - test/sqlite3/import_test.rb
188
+ - test/support/active_support/test_case_extensions.rb
189
+ - test/support/factories.rb
190
+ - test/support/generate.rb
191
+ - test/support/mysql/assertions.rb
192
+ - test/support/mysql/import_examples.rb
193
+ - test/support/postgresql/import_examples.rb
194
+ - test/synchronize_test.rb
195
+ - test/test_helper.rb
196
+ - test/value_sets_bytes_parser_test.rb
197
+ - test/value_sets_records_parser_test.rb
198
+ has_rdoc: