activemodel_object_info 0.3.0 → 0.3.2
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: ffbeccaf729fa60ff4a6bfb305472191010d8c8471231a5f83cd0f456bf16867
|
4
|
+
data.tar.gz: 1d7f614a8eae793109e3250dca61fea7b4c6bb53f3af7226931becc6d37a2bea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3b84704de15eb041492c63b60789eef034a7bc345775f227563eec70705b1bf150782cc55cfbc9a38ff69e1008d659b4156244d7ce3bafe5c37d301736316b7
|
7
|
+
data.tar.gz: dfda3161d5052fb3608af38613b8dda667324f9b83ced02e40fb04e10f88b7e667333101feb6a848ebc6085ccb60e030fc4c6a9d5182b6a5753fcb7236cc30ab
|
@@ -12,9 +12,10 @@ module ActivemodelObjectInfo
|
|
12
12
|
# 当被 include 关键字引入后的处理
|
13
13
|
included do |_|
|
14
14
|
# 定义好默认的删除查询语句
|
15
|
-
deleted_field = 'deleted'
|
16
|
-
deleted_value_valid = 0
|
17
|
-
deleted_value_invalid = 1
|
15
|
+
deleted_field = const_defined?(:DELETED_FIELD) ? DELETED_FIELD : 'deleted'
|
16
|
+
deleted_value_valid = const_defined?(:DELETED_VALID_VALUE) ? DELETED_VALID_VALUE : 0
|
17
|
+
deleted_value_invalid = const_defined?(:DELETED_INVALID_VALUE) ? DELETED_INVALID_VALUE : 1
|
18
|
+
# 如果定义了删除标记字段则默认搜索自动排除该内容
|
18
19
|
default_scope { where(deleted_field.to_sym => deleted_value_valid) }
|
19
20
|
|
20
21
|
# 通用的删除过程
|
@@ -40,6 +41,8 @@ module ActivemodelObjectInfo
|
|
40
41
|
# 定义删除方法,但是不覆盖 ActiveRecord 的同名方法。
|
41
42
|
define_method(:soft_delete) do |**options|
|
42
43
|
opts = options.deep_symbolize_keys
|
44
|
+
# 如果没有定义删除标记字段则不执行
|
45
|
+
return unless respond_to?(deleted_field)
|
43
46
|
delete_block(**opts)
|
44
47
|
# 根据设置决定是否刷更新时间
|
45
48
|
save(touch: opts[:refresh_updated])
|
@@ -48,6 +51,7 @@ module ActivemodelObjectInfo
|
|
48
51
|
# 定义删除方法,区别为最终调用 save! 方法更新数据,所以遇到异常会抛出异常
|
49
52
|
define_method(:soft_delete!) do |**options|
|
50
53
|
opts = options.deep_symbolize_keys
|
54
|
+
return unless respond_to?(deleted_field)
|
51
55
|
delete_block(**opts)
|
52
56
|
# 根据设置决定是否刷更新时间
|
53
57
|
save!(touch: opts[:refresh_updated])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemodel_object_info
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- shiner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|