servitium 1.3.3 → 1.3.4
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 +4 -4
- data/lib/servitium/context_model.rb +23 -0
- data/lib/servitium/version.rb +1 -1
- data/lib/servitium.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b82546d496da23556c3c50e86fdf51e62667ef8d20f53b69e2c44ef82bb5a41e
|
|
4
|
+
data.tar.gz: 7869d137dadece63bd421e1b225c768aba7670a765101c71ac55923a0a55707b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e8cf2868255f4e1537a61a653fe443b55e4c2ca5dc3cb311424a89b99435e68d8c60ccbb4fd15e940215368f7e1d409d4a6b9826f49e81581f969564ae0d1007
|
|
7
|
+
data.tar.gz: b0bd04884a459a3f231a812f1932734dfa69f27c7e6c1f84890bba9afb281d6e63a797b3bcc9bafa2cada9ffa0112794be32bc07bd5cd54abad542cefe491710
|
|
@@ -56,8 +56,31 @@ module Servitium
|
|
|
56
56
|
def _destroy
|
|
57
57
|
end
|
|
58
58
|
|
|
59
|
+
# Rails 8 ActiveModel::Dirty expects attribute values to respond to +changed_in_place?+
|
|
60
|
+
# (e.g. when using NumericalityValidator). ActiveAttr stores raw values, so we ensure
|
|
61
|
+
# every value in @attributes responds to it. write_attribute covers normal writes;
|
|
62
|
+
# apply_defaults covers defaults (ActiveAttr writes those directly to @attributes).
|
|
63
|
+
def write_attribute(name, value)
|
|
64
|
+
ensure_changed_in_place!(value)
|
|
65
|
+
super
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def apply_defaults(defaults = attribute_defaults)
|
|
69
|
+
super
|
|
70
|
+
(@attributes || {}).each_value { |value| ensure_changed_in_place!(value) }
|
|
71
|
+
end
|
|
72
|
+
|
|
59
73
|
private
|
|
60
74
|
|
|
75
|
+
def ensure_changed_in_place!(value)
|
|
76
|
+
return if value.nil? || value.respond_to?(:changed_in_place?)
|
|
77
|
+
|
|
78
|
+
value.define_singleton_method(:changed_in_place?) { false }
|
|
79
|
+
rescue TypeError
|
|
80
|
+
# Integer, Float, Symbol, true, false, nil etc. can't get singleton methods;
|
|
81
|
+
# they use the class-level method from rails8_value_dirty_compat.
|
|
82
|
+
end
|
|
83
|
+
|
|
61
84
|
def validate_subcontexts
|
|
62
85
|
@subcontexts.each do |key, value|
|
|
63
86
|
errors.add(key, "invalid") unless [*value].find_all { |v| v.respond_to?(:invalid?) && v.invalid? }.empty?
|
data/lib/servitium/version.rb
CHANGED
data/lib/servitium.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: servitium
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tom de Grunt
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-31 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: active_attr
|