better_record 0.9.3 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d98e0b7f54bd71ded48d966277be30e39f485f598f0322ad7479d852a0ddb6c
|
4
|
+
data.tar.gz: d6c108b373661e0513ef8fd3044a587ede56f38dea16cda8d135e132bb27f0ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74489d67ad1f0ffb4454d92dbc789883c74f9dcbeb4b4255c3b0cfd752a9a90624442c853eacad355252476ee5cdd661484a39f978056f01e4dd0ce347daa4a4
|
7
|
+
data.tar.gz: ae840a61e2d9e697ecf2d130ad037fa569f75eee558a4b05013514b6055031b72bfbc82cbb03a0b6825bf0eb2f50058774310161a05985cc61c47eda2b70d6cf
|
@@ -36,11 +36,13 @@ module BetterRecord
|
|
36
36
|
attributes.with_indifferent_access
|
37
37
|
end
|
38
38
|
|
39
|
-
def dup
|
40
|
-
if
|
41
|
-
|
39
|
+
def dup(allow_full_dup = false)
|
40
|
+
if !allow_full_dup && self.class.const_defined?(:NON_DUPABLE_KEYS)
|
41
|
+
super().tap do |r|
|
42
|
+
r.class::NON_DUPABLE_KEYS.each {|k| r[k] = nil }
|
43
|
+
end
|
42
44
|
else
|
43
|
-
super
|
45
|
+
super()
|
44
46
|
end
|
45
47
|
end
|
46
48
|
end
|
@@ -8,6 +8,12 @@ module BetterRecord
|
|
8
8
|
module HasProtectedPassword
|
9
9
|
extend ActiveSupport::Concern
|
10
10
|
|
11
|
+
included do
|
12
|
+
unless self.const_defined?(:NON_DUPABLE_KEYS)
|
13
|
+
NON_DUPABLE_KEYS = []
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
11
17
|
module ClassMethods
|
12
18
|
def has_protected_password(
|
13
19
|
password_field: :password,
|
@@ -17,15 +23,11 @@ module BetterRecord
|
|
17
23
|
**opts
|
18
24
|
)
|
19
25
|
# == Constants ============================================================
|
20
|
-
|
21
|
-
NON_DUPABLE_KEYS = []
|
22
|
-
end
|
23
|
-
|
24
|
-
NON_DUPABLE_KEYS |= %I[
|
26
|
+
self::NON_DUPABLE_KEYS |= %I[
|
25
27
|
#{password_field}
|
26
28
|
new_#{password_field}
|
27
29
|
new_#{password_field}_confirmation
|
28
|
-
]
|
30
|
+
]
|
29
31
|
|
30
32
|
# == Attributes ===========================================================
|
31
33
|
attribute :"new_#{password_field}", :text
|
@@ -21,7 +21,14 @@ module BetterRecord
|
|
21
21
|
expect(record.valid?).to be true
|
22
22
|
expect(record.save).to be true
|
23
23
|
|
24
|
-
dupped =
|
24
|
+
dupped = nil
|
25
|
+
|
26
|
+
begin
|
27
|
+
dupped = record.dup(true)
|
28
|
+
rescue ArgumentError
|
29
|
+
dupped = record.dup
|
30
|
+
end
|
31
|
+
|
25
32
|
expect(dupped.valid?).to be false
|
26
33
|
expect(dupped.errors[column_name]).to include("has already been taken")
|
27
34
|
expect(dupped.save).to be false
|