upsert 2.2.0 → 2.9.10

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 +16 -0
  6. data/Gemfile +12 -1
  7. data/LICENSE +3 -1
  8. data/README.md +43 -8
  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 +2 -2
  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 +13 -0
  38. data/upsert.gemspec +9 -58
  39. data/upsert.gemspec.common +107 -0
  40. metadata +39 -46
  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,13 @@
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
+ self.platform = "java"
5
+ add_development_dependency "jruby-openssl"
6
+ add_development_dependency "jdbc-postgres"
7
+ add_development_dependency "jdbc-mysql"
8
+ add_development_dependency "jdbc-sqlite3"
9
+ add_development_dependency "activerecord-jdbc-adapter"
10
+
11
+ add_development_dependency "pry-nav"
12
+ end
13
+ end
data/upsert.gemspec CHANGED
@@ -1,60 +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 'faker'
28
- gem.add_development_dependency 'yard'
29
- gem.add_development_dependency 'pry'
30
- gem.add_development_dependency 'pg-hstore', ">=1.1.3"
31
- gem.add_development_dependency 'sequel'
32
- gem.add_development_dependency 'rake', '~>10.1.1'
33
-
34
- if RUBY_VERSION >= '1.9'
35
- gem.add_development_dependency 'activerecord-import', '0.11.0' # 0.12 and up were failing
36
- else
37
- gem.add_development_dependency 'orderedhash'
38
- end
39
-
40
- if RUBY_PLATFORM == 'java'
41
- gem.add_development_dependency 'jruby-openssl'
42
- gem.add_development_dependency 'jdbc-postgres'
43
- gem.add_development_dependency 'jdbc-mysql'
44
- gem.add_development_dependency 'jdbc-sqlite3'
45
- gem.add_development_dependency 'activerecord-jdbcsqlite3-adapter'
46
- gem.add_development_dependency 'activerecord-jdbcmysql-adapter'
47
- gem.add_development_dependency 'activerecord-jdbcpostgresql-adapter'
48
- else
49
- gem.add_development_dependency 'activerecord-postgresql-adapter'
50
- gem.add_development_dependency 'sqlite3'
51
- gem.add_development_dependency 'mysql2', '~> 0.3.10'
52
- gem.add_development_dependency 'pg', '~> 0.18.0'
53
- # github-flavored markdown
54
- if RUBY_VERSION >= '1.9'
55
- gem.add_development_dependency 'redcarpet'
56
- else
57
- gem.add_development_dependency 'redcarpet', '~> 2.3.0'
58
- end
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"
59
10
  end
60
11
  end
@@ -0,0 +1,107 @@
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
+ gem.platform = (Gem::Platform::CURRENT.index("java") ? Gem::Platform::CURRENT : "")
12
+
13
+ # We no longer use `git ls-files` here because it breaks on some version of jruby...
14
+ # For some slightly related information:
15
+ # - https://github.com/jruby/jruby/issues/4515
16
+ # - https://github.com/jruby/jruby/issues/5249
17
+ #
18
+ gem.files = %w[
19
+ .gitignore
20
+ .ruby-version
21
+ .standard.yml
22
+ .travis.yml
23
+ .yardopts
24
+ CHANGELOG
25
+ Gemfile
26
+ LICENSE
27
+ README.md
28
+ Rakefile
29
+ lib/upsert.rb
30
+ lib/upsert/active_record_upsert.rb
31
+ lib/upsert/binary.rb
32
+ lib/upsert/column_definition.rb
33
+ lib/upsert/column_definition/mysql.rb
34
+ lib/upsert/column_definition/postgresql.rb
35
+ lib/upsert/column_definition/sqlite3.rb
36
+ lib/upsert/connection.rb
37
+ lib/upsert/connection/Java_ComMysqlJdbc_JDBC4Connection.rb
38
+ lib/upsert/connection/Java_OrgPostgresqlJdbc_PgConnection.rb
39
+ lib/upsert/connection/Java_OrgSqlite_Conn.rb
40
+ lib/upsert/connection/Mysql2_Client.rb
41
+ lib/upsert/connection/PG_Connection.rb
42
+ lib/upsert/connection/SQLite3_Database.rb
43
+ lib/upsert/connection/jdbc.rb
44
+ lib/upsert/connection/postgresql.rb
45
+ lib/upsert/connection/sqlite3.rb
46
+ lib/upsert/merge_function.rb
47
+ lib/upsert/merge_function/Java_ComMysqlJdbc_JDBC4Connection.rb
48
+ lib/upsert/merge_function/Java_OrgPostgresqlJdbc_PgConnection.rb
49
+ lib/upsert/merge_function/Java_OrgSqlite_Conn.rb
50
+ lib/upsert/merge_function/Mysql2_Client.rb
51
+ lib/upsert/merge_function/PG_Connection.rb
52
+ lib/upsert/merge_function/SQLite3_Database.rb
53
+ lib/upsert/merge_function/mysql.rb
54
+ lib/upsert/merge_function/postgresql.rb
55
+ lib/upsert/merge_function/sqlite3.rb
56
+ lib/upsert/row.rb
57
+ lib/upsert/version.rb
58
+ spec/active_record_upsert_spec.rb
59
+ spec/binary_spec.rb
60
+ spec/correctness_spec.rb
61
+ spec/database_functions_spec.rb
62
+ spec/database_spec.rb
63
+ spec/hstore_spec.rb
64
+ spec/jruby_spec.rb
65
+ spec/logger_spec.rb
66
+ spec/misc/get_postgres_reserved_words.rb
67
+ spec/misc/mysql_reserved.txt
68
+ spec/misc/pg_reserved.txt
69
+ spec/multibyte_spec.rb
70
+ spec/postgresql_spec.rb
71
+ spec/precision_spec.rb
72
+ spec/reserved_words_spec.rb
73
+ spec/sequel_spec.rb
74
+ spec/spec_helper.rb
75
+ spec/speed_spec.rb
76
+ spec/threaded_spec.rb
77
+ spec/timezones_spec.rb
78
+ spec/type_safety_spec.rb
79
+ travis/install_postgres.sh
80
+ travis/run_docker_db.sh
81
+ travis/tune_mysql.sh
82
+ upsert-java.gemspec
83
+ upsert.gemspec
84
+ upsert.gemspec.common
85
+ ]
86
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
87
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
88
+ gem.name = "upsert"
89
+ gem.require_paths = ["lib"]
90
+ gem.version = Upsert::VERSION
91
+
92
+ # NOTE: no runtime dependencies!
93
+
94
+ gem.add_development_dependency 'rspec-core'
95
+ gem.add_development_dependency 'rspec-expectations'
96
+ gem.add_development_dependency 'rspec-mocks'
97
+
98
+ gem.add_development_dependency 'activerecord', '~> 5'
99
+ gem.add_development_dependency 'yard'
100
+ gem.add_development_dependency 'pry'
101
+ gem.add_development_dependency 'pg-hstore', ">=1.1.3"
102
+ gem.add_development_dependency 'sequel'
103
+ gem.add_development_dependency 'rake', '~> 10'
104
+
105
+ gem.add_development_dependency "activerecord-import", "~> 1"
106
+ gem.add_development_dependency "faker"
107
+ 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.0
4
+ version: 2.9.10
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-14 00:00:00.000000000 Z
12
+ date: 2019-12-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec-core
@@ -59,16 +59,16 @@ 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'
69
+ version: '5'
70
70
  - !ruby/object:Gem::Dependency
71
- name: active_record_inline_schema
71
+ name: yard
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ">="
@@ -82,7 +82,7 @@ dependencies:
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
- name: faker
85
+ name: pry
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - ">="
@@ -96,21 +96,21 @@ dependencies:
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
- name: yard
99
+ name: pg-hstore
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: '0'
104
+ version: 1.1.3
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
- version: '0'
111
+ version: 1.1.3
112
112
  - !ruby/object:Gem::Dependency
113
- name: pry
113
+ name: sequel
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ">="
@@ -124,61 +124,47 @@ dependencies:
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
- name: pg-hstore
128
- requirement: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: 1.1.3
133
- type: :development
134
- prerelease: false
135
- version_requirements: !ruby/object:Gem::Requirement
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 1.1.3
140
- - !ruby/object:Gem::Dependency
141
- name: sequel
127
+ name: rake
142
128
  requirement: !ruby/object:Gem::Requirement
143
129
  requirements:
144
- - - ">="
130
+ - - "~>"
145
131
  - !ruby/object:Gem::Version
146
- version: '0'
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: '0'
139
+ version: '10'
154
140
  - !ruby/object:Gem::Dependency
155
- name: rake
141
+ name: activerecord-import
156
142
  requirement: !ruby/object:Gem::Requirement
157
143
  requirements:
158
144
  - - "~>"
159
145
  - !ruby/object:Gem::Version
160
- version: 10.1.1
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: 10.1.1
153
+ version: '1'
168
154
  - !ruby/object:Gem::Dependency
169
- name: activerecord-import
155
+ name: faker
170
156
  requirement: !ruby/object:Gem::Requirement
171
157
  requirements:
172
- - - '='
158
+ - - ">="
173
159
  - !ruby/object:Gem::Version
174
- version: 0.11.0
160
+ version: '0'
175
161
  type: :development
176
162
  prerelease: false
177
163
  version_requirements: !ruby/object:Gem::Requirement
178
164
  requirements:
179
- - - '='
165
+ - - ">="
180
166
  - !ruby/object:Gem::Version
181
- version: 0.11.0
167
+ version: '0'
182
168
  - !ruby/object:Gem::Dependency
183
169
  name: activerecord-postgresql-adapter
184
170
  requirement: !ruby/object:Gem::Requirement
@@ -213,30 +199,30 @@ dependencies:
213
199
  requirements:
214
200
  - - "~>"
215
201
  - !ruby/object:Gem::Version
216
- version: 0.3.10
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.3.10
209
+ version: '0.5'
224
210
  - !ruby/object:Gem::Dependency
225
211
  name: pg
226
212
  requirement: !ruby/object:Gem::Requirement
227
213
  requirements:
228
214
  - - "~>"
229
215
  - !ruby/object:Gem::Version
230
- version: 0.18.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.18.0
223
+ version: '1.1'
238
224
  - !ruby/object:Gem::Dependency
239
- name: redcarpet
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