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: 6da83d32a95c5c84452dc1d40245e61e1cc1f9302274903c7002021385c7a661
4
- data.tar.gz: 6a8a19cfda27cedccc39d7cedaa7ce9701dc117060eeff50e19ce82b268a8d5b
3
+ metadata.gz: ffbeccaf729fa60ff4a6bfb305472191010d8c8471231a5f83cd0f456bf16867
4
+ data.tar.gz: 1d7f614a8eae793109e3250dca61fea7b4c6bb53f3af7226931becc6d37a2bea
5
5
  SHA512:
6
- metadata.gz: e3c8b9299eed185bd0abfc9e37cf92dd82d9a3851416f5d64114435b1b7b153b0f7ff9e277ecaec5673e6adec6dd5d9478ec2661489486e58fe4c8d630d399c0
7
- data.tar.gz: 4f90f6a03ebdebda3184b3393d3edba1b1aa452df0b6c86ebbb84a75d1bcf38205b94f70bd0f28a54897d9c9cb2849a5a669bcb1c24a4c923e9e9820ff409f0c
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])
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActivemodelObjectInfo
4
4
  module Version
5
- VERSION = '0.3.0'
5
+ VERSION = '0.3.2'
6
6
  end
7
7
  end
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.0
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-20 00:00:00.000000000 Z
11
+ date: 2023-11-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport