servitium 1.3.2 → 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
- data/servitium.gemspec +8 -9
- metadata +21 -21
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
data/servitium.gemspec
CHANGED
|
@@ -12,7 +12,6 @@ Gem::Specification.new do |spec|
|
|
|
12
12
|
spec.description = "An implementation of the command pattern for Ruby"
|
|
13
13
|
spec.homepage = "https://entropydecelerator.com/components/servitium"
|
|
14
14
|
spec.license = "MIT"
|
|
15
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.6.5")
|
|
16
15
|
|
|
17
16
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
18
17
|
spec.metadata["source_code_uri"] = "https://code.entropydecelerator.com/components/servitium"
|
|
@@ -26,20 +25,20 @@ Gem::Specification.new do |spec|
|
|
|
26
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
27
26
|
spec.require_paths = ["lib"]
|
|
28
27
|
|
|
29
|
-
spec.add_dependency "active_attr", "
|
|
30
|
-
spec.add_dependency "activejob", ">
|
|
31
|
-
spec.add_dependency "activemodel", ">
|
|
32
|
-
spec.add_dependency "activerecord", ">
|
|
33
|
-
spec.add_dependency "activesupport", ">
|
|
34
|
-
spec.add_dependency "actionpack", ">
|
|
28
|
+
spec.add_dependency "active_attr", "> 0.17"
|
|
29
|
+
spec.add_dependency "activejob", "> 7"
|
|
30
|
+
spec.add_dependency "activemodel", "> 7"
|
|
31
|
+
spec.add_dependency "activerecord", "> 7"
|
|
32
|
+
spec.add_dependency "activesupport", "> 7"
|
|
33
|
+
spec.add_dependency "actionpack", "> 7"
|
|
35
34
|
spec.add_dependency "i18n", ">= 0.7"
|
|
36
35
|
|
|
37
36
|
spec.add_development_dependency "auxilium", ">= 3"
|
|
38
|
-
spec.add_development_dependency "minitest", "~> 5
|
|
37
|
+
spec.add_development_dependency "minitest", "~> 5"
|
|
39
38
|
spec.add_development_dependency "minitest-reporters", "~> 1.1"
|
|
40
39
|
spec.add_development_dependency "pry"
|
|
41
40
|
spec.add_development_dependency "pry-rails", "~> 0.3"
|
|
42
|
-
spec.add_development_dependency "rake", "~>
|
|
41
|
+
spec.add_development_dependency "rake", "~> 13"
|
|
43
42
|
spec.add_development_dependency "rubocop", "~> 1"
|
|
44
43
|
spec.add_development_dependency "standard", "~> 1"
|
|
45
44
|
spec.add_development_dependency "sqlite3", "~> 2.8"
|
metadata
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
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
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.
|
|
19
|
+
version: '0.17'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - ">"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0.
|
|
26
|
+
version: '0.17'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: activejob
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '7'
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '7'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: activemodel
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '7'
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ">"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '7'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: activerecord
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '7'
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - ">"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
68
|
+
version: '7'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: activesupport
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
75
|
+
version: '7'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - ">"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
82
|
+
version: '7'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: actionpack
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - ">"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '
|
|
89
|
+
version: '7'
|
|
90
90
|
type: :runtime
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - ">"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '
|
|
96
|
+
version: '7'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: i18n
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -128,14 +128,14 @@ dependencies:
|
|
|
128
128
|
requirements:
|
|
129
129
|
- - "~>"
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '5
|
|
131
|
+
version: '5'
|
|
132
132
|
type: :development
|
|
133
133
|
prerelease: false
|
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - "~>"
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '5
|
|
138
|
+
version: '5'
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
140
|
name: minitest-reporters
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -184,14 +184,14 @@ dependencies:
|
|
|
184
184
|
requirements:
|
|
185
185
|
- - "~>"
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: '
|
|
187
|
+
version: '13'
|
|
188
188
|
type: :development
|
|
189
189
|
prerelease: false
|
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - "~>"
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '
|
|
194
|
+
version: '13'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
196
|
name: rubocop
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -304,7 +304,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
304
304
|
requirements:
|
|
305
305
|
- - ">="
|
|
306
306
|
- !ruby/object:Gem::Version
|
|
307
|
-
version:
|
|
307
|
+
version: '0'
|
|
308
308
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
309
309
|
requirements:
|
|
310
310
|
- - ">="
|