roqua-support 0.1.10 → 0.1.11
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0d83dcfdd5a8666dbfa15efa42dc41bc1286944
|
4
|
+
data.tar.gz: f4c169d8f8b96e4b578e4808c7212b0cb2ee1495
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a11b436cc2a870c201ec997a5e23f6d47148b54d9ce5978fc08b5ef248db4382de8e2d2c9b440085249b3b978123bb6bb21d7db3b41995f93d2a9777c0687069
|
7
|
+
data.tar.gz: 5de99e2f313f6c21e70f938db3d79ad0533dc025006cc8f57d6e8d69adb18a4ffd1917bb2adbf97cd3fb53137ac188df88c8d01126ed81201ed3fa51196bdce4
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -9,12 +9,6 @@ module ActiveRecord
|
|
9
9
|
# containing the validation errors is returned instead.
|
10
10
|
def self.uniq_find_or_create_by(attributes, &block)
|
11
11
|
find_or_create_by(attributes, &block)
|
12
|
-
# When a real race condition occurs, activerecord has no clue about a uniqueness constraint
|
13
|
-
# being violated (this is exactly why validates :attribute, uniqueness: true does not work
|
14
|
-
# for these cases) and a plain Mysql2::Error exception is raised instead of
|
15
|
-
# ActiveRecord::RecordNotUnique
|
16
|
-
rescue Mysql2::Error => exception
|
17
|
-
find_by(attributes) || raise(exception)
|
18
12
|
rescue ActiveRecord::RecordNotUnique => exception
|
19
13
|
find_by(attributes) || raise(exception)
|
20
14
|
end
|
@@ -23,12 +17,6 @@ module ActiveRecord
|
|
23
17
|
# error other than uniqueness.
|
24
18
|
def self.uniq_find_or_create_by!(attributes, &block)
|
25
19
|
find_or_create_by!(attributes, &block)
|
26
|
-
# When a real race condition occurs, activerecord has no clue about a uniqueness constraint
|
27
|
-
# being violated (this is exactly why validates :attribute, uniqueness: true does not work
|
28
|
-
# for these cases) and a plain Mysql2::Error exception is raised instead of
|
29
|
-
# ActiveRecord::RecordNotUnique
|
30
|
-
rescue Mysql2::Error => exception
|
31
|
-
find_by(attributes) || raise(exception)
|
32
20
|
rescue ActiveRecord::RecordNotUnique => exception
|
33
21
|
find_by(attributes) || raise(exception)
|
34
22
|
rescue ActiveRecord::RecordInvalid => exception
|
@@ -13,11 +13,6 @@ module ActiveRecord
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
module Mysql2
|
17
|
-
class Error < StandardError
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
16
|
describe ActiveRecord::Base do
|
22
17
|
let(:attributes) { double('attributes') }
|
23
18
|
let(:block) { -> (*args){} }
|
@@ -41,13 +36,6 @@ describe ActiveRecord::Base do
|
|
41
36
|
expect(ActiveRecord::Base.uniq_find_or_create_by attributes, &block).to eq(record)
|
42
37
|
end
|
43
38
|
|
44
|
-
it 'returns a concurrenlty created record when activerecord is unaware of the uniqueness violation' do
|
45
|
-
allow(ActiveRecord::Base).to receive(:find_by).with(attributes).and_return record
|
46
|
-
allow(ActiveRecord::Base).to receive(:find_or_create_by).with(attributes, &block)
|
47
|
-
.and_raise Mysql2::Error
|
48
|
-
expect(ActiveRecord::Base.uniq_find_or_create_by attributes, &block).to eq(record)
|
49
|
-
end
|
50
|
-
|
51
39
|
it 'raises when a concurrent record is detected by the database but could not be queried for unknown reasons' do
|
52
40
|
allow(ActiveRecord::Base).to receive(:find_by).with(attributes).and_return nil
|
53
41
|
allow(ActiveRecord::Base).to receive(:find_or_create_by).with(attributes, &block)
|
@@ -82,13 +70,6 @@ describe ActiveRecord::Base do
|
|
82
70
|
expect(ActiveRecord::Base.uniq_find_or_create_by! attributes, &block).to eq(record)
|
83
71
|
end
|
84
72
|
|
85
|
-
it 'returns a concurrenlty created record when activerecord is unaware of the uniqueness violation' do
|
86
|
-
allow(ActiveRecord::Base).to receive(:find_by).with(attributes).and_return record
|
87
|
-
allow(ActiveRecord::Base).to receive(:find_or_create_by!).with(attributes, &block)
|
88
|
-
.and_raise Mysql2::Error
|
89
|
-
expect(ActiveRecord::Base.uniq_find_or_create_by! attributes, &block).to eq(record)
|
90
|
-
end
|
91
|
-
|
92
73
|
it 'raises when a concurrent record is detected by the database but could not be queried for unknown reasons' do
|
93
74
|
allow(ActiveRecord::Base).to receive(:find_by).with(attributes).and_return nil
|
94
75
|
allow(ActiveRecord::Base).to receive(:find_or_create_by!).with(attributes, &block)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roqua-support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
version: '0'
|
144
144
|
requirements: []
|
145
145
|
rubyforge_project:
|
146
|
-
rubygems_version: 2.
|
146
|
+
rubygems_version: 2.2.2
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: Helper objects and proxies used by a lot of RoQua applications
|
@@ -160,4 +160,3 @@ test_files:
|
|
160
160
|
- spec/roqua/support/request_logger_spec.rb
|
161
161
|
- spec/roqua/support_spec.rb
|
162
162
|
- spec/spec_helper.rb
|
163
|
-
has_rdoc:
|