active_record_upsert 0.2.0 → 0.3.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: 7882a124e75ba90b73063ee0972dbe78478a56f0
4
- data.tar.gz: e2de676c14dc4ef582756549ddbcc357da6395e6
3
+ metadata.gz: 17859791d0f8087ee15a23e7ba92b545228e5936
4
+ data.tar.gz: 5ca52ebcbd5c9464425b59bf0e5d6c474e6c9374
5
5
  SHA512:
6
- metadata.gz: 2ea854f8b213733904066171fac163e2524d9584a967510f93bf58797457d3227a72495e9b71789b40ec9d8a8cd5652d6cbda1374ccdd6641835cbb8b04f1bda
7
- data.tar.gz: aceeeee29b6d44f2a91b5e5b91527994efe04ceec42931ea8d95031ab23f00902f71a8e973fe3b6fe220cdf8afd9a720044684f5976bf048638fefabb6dfa69d
6
+ metadata.gz: 688ffdfffb32ff77e568e5bbdc37a4309ba154882a60c25ddea23c6fa67d22bee0b8907b186608d0a6bf3998728bf815a3baf0ce5c78bc8f504606b428a0baef
7
+ data.tar.gz: fdaa6610407f72f51950672a93026162095483daba7ca78cc46ee494ea9b834cfe348a6f2e1531f3ea2911ee0e376e43d63fa3e45d60098d040a30b0236297fe
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - jruby-9.0.5.0
3
4
  - 2.3.0
4
5
  before_install: gem install bundler -v 1.11.2
data/Gemfile CHANGED
@@ -2,3 +2,10 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in active_record_upsert.gemspec
4
4
  gemspec
5
+
6
+ gem 'activerecord-jdbc-adapter', github: 'jensnockert/activerecord-jdbc-adapter', branch: 'activerecord-50'
7
+
8
+ gem 'activerecord-jdbcpostgresql-adapter',
9
+ github: 'jensnockert/activerecord-jdbc-adapter',
10
+ branch: 'activerecord-50',
11
+ platform: :jruby
data/README.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  Real upsert for PostgreSQL 9.5+ and ActiveRecord. Uses ON CONFLICT DO UPDATE.
4
4
 
5
+ ## Main points
6
+
7
+ - Does upsert on a single record using `ON CONFLICT DO UPDATE`
8
+ - Updates timestamps as you would expect in ActiveRecord
9
+ - For partial upserts, loads any existing data from the database
10
+
11
+ ## Prerequisites
12
+
13
+ - PostgreSQL 9.5+
14
+ - ActiveRecord ~> 5
15
+ - For MRI: pg
16
+ - For JRuby: You need to use a fork of `activerecord-jdbcpostgresql-adapter`
17
+
5
18
  ## Installation
6
19
 
7
20
  Add this line to your application's Gemfile:
@@ -10,6 +23,20 @@ Add this line to your application's Gemfile:
10
23
  gem 'active_record_upsert'
11
24
  ```
12
25
 
26
+ If you use JRuby, also add the following:
27
+
28
+ ```ruby
29
+ gem 'activerecord-jdbc-adapter',
30
+ github: 'jensnockert/activerecord-jdbc-adapter',
31
+ branch: 'activerecord-50',
32
+ platform: :jruby
33
+
34
+ gem 'activerecord-jdbcpostgresql-adapter',
35
+ github: 'jensnockert/activerecord-jdbc-adapter',
36
+ branch: 'activerecord-50',
37
+ platform: :jruby
38
+ ```
39
+
13
40
  And then execute:
14
41
 
15
42
  $ bundle
@@ -42,3 +69,9 @@ r.upsert
42
69
 
43
70
  Bug reports and pull requests are welcome on GitHub at https://github.com/jesjos/active_record_upsert.
44
71
 
72
+ ## Contributors
73
+
74
+ - Jesper Josefsson
75
+ - Jens Nockert
76
+ - Olle Jonsson
77
+ - Simon Dahlbacka
@@ -8,8 +8,9 @@ Gem::Specification.new do |spec|
8
8
  spec.version = ActiveRecordUpsert::VERSION
9
9
  spec.authors = ["Jesper Josefsson"]
10
10
  spec.email = ["jesper.josefsson@gmail.com"]
11
+ spec.homepage = "https://github.com/jesjos/active_record_upsert/"
11
12
 
12
- spec.summary = %q{Real PostgreSQL upserts using ON CONFLICT for ActiveRecord}
13
+ spec.summary = %q{Real PostgreSQL 9.5+ upserts using ON CONFLICT for ActiveRecord}
13
14
 
14
15
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
15
16
  spec.bindir = "exe"
@@ -24,7 +25,7 @@ Gem::Specification.new do |spec|
24
25
  spec.add_runtime_dependency 'activerecord-jdbcpostgresql-adapter', '> 0'
25
26
  else
26
27
  spec.platform = Gem::Platform::RUBY
27
- spec.add_runtime_dependency 'pg', '> 0'
28
+ spec.add_runtime_dependency 'pg', '~> 0.18'
28
29
  end
29
30
 
30
31
  spec.add_development_dependency "bundler", "~> 1.11"
@@ -3,7 +3,8 @@ module ActiveRecordUpsert
3
3
  module PersistenceExtensions
4
4
 
5
5
  def upsert
6
- raise ReadOnlyRecord, "#{self.class} is marked as readonly" if readonly?
6
+ raise ::ActiveRecord::ReadOnlyRecord, "#{self.class} is marked as readonly" if readonly?
7
+ raise ::ActiveRecord::RecordSavedError, "Can't upsert a record that has already been saved" if persisted?
7
8
  values = run_callbacks(:save) {
8
9
  run_callbacks(:create) {
9
10
  _upsert_record
@@ -3,3 +3,7 @@ require 'active_record/connection_adapters/postgresql_adapter'
3
3
  Dir.glob(File.join(__dir__, 'active_record/**/*.rb')) do |f|
4
4
  require f
5
5
  end
6
+
7
+ module ActiveRecord
8
+ RecordSavedError = Class.new(ActiveRecordError)
9
+ end
@@ -1,3 +1,3 @@
1
1
  module ActiveRecordUpsert
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record_upsert
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesper Josefsson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-02-20 00:00:00.000000000 Z
11
+ date: 2016-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: pg
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">"
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.18'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">"
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.18'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -158,7 +158,7 @@ files:
158
158
  - lib/active_record_upsert/arel/on_conflict_do_update_manager.rb
159
159
  - lib/active_record_upsert/arel/visitors/to_sql.rb
160
160
  - lib/active_record_upsert/version.rb
161
- homepage:
161
+ homepage: https://github.com/jesjos/active_record_upsert/
162
162
  licenses: []
163
163
  metadata: {}
164
164
  post_install_message:
@@ -180,5 +180,5 @@ rubyforge_project:
180
180
  rubygems_version: 2.5.1
181
181
  signing_key:
182
182
  specification_version: 4
183
- summary: Real PostgreSQL upserts using ON CONFLICT for ActiveRecord
183
+ summary: Real PostgreSQL 9.5+ upserts using ON CONFLICT for ActiveRecord
184
184
  test_files: []