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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36630916daf08959a4fb671fd17df520a7df8a97cf0b2a24aef6c743b5ae65d4
4
- data.tar.gz: 4de1a8f4d2682e146a5b251f4a2a649fc01084bf22075ae496324e51b936b5a0
3
+ metadata.gz: 0cff9ad23960d36e666479f9a71c8e01c330d7c942f6813a2e8b5bf97d484b34
4
+ data.tar.gz: 485ebb5e77fe1bbf51b33a5a8035e8794ba21ed32f8410f03a79b4db5e5e2aaf
5
5
  SHA512:
6
- metadata.gz: 9c1bdf842f1954fa8ae8e70fc1565257a29631354e712ae8b775fcec4e0cae6e98704b82db6b9ff580f4a538a562f48d2cef8d461b3368c4b74ba3a88c393332
7
- data.tar.gz: b19676cb4a11e65fa203c8d793d278e24c3bcb03078156f5bb0effbb04e3a992efb618bfd67dc43d6b1ef2b90b76a764bcd300919cbe237f7eb887f3b4f12a84
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(message: message, meta: { original_exception: e })
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
@@ -3,9 +3,9 @@
3
3
  module Datory
4
4
  module VERSION
5
5
  MAJOR = 2
6
- MINOR = 1
6
+ MINOR = 2
7
7
  PATCH = 0
8
- PRE = nil
8
+ PRE = "rc1"
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join(".")
11
11
  end
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.1.0
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-16 00:00:00.000000000 Z
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.8.0
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.8.0
60
+ version: 2.9.0.rc3
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: terminal-table
63
63
  requirement: !ruby/object:Gem::Requirement