activerecord-import 0.5.0 → 0.6.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d8742c99d2600b0f4e4c425ef0a427f46f5f220
4
- data.tar.gz: 2c421e2f980400b03efc42f087bd68179edd5f78
3
+ metadata.gz: 2d56f03f91020cf45a7991e8dcfcc3501865bc76
4
+ data.tar.gz: ad90843270868863373e130fe3031eca04212c9f
5
5
  SHA512:
6
- metadata.gz: 092393e90fe7bebb3eed9a5c51aca467afe5b64d664d5b1888b25cc6b9c5e2cfdcdbd04505c736e22a4e8d40d9be0a5bd26f2c7f709213927d530f575b81d115
7
- data.tar.gz: d130c2a565701477b2344599b267f0bc45f0f2e99f0bc88ac81e54f35b152993558d06340888a12a8245db963e51249b9885ba68d7532d01760c3c626e1f662f
6
+ metadata.gz: 39d17dc94eec248309b4acf6b0a6d0b83aaa350eea90b1177176d0c4b032b5f3be49d23c3c03db6dba706c2d30e28f3bc543e5a44d132431ea8a74f12d14fe5c
7
+ data.tar.gz: 1370ba68b46d19f12d032a8f4eacefaddb9dbd7850ce1661504ffa7c95baabba32c1f0d363a281f2c1dfeba07d932076035403e37241e2acd86f3dbffd666226
@@ -0,0 +1,20 @@
1
+ language: ruby
2
+ cache: bundler
3
+ rvm:
4
+ - 2.0.0
5
+
6
+ gemfile:
7
+ - Gemfile
8
+
9
+ bundler_args: -j2
10
+
11
+ before_script:
12
+ - mysql -e 'create database activerecord_import_test;'
13
+ - psql -c 'create database activerecord_import_test;' -U postgres
14
+ - psql -U postgres -c "create extension postgis"
15
+ - cp test/travis/database.yml test/database.yml
16
+ # https://github.com/discourse/discourse/blob/master/.travis.yml
17
+ - export RUBY_GC_MALLOC_LIMIT=50000000
18
+
19
+ script:
20
+ - test/travis/build.sh
data/Gemfile CHANGED
@@ -23,13 +23,12 @@ gem "factory_girl", "~> 4.2.0"
23
23
  gem "delorean", "~> 0.2.0"
24
24
 
25
25
  # Debugging
26
- platforms :mri_18 do
27
- gem "ruby-debug", "= 0.10.4"
28
- end
29
-
30
26
  platforms :jruby do
31
27
  gem "ruby-debug-base", "= 0.10.4"
32
- gem "ruby-debug", "= 0.10.4"
28
+ end
29
+
30
+ platforms :jruby, :mri_18 do
31
+ gem "ruby-debug", "= 0.10.4"
33
32
  end
34
33
 
35
34
  platforms :mri_19 do
@@ -348,8 +348,8 @@ class ActiveRecord::Base
348
348
  if self.column_names.include?(key)
349
349
  value = blk.call
350
350
  if index=column_names.index(key)
351
- # replace every instance of the array of attributes with our value
352
- array_of_attributes.each{ |arr| arr[index] = value }
351
+ # replace every instance of the array of attributes with our value
352
+ array_of_attributes.each{ |arr| arr[index] = value if arr[index].nil? }
353
353
  else
354
354
  column_names << key
355
355
  array_of_attributes.each { |arr| arr << value }
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module Import
3
- VERSION = "0.5.0"
3
+ VERSION = "0.6.0"
4
4
  end
5
5
  end
@@ -236,29 +236,38 @@ describe "#import" do
236
236
  context "ActiveRecord timestamps" do
237
237
  context "when the timestamps columns are present" do
238
238
  setup do
239
+ @existing_book = Book.create(title: "Fell", author_name: "Curry", publisher: "Bayer", created_at: 2.years.ago.utc, created_on: 2.years.ago.utc)
239
240
  ActiveRecord::Base.default_timezone = :utc
240
241
  Delorean.time_travel_to("5 minutes ago") do
241
- assert_difference "Book.count", +1 do
242
- result = Book.import [:title, :author_name, :publisher], [["LDAP", "Big Bird", "Del Rey"]]
242
+ assert_difference "Book.count", +2 do
243
+ result = Book.import ["title", "author_name", "publisher", "created_at", "created_on"], [["LDAP", "Big Bird", "Del Rey", nil, nil], [@existing_book.title, @existing_book.author_name, @existing_book.publisher, @existing_book.created_at, @existing_book.created_on]]
243
244
  end
244
245
  end
245
- @book = Book.last
246
+ @new_book, @existing_book = Book.last 2
246
247
  end
247
248
 
248
249
  it "should set the created_at column for new records" do
249
- assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @book.created_at.strftime("%H:%M")
250
+ assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @new_book.created_at.strftime("%H:%M")
250
251
  end
251
252
 
252
253
  it "should set the created_on column for new records" do
253
- assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @book.created_on.strftime("%H:%M")
254
+ assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @new_book.created_on.strftime("%H:%M")
255
+ end
256
+
257
+ it "should not set the created_at column for existing records" do
258
+ assert_equal 2.years.ago.utc.strftime("%Y:%d"), @existing_book.created_at.strftime("%Y:%d")
259
+ end
260
+
261
+ it "should not set the created_on column for existing records" do
262
+ assert_equal 2.years.ago.utc.strftime("%Y:%d"), @existing_book.created_on.strftime("%Y:%d")
254
263
  end
255
264
 
256
265
  it "should set the updated_at column for new records" do
257
- assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @book.updated_at.strftime("%H:%M")
266
+ assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @new_book.updated_at.strftime("%H:%M")
258
267
  end
259
268
 
260
269
  it "should set the updated_on column for new records" do
261
- assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @book.updated_on.strftime("%H:%M")
270
+ assert_equal 5.minutes.ago.utc.strftime("%H:%M"), @new_book.updated_on.strftime("%H:%M")
262
271
  end
263
272
  end
264
273
 
@@ -0,0 +1,19 @@
1
+ #!/bin/sh
2
+ set -e
3
+ set +x
4
+
5
+ bundle exec rake test:em_mysql2 # Run tests for em_mysql2
6
+ bundle exec rake test:mysql # Run tests for mysql
7
+ bundle exec rake test:mysql2 # Run tests for mysql2
8
+ bundle exec rake test:mysql2spatial # Run tests for mysql2spatial
9
+ bundle exec rake test:mysqlspatial # Run tests for mysqlspatial
10
+ bundle exec rake test:postgis # Run tests for postgis
11
+ bundle exec rake test:postgresql # Run tests for postgresql
12
+ bundle exec rake test:seamless_database_pool # Run tests for seamless_database_pool
13
+ bundle exec rake test:spatialite # Run tests for spatialite
14
+ # so far the version installed in travis seems < 3.7.11 so we cannot test sqlite3 on it
15
+ # bundle exec rake test:sqlite3
16
+
17
+ #jruby
18
+ #bundle exec rake test:jdbcmysql # Run tests for jdbcmysql
19
+ #bundle exec rake test:jdbcpostgresql # Run tests for jdbcpostgresql
@@ -0,0 +1,57 @@
1
+ common: &common
2
+ username: root
3
+ password:
4
+ encoding: utf8
5
+ host: localhost
6
+ database: activerecord_import_test
7
+
8
+ mysql: &mysql
9
+ <<: *common
10
+ adapter: mysql
11
+
12
+ mysql2: &mysql2
13
+ <<: *common
14
+ adapter: mysql2
15
+
16
+ mysqlspatial:
17
+ <<: *mysql
18
+
19
+ mysql2spatial:
20
+ <<: *mysql2
21
+
22
+ em_mysql2:
23
+ <<: *common
24
+ adapter: em_mysql2
25
+ pool: 5
26
+
27
+ seamless_database_pool:
28
+ <<: *common
29
+ adapter: seamless_database_pool
30
+ pool_adapter: mysql2
31
+ master:
32
+ host: localhost
33
+
34
+ postgresql: &postgresql
35
+ <<: *common
36
+ username: postgres
37
+ adapter: postgresql
38
+ min_messages: warning
39
+
40
+ postgis:
41
+ <<: *postgresql
42
+
43
+ oracle:
44
+ <<: *common
45
+ adapter: oracle
46
+ min_messages: debug
47
+
48
+ sqlite:
49
+ adapter: sqlite
50
+ dbfile: test.db
51
+
52
+ sqlite3: &sqlite3
53
+ adapter: sqlite3
54
+ database: ":memory:"
55
+
56
+ spatialite:
57
+ <<: *sqlite3
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-import
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Dennis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-13 00:00:00.000000000 Z
11
+ date: 2014-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: Extraction of the ActiveRecord::Base#import functionality from ar-extensions
@@ -46,7 +46,8 @@ executables: []
46
46
  extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - .gitignore
49
+ - ".gitignore"
50
+ - ".travis.yml"
50
51
  - Brewfile
51
52
  - Gemfile
52
53
  - LICENSE
@@ -134,6 +135,8 @@ files:
134
135
  - test/support/postgresql/import_examples.rb
135
136
  - test/synchronize_test.rb
136
137
  - test/test_helper.rb
138
+ - test/travis/build.sh
139
+ - test/travis/database.yml
137
140
  - test/value_sets_bytes_parser_test.rb
138
141
  - test/value_sets_records_parser_test.rb
139
142
  homepage: http://github.com/zdennis/activerecord-import
@@ -146,17 +149,17 @@ require_paths:
146
149
  - lib
147
150
  required_ruby_version: !ruby/object:Gem::Requirement
148
151
  requirements:
149
- - - '>='
152
+ - - ">="
150
153
  - !ruby/object:Gem::Version
151
154
  version: 1.9.2
152
155
  required_rubygems_version: !ruby/object:Gem::Requirement
153
156
  requirements:
154
- - - '>='
157
+ - - ">="
155
158
  - !ruby/object:Gem::Version
156
159
  version: '0'
157
160
  requirements: []
158
161
  rubyforge_project:
159
- rubygems_version: 2.2.1
162
+ rubygems_version: 2.2.2
160
163
  signing_key:
161
164
  specification_version: 4
162
165
  summary: Bulk-loading extension for ActiveRecord
@@ -200,6 +203,8 @@ test_files:
200
203
  - test/support/postgresql/import_examples.rb
201
204
  - test/synchronize_test.rb
202
205
  - test/test_helper.rb
206
+ - test/travis/build.sh
207
+ - test/travis/database.yml
203
208
  - test/value_sets_bytes_parser_test.rb
204
209
  - test/value_sets_records_parser_test.rb
205
210
  has_rdoc: