datory 2.1.0 → 2.2.0.rc1
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/datory/context/callable.rb +11 -6
- data/lib/datory/context/workspace.rb +13 -0
- data/lib/datory/version.rb +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cff9ad23960d36e666479f9a71c8e01c330d7c942f6813a2e8b5bf97d484b34
|
4
|
+
data.tar.gz: 485ebb5e77fe1bbf51b33a5a8035e8794ba21ed32f8410f03a79b4db5e5e2aaf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f26df084513984d48832b9794ebedabc37869bafdef3b003226de0747e4a0f5f0fd2408a9a41d4890b9b011604510327e30cb4379039f8d713f0cb32fe3c01e2
|
7
|
+
data.tar.gz: 31a93047b3dfc26812a7e918e346c7af5a039fd3e4ccd216a6a37b7e699fe6cf9bcb53188f84e6ed5e11db8c2eaf4545ce9279686dcb84d0a846347041492839
|
@@ -8,22 +8,25 @@ module Datory
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def serialize(model) # rubocop:disable Metrics/MethodLength
|
11
|
+
context = send(:new, _datory_to_model: false)
|
12
|
+
|
11
13
|
if [Set, Array].include?(model.class)
|
12
14
|
model.map do |model_item|
|
13
15
|
serialize(model_item)
|
14
16
|
end
|
15
17
|
else
|
16
|
-
context = send(:new, _datory_to_model: false)
|
17
18
|
model = Datory::Attributes::Serialization::Model.prepare(model)
|
18
19
|
_serialize(context, model)
|
19
20
|
end
|
20
21
|
rescue Datory::Service::Exceptions::Input,
|
21
22
|
Datory::Service::Exceptions::Internal,
|
22
23
|
Datory::Service::Exceptions::Output => e
|
23
|
-
raise Datory::Exceptions::SerializationError.new(message: e.message)
|
24
|
+
raise Datory::Exceptions::SerializationError.new(context: e.send(:context), message: e.message)
|
24
25
|
end
|
25
26
|
|
26
27
|
def deserialize(data) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
28
|
+
context = send(:new, _datory_to_model: false)
|
29
|
+
|
27
30
|
prepared_data =
|
28
31
|
if data.is_a?(Datory::Base)
|
29
32
|
Datory::Attributes::Serialization::Model.to_hash(data)
|
@@ -38,19 +41,21 @@ module Datory
|
|
38
41
|
deserialize(item)
|
39
42
|
end
|
40
43
|
else
|
41
|
-
context = send(:new, _datory_to_model: false)
|
42
|
-
|
43
44
|
_deserialize(context, **prepared_data)
|
44
45
|
end
|
45
46
|
rescue Datory::Service::Exceptions::Input,
|
46
47
|
Datory::Service::Exceptions::Internal,
|
47
48
|
Datory::Service::Exceptions::Output => e
|
48
|
-
raise Datory::Exceptions::DeserializationError.new(message: e.message)
|
49
|
+
raise Datory::Exceptions::DeserializationError.new(context: e.send(:context), message: e.message)
|
49
50
|
rescue JSON::ParserError => e
|
50
51
|
# TODO: Needs to be moved to I18n
|
51
52
|
message = "Failed to parse data for deserialization: #{e.message}"
|
52
53
|
|
53
|
-
raise Datory::Exceptions::DeserializationError.new(
|
54
|
+
raise Datory::Exceptions::DeserializationError.new(
|
55
|
+
context: context,
|
56
|
+
message: message,
|
57
|
+
meta: { original_exception: e }
|
58
|
+
)
|
54
59
|
end
|
55
60
|
|
56
61
|
def new(_datory_to_model: true, **attributes) # rubocop:disable Lint/UnderscorePrefixedVariableName
|
@@ -3,6 +3,14 @@
|
|
3
3
|
module Datory
|
4
4
|
module Context
|
5
5
|
module Workspace
|
6
|
+
class Actor
|
7
|
+
attr_reader :class_name
|
8
|
+
|
9
|
+
def initialize(context)
|
10
|
+
@class_name = context.class.name
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
6
14
|
private
|
7
15
|
|
8
16
|
def merge!(attributes)
|
@@ -46,6 +54,11 @@ module Datory
|
|
46
54
|
def deserialize(**); end
|
47
55
|
|
48
56
|
def to_model(**); end
|
57
|
+
|
58
|
+
# NOTE: To maintain context compatibility in Servactory exceptions.
|
59
|
+
def servactory_service_info
|
60
|
+
@servactory_service_info ||= self.class::Actor.new(self)
|
61
|
+
end
|
49
62
|
end
|
50
63
|
end
|
51
64
|
end
|
data/lib/datory/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Sokolov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-09-
|
11
|
+
date: 2024-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -48,16 +48,16 @@ dependencies:
|
|
48
48
|
name: servactory
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 2.
|
53
|
+
version: 2.9.0.rc3
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- -
|
58
|
+
- - '='
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: 2.
|
60
|
+
version: 2.9.0.rc3
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: terminal-table
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|