find_or_create_on_scopes 1.5.0 → 1.5.1
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 +5 -5
- data/README.md +4 -0
- data/find_or_create_on_scopes.gemspec +41 -34
- data/lib/find_or_create_on_scopes.rb +19 -19
- metadata +17 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 5903bce9f66535b6bb3d2c1184fd342c70c369104b24c2748de807bc0e604d26
|
|
4
|
+
data.tar.gz: 5c6dd59fbf555f3c2042f3791e02465cc2e773b5e08cb704b4fc043e14f5a116
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 50979875ff4c6d1498a39b0ff1fa2faad75dc79272ec1b187a77aa169dc7b4a456350f0073e57c5da3d5f514da993efcabbc19639bd667ae70dd6a08e46ecb5a
|
|
7
|
+
data.tar.gz: 26e4919ab5b35f393f15dfb181e16d14126136f1126357325083a30bfcb0f97607c332cc7924ca9e714810b3a15e33e01f0556df0e2247fd54ccbef68cdd96a7
|
data/README.md
CHANGED
|
@@ -2,61 +2,68 @@
|
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
# stub: find_or_create_on_scopes 1.5.1 ruby lib
|
|
6
7
|
|
|
7
8
|
Gem::Specification.new do |s|
|
|
8
9
|
s.name = "find_or_create_on_scopes".freeze
|
|
9
|
-
s.version = "1.5.
|
|
10
|
+
s.version = "1.5.1"
|
|
10
11
|
|
|
11
12
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
13
|
s.require_paths = ["lib".freeze]
|
|
13
14
|
s.authors = ["Tim Morgan".freeze]
|
|
14
|
-
s.date = "2016-05-07"
|
|
15
15
|
s.description = "Adds methods to ActiveRecord for conditionally finding, creating, or updating records.".freeze
|
|
16
16
|
s.email = "git@timothymorgan.info".freeze
|
|
17
17
|
s.extra_rdoc_files = [
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
"LICENSE",
|
|
19
|
+
"README.md"
|
|
20
20
|
]
|
|
21
21
|
s.files = [
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
"LICENSE",
|
|
23
|
+
"README.md",
|
|
24
|
+
"find_or_create_on_scopes.gemspec",
|
|
25
|
+
"lib/find_or_create_on_scopes.rb"
|
|
26
26
|
]
|
|
27
27
|
s.homepage = "http://github.com/riscfuture/find_or_create_on_scopes".freeze
|
|
28
28
|
s.required_ruby_version = Gem::Requirement.new(">= 1.9".freeze)
|
|
29
29
|
s.rubygems_version = "2.6.3".freeze
|
|
30
|
-
s.summary = "find_or_create-type methods on ActiveRecord scopes".freeze
|
|
30
|
+
s.summary = "[DEPRECATED] find_or_create-type methods on ActiveRecord scopes".freeze
|
|
31
|
+
s.post_install_message = <<~MSG
|
|
32
|
+
|
|
33
|
+
⚠️ DEPRECATED: find_or_create_on_scopes is no longer maintained.
|
|
34
|
+
|
|
35
|
+
No longer maintained. ActiveRecord's `find_or_create_by` plus relation scoping covers similar use cases on modern Rails.
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
This is the final release. No further updates are planned.
|
|
38
|
+
|
|
39
|
+
MSG
|
|
40
|
+
|
|
41
|
+
if s.respond_to? :specification_version
|
|
33
42
|
s.specification_version = 4
|
|
34
43
|
|
|
35
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0')
|
|
36
|
-
s.add_runtime_dependency(
|
|
37
|
-
s.add_development_dependency(
|
|
38
|
-
s.add_development_dependency(
|
|
39
|
-
s.add_development_dependency(
|
|
40
|
-
s.add_development_dependency(
|
|
41
|
-
s.add_development_dependency(
|
|
42
|
-
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
|
44
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0')
|
|
45
|
+
s.add_runtime_dependency('activerecord'.freeze, [">= 3.1"])
|
|
46
|
+
s.add_development_dependency('activerecord-jdbcsqlite3-adapter'.freeze, [">= 0"])
|
|
47
|
+
s.add_development_dependency('juwelier'.freeze, [">= 0"])
|
|
48
|
+
s.add_development_dependency('redcarpet'.freeze, [">= 0"])
|
|
49
|
+
s.add_development_dependency('rspec'.freeze, [">= 0"])
|
|
50
|
+
s.add_development_dependency('sqlite3'.freeze, [">= 0"])
|
|
43
51
|
else
|
|
44
|
-
s.add_dependency(
|
|
45
|
-
s.add_dependency(
|
|
46
|
-
s.add_dependency(
|
|
47
|
-
s.add_dependency(
|
|
48
|
-
s.add_dependency(
|
|
49
|
-
s.add_dependency(
|
|
50
|
-
s.add_dependency(
|
|
52
|
+
s.add_dependency('activerecord'.freeze, [">= 3.1"])
|
|
53
|
+
s.add_dependency('activerecord-jdbcsqlite3-adapter'.freeze, [">= 0"])
|
|
54
|
+
s.add_dependency('sqlite3'.freeze, [">= 0"])
|
|
55
|
+
s.add_dependency('sqlite3'.freeze, [">= 0"])
|
|
56
|
+
s.add_dependency('sqlite3'.freeze, [">= 0"])
|
|
57
|
+
s.add_dependency('sqlite3'.freeze, [">= 0"])
|
|
58
|
+
s.add_dependency('yard'.freeze, [">= 0"])
|
|
51
59
|
end
|
|
52
60
|
else
|
|
53
|
-
s.add_dependency(
|
|
54
|
-
s.add_dependency(
|
|
55
|
-
s.add_dependency(
|
|
56
|
-
s.add_dependency(
|
|
57
|
-
s.add_dependency(
|
|
58
|
-
s.add_dependency(
|
|
59
|
-
s.
|
|
61
|
+
s.add_dependency('juwelier'.freeze, [">= 0"])
|
|
62
|
+
s.add_dependency('juwelier'.freeze, [">= 0"])
|
|
63
|
+
s.add_dependency('redcarpet'.freeze, [">= 0"])
|
|
64
|
+
s.add_dependency('rspec'.freeze, [">= 0"])
|
|
65
|
+
s.add_dependency('yard'.freeze, [">= 0"])
|
|
66
|
+
s.add_dependency('yard'.freeze, [">= 0"])
|
|
67
|
+
s.add_development_dependency('yard'.freeze, [">= 0"])
|
|
60
68
|
end
|
|
61
69
|
end
|
|
62
|
-
|
|
@@ -85,14 +85,14 @@ module FindOrCreateOnScopes
|
|
|
85
85
|
end
|
|
86
86
|
end
|
|
87
87
|
return record
|
|
88
|
-
rescue =>
|
|
89
|
-
if (defined?(Mysql2::Error) &&
|
|
90
|
-
(defined?(PG::Error) &&
|
|
91
|
-
(defined?(ActiveRecord::JDBCError) &&
|
|
92
|
-
|
|
93
|
-
if
|
|
94
|
-
|
|
95
|
-
|
|
88
|
+
rescue StandardError => e
|
|
89
|
+
if (defined?(Mysql2::Error) && e.kind_of?(Mysql2::Error)) ||
|
|
90
|
+
(defined?(PG::Error) && e.kind_of?(PG::Error)) ||
|
|
91
|
+
(defined?(ActiveRecord::JDBCError) && e.kind_of?(ActiveRecord::JDBCError)) ||
|
|
92
|
+
e.kind_of?(ActiveRecord::ActiveRecordError)
|
|
93
|
+
if e.to_s.include?('duplicate key value violates unique constraint') ||
|
|
94
|
+
e.to_s.start_with?('Duplicate entry') ||
|
|
95
|
+
e.kind_of?(ActiveRecord::RecordNotUnique)
|
|
96
96
|
retry
|
|
97
97
|
else
|
|
98
98
|
raise
|
|
@@ -111,14 +111,14 @@ module FindOrCreateOnScopes
|
|
|
111
111
|
record.send(meth) if meth && result != ABORT_SAVE
|
|
112
112
|
end
|
|
113
113
|
return record
|
|
114
|
-
rescue =>
|
|
115
|
-
if (defined?(Mysql2::Error) &&
|
|
116
|
-
(defined?(PG::Error) &&
|
|
117
|
-
(defined?(ActiveRecord::JDBCError) &&
|
|
118
|
-
|
|
119
|
-
if
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
rescue StandardError => e
|
|
115
|
+
if (defined?(Mysql2::Error) && e.kind_of?(Mysql2::Error)) ||
|
|
116
|
+
(defined?(PG::Error) && e.kind_of?(PG::Error)) ||
|
|
117
|
+
(defined?(ActiveRecord::JDBCError) && e.kind_of?(ActiveRecord::JDBCError)) ||
|
|
118
|
+
e.kind_of?(ActiveRecord::ActiveRecordError)
|
|
119
|
+
if e.to_s.include?('duplicate key value violates unique constraint') ||
|
|
120
|
+
e.to_s.start_with?('Duplicate entry') ||
|
|
121
|
+
e.kind_of?(ActiveRecord::RecordNotUnique)
|
|
122
122
|
|
|
123
123
|
# sadly there's no way to tell which keys are the duplicate ones from a
|
|
124
124
|
# SQL error, so we just retry 3 times and then give up :/
|
|
@@ -134,12 +134,12 @@ module FindOrCreateOnScopes
|
|
|
134
134
|
retry
|
|
135
135
|
end
|
|
136
136
|
else
|
|
137
|
-
raise
|
|
137
|
+
raise e
|
|
138
138
|
end
|
|
139
139
|
else
|
|
140
|
-
raise
|
|
140
|
+
raise e
|
|
141
141
|
end
|
|
142
142
|
end
|
|
143
143
|
end
|
|
144
144
|
|
|
145
|
-
ActiveRecord::Relation.
|
|
145
|
+
ActiveRecord::Relation.include FindOrCreateOnScopes
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: find_or_create_on_scopes
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.
|
|
4
|
+
version: 1.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tim Morgan
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activerecord
|
|
@@ -25,7 +24,7 @@ dependencies:
|
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: '3.1'
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
27
|
+
name: activerecord-jdbcsqlite3-adapter
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - ">="
|
|
@@ -39,7 +38,7 @@ dependencies:
|
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
39
|
version: '0'
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
41
|
+
name: juwelier
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
44
|
- - ">="
|
|
@@ -67,21 +66,7 @@ dependencies:
|
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
67
|
version: '0'
|
|
69
68
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - ">="
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - ">="
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: activerecord-jdbcsqlite3-adapter
|
|
69
|
+
name: rspec
|
|
85
70
|
requirement: !ruby/object:Gem::Requirement
|
|
86
71
|
requirements:
|
|
87
72
|
- - ">="
|
|
@@ -95,7 +80,7 @@ dependencies:
|
|
|
95
80
|
- !ruby/object:Gem::Version
|
|
96
81
|
version: '0'
|
|
97
82
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
83
|
+
name: sqlite3
|
|
99
84
|
requirement: !ruby/object:Gem::Requirement
|
|
100
85
|
requirements:
|
|
101
86
|
- - ">="
|
|
@@ -124,7 +109,14 @@ files:
|
|
|
124
109
|
homepage: http://github.com/riscfuture/find_or_create_on_scopes
|
|
125
110
|
licenses: []
|
|
126
111
|
metadata: {}
|
|
127
|
-
post_install_message:
|
|
112
|
+
post_install_message: |2+
|
|
113
|
+
|
|
114
|
+
⚠️ DEPRECATED: find_or_create_on_scopes is no longer maintained.
|
|
115
|
+
|
|
116
|
+
No longer maintained. ActiveRecord's `find_or_create_by` plus relation scoping covers similar use cases on modern Rails.
|
|
117
|
+
|
|
118
|
+
This is the final release. No further updates are planned.
|
|
119
|
+
|
|
128
120
|
rdoc_options: []
|
|
129
121
|
require_paths:
|
|
130
122
|
- lib
|
|
@@ -139,9 +131,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
139
131
|
- !ruby/object:Gem::Version
|
|
140
132
|
version: '0'
|
|
141
133
|
requirements: []
|
|
142
|
-
|
|
143
|
-
rubygems_version: 2.6.3
|
|
144
|
-
signing_key:
|
|
134
|
+
rubygems_version: 4.0.11
|
|
145
135
|
specification_version: 4
|
|
146
|
-
summary: find_or_create-type methods on ActiveRecord scopes
|
|
136
|
+
summary: "[DEPRECATED] find_or_create-type methods on ActiveRecord scopes"
|
|
147
137
|
test_files: []
|
|
138
|
+
...
|