upsert 2.2.1 → 2.9.9

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.
Files changed (41) hide show
  1. checksums.yaml +5 -5
  2. data/.ruby-version +1 -0
  3. data/.standard.yml +1 -0
  4. data/.travis.yml +54 -31
  5. data/CHANGELOG +9 -0
  6. data/Gemfile +12 -1
  7. data/LICENSE +3 -1
  8. data/README.md +35 -2
  9. data/Rakefile +7 -1
  10. data/lib/upsert.rb +49 -7
  11. data/lib/upsert/column_definition/mysql.rb +2 -2
  12. data/lib/upsert/column_definition/postgresql.rb +9 -8
  13. data/lib/upsert/column_definition/sqlite3.rb +3 -3
  14. data/lib/upsert/connection/Java_ComMysqlJdbc_JDBC4Connection.rb +5 -3
  15. data/lib/upsert/connection/Java_OrgPostgresqlJdbc_PgConnection.rb +33 -0
  16. data/lib/upsert/connection/PG_Connection.rb +5 -0
  17. data/lib/upsert/connection/jdbc.rb +7 -1
  18. data/lib/upsert/connection/postgresql.rb +2 -3
  19. data/lib/upsert/merge_function.rb +3 -2
  20. data/lib/upsert/merge_function/{Java_OrgPostgresqlJdbc4_Jdbc4Connection.rb → Java_OrgPostgresqlJdbc_PgConnection.rb} +2 -2
  21. data/lib/upsert/merge_function/PG_Connection.rb +1 -1
  22. data/lib/upsert/merge_function/postgresql.rb +81 -19
  23. data/lib/upsert/merge_function/sqlite3.rb +10 -0
  24. data/lib/upsert/version.rb +1 -1
  25. data/spec/correctness_spec.rb +20 -5
  26. data/spec/database_functions_spec.rb +6 -2
  27. data/spec/hstore_spec.rb +53 -38
  28. data/spec/logger_spec.rb +1 -1
  29. data/spec/postgresql_spec.rb +81 -3
  30. data/spec/reserved_words_spec.rb +18 -14
  31. data/spec/sequel_spec.rb +16 -7
  32. data/spec/spec_helper.rb +238 -111
  33. data/spec/speed_spec.rb +3 -33
  34. data/spec/threaded_spec.rb +35 -12
  35. data/spec/type_safety_spec.rb +2 -1
  36. data/travis/run_docker_db.sh +20 -0
  37. data/upsert-java.gemspec +12 -0
  38. data/upsert.gemspec +9 -63
  39. data/upsert.gemspec.common +106 -0
  40. metadata +37 -44
  41. data/lib/upsert/connection/Java_OrgPostgresqlJdbc4_Jdbc4Connection.rb +0 -20
data/spec/speed_spec.rb CHANGED
@@ -6,7 +6,7 @@ describe Upsert do
6
6
  assert_faster_than 'find + new/set/save', lotsa_records do |records|
7
7
  records.each do |selector, setter|
8
8
  if pet = Pet.where(selector).first
9
- pet.update_attributes setter, :without_protection => true
9
+ pet.update_attributes(setter)
10
10
  else
11
11
  pet = Pet.new
12
12
  selector.each do |k, v|
@@ -24,51 +24,21 @@ describe Upsert do
24
24
  assert_faster_than 'find_or_create + update_attributes', lotsa_records do |records|
25
25
  dynamic_method = nil
26
26
  records.each do |selector, setter|
27
- dynamic_method ||= "find_or_create_by_#{selector.keys.join('_or_')}"
28
- pet = Pet.send(dynamic_method, *selector.values)
29
- pet.update_attributes setter, :without_protection => true
27
+ Pet.find_or_create_by(selector).update_attributes(setter)
30
28
  end
31
29
  end
32
30
  end
33
31
  it "is faster than create + rescue/find/update" do
34
32
  assert_faster_than 'create + rescue/find/update', lotsa_records do |records|
35
- dynamic_method = nil
36
33
  records.each do |selector, setter|
37
- dynamic_method ||= "find_or_create_by_#{selector.keys.join('_or_')}"
38
34
  begin
39
35
  Pet.create selector.merge(setter), :without_protection => true
40
36
  rescue
41
- pet = Pet.send(dynamic_method, *selector.values)
42
- pet.update_attributes setter, :without_protection => true
37
+ Pet.find_or_create_by(selector).update_attributes(setter)
43
38
  end
44
39
  end
45
40
  end
46
41
  end
47
42
  end
48
-
49
- # FIXME apparently no longer faster?
50
- # if ENV['DB'] == 'mysql' && RUBY_VERSION >= '1.9'
51
- # describe 'compared to activerecord-import' do
52
- # it "is faster than faking upserts with activerecord-import" do
53
- # assert_faster_than 'faking upserts with activerecord-import', lotsa_records do |records|
54
- # columns = nil
55
- # all_values = []
56
- # records.each do |selector, setter|
57
- # columns ||= (selector.keys + setter.keys).uniq
58
- # all_values << columns.map do |k|
59
- # if setter.has_key?(k)
60
- # # prefer the setter so that you can change rows
61
- # setter[k]
62
- # else
63
- # selector[k]
64
- # end
65
- # end
66
- # end
67
- # Pet.import columns, all_values, :timestamps => false, :on_duplicate_key_update => columns
68
- # end
69
- # end
70
- # end
71
- # end
72
-
73
43
  end
74
44
  end
@@ -1,18 +1,21 @@
1
1
  require 'spec_helper'
2
2
  describe Upsert do
3
+ Thread.abort_on_exception = true
3
4
  describe "is thread-safe" do
4
5
  it "is safe to use one-by-one" do
5
6
  upsert = Upsert.new $conn, :pets
6
7
  assert_creates(Pet, [{:name => 'Jerry', :gender => 'neutered'}]) do
7
8
  ts = []
8
9
  10.times do
9
- ts << Thread.new do
10
- sleep 0.2
11
- upsert.row({:name => 'Jerry'}, :gender => 'male')
12
- upsert.row({:name => 'Jerry'}, :gender => 'neutered')
13
- end
14
- ts.each { |t| t.join }
10
+ ts << Thread.new {
11
+ ActiveRecord::Base.connection_pool.with_connection do |conn|
12
+ sleep 0.2
13
+ upsert.row({name: "Jerry"}, gender: "male")
14
+ upsert.row({name: "Jerry"}, gender: "neutered")
15
+ end
16
+ }
15
17
  end
18
+ ts.each { |t| t.join(3) }
16
19
  end
17
20
  end
18
21
  it "is safe to use batch" do
@@ -20,14 +23,34 @@ describe Upsert do
20
23
  Upsert.batch($conn, :pets) do |upsert|
21
24
  ts = []
22
25
  10.times do
23
- ts << Thread.new do
24
- sleep 0.2
25
- upsert.row({:name => 'Jerry'}, :gender => 'male')
26
- upsert.row({:name => 'Jerry'}, :gender => 'neutered')
27
- end
28
- ts.each { |t| t.join }
26
+ ts << Thread.new {
27
+ ActiveRecord::Base.connection_pool.with_connection do |conn|
28
+ sleep 0.2
29
+ upsert.row({name: "Jerry"}, gender: "male")
30
+ upsert.row({name: "Jerry"}, gender: "neutered")
31
+ end
32
+ }
29
33
  end
34
+ ts.each { |t| t.join(3) }
35
+ end
36
+ end
37
+ end
38
+
39
+ it "is safe to use with the entire block instead the thread" do
40
+ assert_creates(Pet, [{name: "Jerry", gender: "neutered"}]) do
41
+ ts = []
42
+ 10.times do
43
+ ts << Thread.new {
44
+ ActiveRecord::Base.connection_pool.with_connection do |conn|
45
+ sleep 0.1
46
+ Upsert.batch(conn, :pets) do |upsert|
47
+ upsert.row({name: "Jerry"}, gender: "male")
48
+ upsert.row({name: "Jerry"}, gender: "neutered")
49
+ end
50
+ end
51
+ }
30
52
  end
53
+ ts.each { |t| t.join(3) }
31
54
  end
32
55
  end
33
56
  end
@@ -2,10 +2,11 @@ require 'spec_helper'
2
2
  describe Upsert do
3
3
  describe "type safety" do
4
4
  it "does not attempt to typecast values" do
5
+ error_class = RUBY_PLATFORM == 'java' ? org.postgresql.util.PSQLException : PG::InvalidTextRepresentation
5
6
  upsert = Upsert.new $conn, :pets
6
7
  lambda do
7
8
  upsert.row :tag_number => ''
8
- end.should raise_error
9
+ end.should raise_error error_class
9
10
  end
10
11
  end
11
12
  end if ENV['DB'] == 'postgresql'
@@ -0,0 +1,20 @@
1
+ docker network create -d bridge --subnet 172.25.0.0/16 --gateway 172.25.0.1 upsert_test
2
+
3
+ case "$DB" in
4
+ postgresql)
5
+ docker run --tmpfs /var/lib/postgresql/data:rw --rm --name upsert_test_db_server \
6
+ -e POSTGRES_USER=$DB_USER -e POSTGRES_PASSWORD=$DB_PASSWORD -e POSTGRES_DB=$DB_NAME \
7
+ -p 5432:5432 -d \
8
+ $DB_VERSION
9
+ sleep 10
10
+ ;;
11
+ mysql)
12
+ docker run --network upsert_test --ip 172.25.0.2 --tmpfs /var/lib/mysql:rw --rm --name upsert_test_db_server \
13
+ -e MYSQL_ROOT_PASSWORD=root -e MYSQL_USER=$DB_USER -e MYSQL_PASSWORD=$DB_PASSWORD -e MYSQL_DATABASE=$DB_NAME \
14
+ -p 3306:3306 -d \
15
+ $DB_VERSION \
16
+ --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password --default-time-zone=+00:00
17
+ sleep 10
18
+ docker run --network upsert_test --rm $DB_VERSION mysql -h172.25.0.2 -uroot -proot -e "GRANT ALL ON *.* TO '$DB_USER'"
19
+ ;;
20
+ esac
@@ -0,0 +1,12 @@
1
+ Gem::Specification.load(File.expand_path("upsert.gemspec.common", __dir__)).dup.tap do |gem|
2
+ gem.instance_exec do
3
+ self.name = "upsert-java"
4
+ add_development_dependency "jruby-openssl"
5
+ add_development_dependency "jdbc-postgres"
6
+ add_development_dependency "jdbc-mysql"
7
+ add_development_dependency "jdbc-sqlite3"
8
+ add_development_dependency "activerecord-jdbc-adapter"
9
+
10
+ add_development_dependency "pry-nav"
11
+ end
12
+ end
data/upsert.gemspec CHANGED
@@ -1,65 +1,11 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/upsert/version', __FILE__)
3
-
4
- Gem::Specification.new do |gem|
5
- gem.authors = ["Seamus Abshere", "Phil Schalm"]
6
- gem.email = ["seamus@abshere.net"]
7
- t = %{Make it easy to upsert on MySQL, PostgreSQL, and SQLite3. Transparently creates merge functions for MySQL and PostgreSQL; on SQLite3, uses INSERT OR IGNORE.}
8
- gem.description = t
9
- gem.summary = t
10
- gem.homepage = "https://github.com/seamusabshere/upsert"
11
-
12
- gem.files = `git ls-files`.split($\)
13
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
14
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
- gem.name = "upsert"
16
- gem.require_paths = ["lib"]
17
- gem.version = Upsert::VERSION
18
-
19
- # NOTE: no runtime dependencies!
20
-
21
- gem.add_development_dependency 'rspec-core'
22
- gem.add_development_dependency 'rspec-expectations'
23
- gem.add_development_dependency 'rspec-mocks'
24
-
25
- gem.add_development_dependency 'activerecord', '~>3'
26
- gem.add_development_dependency 'active_record_inline_schema'
27
- gem.add_development_dependency 'yard'
28
- gem.add_development_dependency 'pry'
29
- gem.add_development_dependency 'pg-hstore', ">=1.1.3"
30
- gem.add_development_dependency 'sequel'
31
- gem.add_development_dependency 'rake', '~>10.1.1'
32
-
33
- if RUBY_VERSION >= '1.9'
34
- gem.add_development_dependency 'activerecord-import', '0.11.0' # 0.12 and up were failing
35
- else
36
- gem.add_development_dependency 'orderedhash'
37
- end
38
-
39
- if RUBY_PLATFORM == 'java'
40
- gem.add_development_dependency 'jruby-openssl'
41
- gem.add_development_dependency 'jdbc-postgres'
42
- gem.add_development_dependency 'jdbc-mysql'
43
- gem.add_development_dependency 'jdbc-sqlite3'
44
- gem.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
45
- gem.add_development_dependency 'activerecord-jdbcmysql-adapter'
46
- gem.add_development_dependency 'activerecord-jdbcpostgresql-adapter'
47
- else
48
- gem.add_development_dependency 'activerecord-postgresql-adapter'
49
- gem.add_development_dependency 'sqlite3'
50
- gem.add_development_dependency 'mysql2', '~> 0.3.10'
51
- gem.add_development_dependency 'pg', '~> 0.18.0'
52
- # github-flavored markdown
53
- if RUBY_VERSION >= '1.9'
54
- gem.add_development_dependency 'redcarpet'
55
- else
56
- gem.add_development_dependency 'redcarpet', '~> 2.3.0'
57
- end
58
- end
59
-
60
- if RUBY_VERSION <= '1.9.3'
61
- gem.add_development_dependency 'faker', '1.6.3'
62
- else
63
- gem.add_development_dependency 'faker'
1
+ Gem::Specification.load(File.expand_path("upsert.gemspec.common", __dir__)).dup.tap do |gem|
2
+ gem.instance_exec do
3
+ self.name = "upsert"
4
+ add_development_dependency "activerecord-postgresql-adapter"
5
+ add_development_dependency "sqlite3"
6
+ add_development_dependency "mysql2", "~> 0.5"
7
+ add_development_dependency "pg", "~> 1.1"
8
+
9
+ add_development_dependency "pry-byebug"
64
10
  end
65
11
  end
@@ -0,0 +1,106 @@
1
+ require File.expand_path("../lib/upsert/version", __FILE__)
2
+
3
+ Gem::Specification.new do |gem|
4
+ gem.authors = ["Seamus Abshere", "Phil Schalm"]
5
+ gem.email = ["seamus@abshere.net", "pnomolos@gmail.com"]
6
+ t = %{Make it easy to upsert on MySQL, PostgreSQL, and SQLite3. Transparently creates merge functions for MySQL and PostgreSQL; on SQLite3, uses INSERT OR IGNORE.}
7
+ gem.description = t
8
+ gem.summary = t
9
+ gem.homepage = "https://github.com/seamusabshere/upsert"
10
+ gem.license = "MIT"
11
+
12
+ # We no longer use `git ls-files` here because it breaks on some version of jruby...
13
+ # For some slightly related information:
14
+ # - https://github.com/jruby/jruby/issues/4515
15
+ # - https://github.com/jruby/jruby/issues/5249
16
+ #
17
+ gem.files = %w[
18
+ .gitignore
19
+ .ruby-version
20
+ .standard.yml
21
+ .travis.yml
22
+ .yardopts
23
+ CHANGELOG
24
+ Gemfile
25
+ LICENSE
26
+ README.md
27
+ Rakefile
28
+ lib/upsert.rb
29
+ lib/upsert/active_record_upsert.rb
30
+ lib/upsert/binary.rb
31
+ lib/upsert/column_definition.rb
32
+ lib/upsert/column_definition/mysql.rb
33
+ lib/upsert/column_definition/postgresql.rb
34
+ lib/upsert/column_definition/sqlite3.rb
35
+ lib/upsert/connection.rb
36
+ lib/upsert/connection/Java_ComMysqlJdbc_JDBC4Connection.rb
37
+ lib/upsert/connection/Java_OrgPostgresqlJdbc_PgConnection.rb
38
+ lib/upsert/connection/Java_OrgSqlite_Conn.rb
39
+ lib/upsert/connection/Mysql2_Client.rb
40
+ lib/upsert/connection/PG_Connection.rb
41
+ lib/upsert/connection/SQLite3_Database.rb
42
+ lib/upsert/connection/jdbc.rb
43
+ lib/upsert/connection/postgresql.rb
44
+ lib/upsert/connection/sqlite3.rb
45
+ lib/upsert/merge_function.rb
46
+ lib/upsert/merge_function/Java_ComMysqlJdbc_JDBC4Connection.rb
47
+ lib/upsert/merge_function/Java_OrgPostgresqlJdbc_PgConnection.rb
48
+ lib/upsert/merge_function/Java_OrgSqlite_Conn.rb
49
+ lib/upsert/merge_function/Mysql2_Client.rb
50
+ lib/upsert/merge_function/PG_Connection.rb
51
+ lib/upsert/merge_function/SQLite3_Database.rb
52
+ lib/upsert/merge_function/mysql.rb
53
+ lib/upsert/merge_function/postgresql.rb
54
+ lib/upsert/merge_function/sqlite3.rb
55
+ lib/upsert/row.rb
56
+ lib/upsert/version.rb
57
+ spec/active_record_upsert_spec.rb
58
+ spec/binary_spec.rb
59
+ spec/correctness_spec.rb
60
+ spec/database_functions_spec.rb
61
+ spec/database_spec.rb
62
+ spec/hstore_spec.rb
63
+ spec/jruby_spec.rb
64
+ spec/logger_spec.rb
65
+ spec/misc/get_postgres_reserved_words.rb
66
+ spec/misc/mysql_reserved.txt
67
+ spec/misc/pg_reserved.txt
68
+ spec/multibyte_spec.rb
69
+ spec/postgresql_spec.rb
70
+ spec/precision_spec.rb
71
+ spec/reserved_words_spec.rb
72
+ spec/sequel_spec.rb
73
+ spec/spec_helper.rb
74
+ spec/speed_spec.rb
75
+ spec/threaded_spec.rb
76
+ spec/timezones_spec.rb
77
+ spec/type_safety_spec.rb
78
+ travis/install_postgres.sh
79
+ travis/run_docker_db.sh
80
+ travis/tune_mysql.sh
81
+ upsert-java.gemspec
82
+ upsert.gemspec
83
+ upsert.gemspec.common
84
+ ]
85
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
86
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
87
+ gem.name = "upsert"
88
+ gem.require_paths = ["lib"]
89
+ gem.version = Upsert::VERSION
90
+
91
+ # NOTE: no runtime dependencies!
92
+
93
+ gem.add_development_dependency 'rspec-core'
94
+ gem.add_development_dependency 'rspec-expectations'
95
+ gem.add_development_dependency 'rspec-mocks'
96
+
97
+ gem.add_development_dependency 'activerecord', '~> 5'
98
+ gem.add_development_dependency 'yard'
99
+ gem.add_development_dependency 'pry'
100
+ gem.add_development_dependency 'pg-hstore', ">=1.1.3"
101
+ gem.add_development_dependency 'sequel'
102
+ gem.add_development_dependency 'rake', '~> 10'
103
+
104
+ gem.add_development_dependency "activerecord-import", "~> 1"
105
+ gem.add_development_dependency "faker"
106
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upsert
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seamus Abshere
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-20 00:00:00.000000000 Z
12
+ date: 2019-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec-core
@@ -59,28 +59,14 @@ dependencies:
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '3'
62
+ version: '5'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '3'
70
- - !ruby/object:Gem::Dependency
71
- name: active_record_inline_schema
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
81
- - - ">="
82
- - !ruby/object:Gem::Version
83
- version: '0'
69
+ version: '5'
84
70
  - !ruby/object:Gem::Dependency
85
71
  name: yard
86
72
  requirement: !ruby/object:Gem::Requirement
@@ -143,30 +129,30 @@ dependencies:
143
129
  requirements:
144
130
  - - "~>"
145
131
  - !ruby/object:Gem::Version
146
- version: 10.1.1
132
+ version: '10'
147
133
  type: :development
148
134
  prerelease: false
149
135
  version_requirements: !ruby/object:Gem::Requirement
150
136
  requirements:
151
137
  - - "~>"
152
138
  - !ruby/object:Gem::Version
153
- version: 10.1.1
139
+ version: '10'
154
140
  - !ruby/object:Gem::Dependency
155
141
  name: activerecord-import
156
142
  requirement: !ruby/object:Gem::Requirement
157
143
  requirements:
158
- - - '='
144
+ - - "~>"
159
145
  - !ruby/object:Gem::Version
160
- version: 0.11.0
146
+ version: '1'
161
147
  type: :development
162
148
  prerelease: false
163
149
  version_requirements: !ruby/object:Gem::Requirement
164
150
  requirements:
165
- - - '='
151
+ - - "~>"
166
152
  - !ruby/object:Gem::Version
167
- version: 0.11.0
153
+ version: '1'
168
154
  - !ruby/object:Gem::Dependency
169
- name: activerecord-postgresql-adapter
155
+ name: faker
170
156
  requirement: !ruby/object:Gem::Requirement
171
157
  requirements:
172
158
  - - ">="
@@ -180,7 +166,7 @@ dependencies:
180
166
  - !ruby/object:Gem::Version
181
167
  version: '0'
182
168
  - !ruby/object:Gem::Dependency
183
- name: sqlite3
169
+ name: activerecord-postgresql-adapter
184
170
  requirement: !ruby/object:Gem::Requirement
185
171
  requirements:
186
172
  - - ">="
@@ -194,49 +180,49 @@ dependencies:
194
180
  - !ruby/object:Gem::Version
195
181
  version: '0'
196
182
  - !ruby/object:Gem::Dependency
197
- name: mysql2
183
+ name: sqlite3
198
184
  requirement: !ruby/object:Gem::Requirement
199
185
  requirements:
200
- - - "~>"
186
+ - - ">="
201
187
  - !ruby/object:Gem::Version
202
- version: 0.3.10
188
+ version: '0'
203
189
  type: :development
204
190
  prerelease: false
205
191
  version_requirements: !ruby/object:Gem::Requirement
206
192
  requirements:
207
- - - "~>"
193
+ - - ">="
208
194
  - !ruby/object:Gem::Version
209
- version: 0.3.10
195
+ version: '0'
210
196
  - !ruby/object:Gem::Dependency
211
- name: pg
197
+ name: mysql2
212
198
  requirement: !ruby/object:Gem::Requirement
213
199
  requirements:
214
200
  - - "~>"
215
201
  - !ruby/object:Gem::Version
216
- version: 0.18.0
202
+ version: '0.5'
217
203
  type: :development
218
204
  prerelease: false
219
205
  version_requirements: !ruby/object:Gem::Requirement
220
206
  requirements:
221
207
  - - "~>"
222
208
  - !ruby/object:Gem::Version
223
- version: 0.18.0
209
+ version: '0.5'
224
210
  - !ruby/object:Gem::Dependency
225
- name: redcarpet
211
+ name: pg
226
212
  requirement: !ruby/object:Gem::Requirement
227
213
  requirements:
228
- - - ">="
214
+ - - "~>"
229
215
  - !ruby/object:Gem::Version
230
- version: '0'
216
+ version: '1.1'
231
217
  type: :development
232
218
  prerelease: false
233
219
  version_requirements: !ruby/object:Gem::Requirement
234
220
  requirements:
235
- - - ">="
221
+ - - "~>"
236
222
  - !ruby/object:Gem::Version
237
- version: '0'
223
+ version: '1.1'
238
224
  - !ruby/object:Gem::Dependency
239
- name: faker
225
+ name: pry-byebug
240
226
  requirement: !ruby/object:Gem::Requirement
241
227
  requirements:
242
228
  - - ">="
@@ -253,11 +239,14 @@ description: Make it easy to upsert on MySQL, PostgreSQL, and SQLite3. Transpare
253
239
  creates merge functions for MySQL and PostgreSQL; on SQLite3, uses INSERT OR IGNORE.
254
240
  email:
255
241
  - seamus@abshere.net
242
+ - pnomolos@gmail.com
256
243
  executables: []
257
244
  extensions: []
258
245
  extra_rdoc_files: []
259
246
  files:
260
247
  - ".gitignore"
248
+ - ".ruby-version"
249
+ - ".standard.yml"
261
250
  - ".travis.yml"
262
251
  - ".yardopts"
263
252
  - CHANGELOG
@@ -274,7 +263,7 @@ files:
274
263
  - lib/upsert/column_definition/sqlite3.rb
275
264
  - lib/upsert/connection.rb
276
265
  - lib/upsert/connection/Java_ComMysqlJdbc_JDBC4Connection.rb
277
- - lib/upsert/connection/Java_OrgPostgresqlJdbc4_Jdbc4Connection.rb
266
+ - lib/upsert/connection/Java_OrgPostgresqlJdbc_PgConnection.rb
278
267
  - lib/upsert/connection/Java_OrgSqlite_Conn.rb
279
268
  - lib/upsert/connection/Mysql2_Client.rb
280
269
  - lib/upsert/connection/PG_Connection.rb
@@ -284,7 +273,7 @@ files:
284
273
  - lib/upsert/connection/sqlite3.rb
285
274
  - lib/upsert/merge_function.rb
286
275
  - lib/upsert/merge_function/Java_ComMysqlJdbc_JDBC4Connection.rb
287
- - lib/upsert/merge_function/Java_OrgPostgresqlJdbc4_Jdbc4Connection.rb
276
+ - lib/upsert/merge_function/Java_OrgPostgresqlJdbc_PgConnection.rb
288
277
  - lib/upsert/merge_function/Java_OrgSqlite_Conn.rb
289
278
  - lib/upsert/merge_function/Mysql2_Client.rb
290
279
  - lib/upsert/merge_function/PG_Connection.rb
@@ -316,10 +305,14 @@ files:
316
305
  - spec/timezones_spec.rb
317
306
  - spec/type_safety_spec.rb
318
307
  - travis/install_postgres.sh
308
+ - travis/run_docker_db.sh
319
309
  - travis/tune_mysql.sh
310
+ - upsert-java.gemspec
320
311
  - upsert.gemspec
312
+ - upsert.gemspec.common
321
313
  homepage: https://github.com/seamusabshere/upsert
322
- licenses: []
314
+ licenses:
315
+ - MIT
323
316
  metadata: {}
324
317
  post_install_message:
325
318
  rdoc_options: []
@@ -337,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
337
330
  version: '0'
338
331
  requirements: []
339
332
  rubyforge_project:
340
- rubygems_version: 2.6.8
333
+ rubygems_version: 2.7.6.2
341
334
  signing_key:
342
335
  specification_version: 4
343
336
  summary: Make it easy to upsert on MySQL, PostgreSQL, and SQLite3. Transparently creates