activemodel_object_info 0.2.0 → 0.3.1

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: 06251d26eb8e76bce7322a0828b75bddf9130227aca347632ffccd1000c8de38
4
- data.tar.gz: 6204ace6d5d12156f491905df5b85a21a642fc2419b7029fb27071665ff5672a
3
+ metadata.gz: bbb6a128f372e595dd59cd9a82a97555a7b9604d67e37bfb7fb3bb4f3d423b66
4
+ data.tar.gz: 73eb6de2ece21e4ff5ac9aaa3d0eedfd7e13ce5acd07cc5aeb0916716f7f8ec6
5
5
  SHA512:
6
- metadata.gz: 1e8032eeefb546d83ec9ec07b3c1812dd59fa325d6b80c9e96cd8cd52aaaa955f2f700b01ee74895db3bfab7d514d428d429bd139ba4051d1c379824f0156a55
7
- data.tar.gz: 67e9ec9cd9fa34310b8b5fd525dbf2f2e7bd7f567351f4e87d78d0dbe9f81a55a316d283658ca95d10c3e904d6743fb406c684bafebc0dfd94c47d375ce38816
6
+ metadata.gz: bf30d44c6941877a3b3cdfeb23abfbff40350411073a4d88a3e7787742bac6666c10c01f57723ed378a623b2ea7f9659520ce1d43c387679aac2fee28ea7d90f
7
+ data.tar.gz: f1b45c95d45d360cf4881e890d7c9e92b1b6052d63d4ba577cecef74f8aa9e6b4ca158b239462303f577193979487931287d0aaf55753a1dc3ce52bc57101884
@@ -15,7 +15,8 @@ module ActivemodelObjectInfo
15
15
  deleted_field = 'deleted'
16
16
  deleted_value_valid = 0
17
17
  deleted_value_invalid = 1
18
- default_scope { where(deleted_field.to_sym => deleted_value_valid) }
18
+ # 如果定义了删除标记字段则默认搜索自动排除该内容
19
+ default_scope { where(deleted_field.to_sym => deleted_value_valid) } if defined_method?(deleted_field)
19
20
 
20
21
  # 通用的删除过程
21
22
  define_method(:delete_block) do |**options|
@@ -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])
@@ -3,6 +3,7 @@
3
3
  module ActivemodelObjectInfo
4
4
  #
5
5
  # 重新扩展一些方法,用来方便在创建迁移文件的时候进行一些通用类的设定。
6
+ # 从 @version 0.3.0 开始支持了自动创建的时间戳字段增加索引
6
7
  #
7
8
  # @author shiner527 <shiner527@hotmail.com>
8
9
  #
@@ -54,7 +55,7 @@ module ActivemodelObjectInfo
54
55
  # 如果要生成操作时间戳信息
55
56
  if with_timestamp
56
57
  timestamp_column_name = timestamp_prefix.to_s + field.to_s + timestamp_suffix.to_s
57
- column(timestamp_column_name, :datetime, comment: '操作时间戳') if timestamp_column_name.present?
58
+ column(timestamp_column_name, :datetime, index: true, comment: '操作时间戳') if timestamp_column_name.present?
58
59
  end
59
60
  end
60
61
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActivemodelObjectInfo
4
4
  module Version
5
- VERSION = '0.2.0'
5
+ VERSION = '0.3.1'
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.2.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - shiner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-30 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
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  requirements: []
188
- rubygems_version: 3.0.9
188
+ rubygems_version: 3.4.10
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: Build a hash based on active record attributes.