datory 2.1.0 → 2.2.0.rc1

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: 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