datory 2.0.1 → 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: 0d75ec20e07857b664bcbf08594dc896470b5a9c71a8c0fb468b32bbda0c0463
4
- data.tar.gz: 47cadbd27a5465f1667c63f0cb0b3187e3ccf7182039a268d5df127df3463f86
3
+ metadata.gz: 0cff9ad23960d36e666479f9a71c8e01c330d7c942f6813a2e8b5bf97d484b34
4
+ data.tar.gz: 485ebb5e77fe1bbf51b33a5a8035e8794ba21ed32f8410f03a79b4db5e5e2aaf
5
5
  SHA512:
6
- metadata.gz: c938b6d290be1739f68e18f93f1d2e461198e3319fd43bee9147b415a38a3f0f1ec50a7dd2361f1f82256102b54d6831abc34dcac23002b0822ad46c0d263694
7
- data.tar.gz: d31f30bf166ed0db85058d344dc197f7f43d8913d20a1c71f4510f4690faff986ce3d9c438193d69905cb2ec4ee3ea5e6279b8bd73a4604da4c9a61b14fe7e81
6
+ metadata.gz: f26df084513984d48832b9794ebedabc37869bafdef3b003226de0747e4a0f5f0fd2408a9a41d4890b9b011604510327e30cb4379039f8d713f0cb32fe3c01e2
7
+ data.tar.gz: 31a93047b3dfc26812a7e918e346c7af5a039fd3e4ccd216a6a37b7e699fe6cf9bcb53188f84e6ed5e11db8c2eaf4545ce9279686dcb84d0a846347041492839
@@ -9,40 +9,40 @@ en:
9
9
  cannot_be_overwritten: "[%{service_class_name}] The following methods cannot be overwritten: %{list_of_methods}"
10
10
  inputs:
11
11
  undefined:
12
- getter: "[%{service_class_name}] Undefined serialization attribute `%{input_name}`"
13
- setter: "[%{service_class_name}] Undefined serialization attribute `%{input_name}`"
12
+ getter: "[%{service_class_name}] Undefined attribute `%{input_name}`"
13
+ setter: "[%{service_class_name}] Undefined attribute `%{input_name}`"
14
14
  validations:
15
15
  inclusion:
16
16
  default_error: "[%{service_class_name}] Wrong value in `%{input_name}`, must be one of `%{input_inclusion}`"
17
17
  must:
18
- default_error: "[%{service_class_name}] Serialization attribute `%{input_name}` must \"%{code}\""
19
- syntax_error: "[%{service_class_name}] Syntax error inside `%{code}` of `%{input_name}` serialization attribute: %{exception_message}"
18
+ default_error: "[%{service_class_name}] Attribute `%{input_name}` must \"%{code}\""
19
+ syntax_error: "[%{service_class_name}] Syntax error inside `%{code}` of `%{input_name}` attribute: %{exception_message}"
20
20
  dynamic_options:
21
21
  consists_of:
22
- required: "[%{service_class_name}] Required element in serialization attribute collection `%{input_name}` is missing"
23
- wrong_type: "[%{service_class_name}] Wrong serialization attribute collection type `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`"
24
- wrong_element_type: "[%{service_class_name}] Wrong element type in serialization attribute collection `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`"
22
+ required: "[%{service_class_name}] Required element in attribute collection `%{input_name}` is missing"
23
+ wrong_type: "[%{service_class_name}] Wrong attribute collection type `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`"
24
+ wrong_element_type: "[%{service_class_name}] Wrong element type in attribute collection `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`"
25
25
  format:
26
- default: "[%{service_class_name}] Serialization attribute `%{input_name}` does not match `%{format_name}` format"
27
- wrong_pattern: "[%{service_class_name}] Serialization attribute `%{input_name}` does not match `%{format_name}` format"
28
- unknown: "[%{service_class_name}] Unknown `%{format_name}` format specified for serialization attribute `%{input_name}`"
26
+ default: "[%{service_class_name}] Attribute `%{input_name}` does not match `%{format_name}` format"
27
+ wrong_pattern: "[%{service_class_name}] Attribute `%{input_name}` does not match `%{format_name}` format"
28
+ unknown: "[%{service_class_name}] Unknown `%{format_name}` format specified for attribute `%{input_name}`"
29
29
  min:
30
- default: "[%{service_class_name}] Serialization attribute `%{input_name}` received value `%{value}`, which is less than `%{option_value}`"
30
+ default: "[%{service_class_name}] Attribute `%{input_name}` received value `%{value}`, which is less than `%{option_value}`"
31
31
  max:
32
- default: "[%{service_class_name}] Serialization attribute `%{input_name}` received value `%{value}`, which is greater than `%{option_value}`"
32
+ default: "[%{service_class_name}] Attribute `%{input_name}` received value `%{value}`, which is greater than `%{option_value}`"
33
33
  required:
34
34
  default_error:
35
- default: "[%{service_class_name}] Required serialization attribute `%{input_name}` is missing"
35
+ default: "[%{service_class_name}] Required attribute `%{input_name}` is missing"
36
36
  type:
37
37
  default_error:
38
- default: "[%{service_class_name}] Wrong type of serialization attribute `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`"
38
+ default: "[%{service_class_name}] Wrong type of attribute `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`"
39
39
  for_hash:
40
- wrong_element_type: "[%{service_class_name}] Wrong type in serialization attribute hash `%{input_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`"
40
+ wrong_element_type: "[%{service_class_name}] Wrong type in attribute hash `%{input_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`"
41
41
  tools:
42
42
  find_unnecessary:
43
43
  error: "[%{service_class_name}] Unexpected attributes: `%{unnecessary_attributes}`"
44
44
  rules:
45
- error: "[%{service_class_name}] Conflict in `%{input_name}` serialization attribute options: `%{conflict_code}`"
45
+ error: "[%{service_class_name}] Conflict in `%{input_name}` attribute options: `%{conflict_code}`"
46
46
  internals:
47
47
  undefined:
48
48
  getter: "[%{service_class_name}] Undefined internal attribute `%{internal_name}`"
@@ -73,29 +73,29 @@ en:
73
73
  wrong_element_type: "[%{service_class_name}] Wrong type in internal attribute hash `%{internal_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`"
74
74
  outputs:
75
75
  undefined:
76
- getter: "[%{service_class_name}] Undefined deserialization attribute `%{output_name}`"
77
- setter: "[%{service_class_name}] Undefined deserialization attribute `%{output_name}`"
76
+ getter: "[%{service_class_name}] Undefined attribute `%{output_name}`"
77
+ setter: "[%{service_class_name}] Undefined attribute `%{output_name}`"
78
78
  validations:
79
79
  inclusion:
80
80
  default_error: "[%{service_class_name}] Wrong value in `%{output_name}`, must be one of `%{output_inclusion}`"
81
81
  must:
82
- default_error: "[%{service_class_name}] Deserialization attribute `%{output_name}` must \"%{code}\""
83
- syntax_error: "[%{service_class_name}] Syntax error inside `%{code}` of `%{output_name}` deserialization attribute: %{exception_message}"
82
+ default_error: "[%{service_class_name}] Attribute `%{output_name}` must \"%{code}\""
83
+ syntax_error: "[%{service_class_name}] Syntax error inside `%{code}` of `%{output_name}` attribute: %{exception_message}"
84
84
  dynamic_options:
85
85
  consists_of:
86
- required: "[%{service_class_name}] Required element in deserialization attribute collection `%{output_name}` is missing"
87
- wrong_type: "[%{service_class_name}] Wrong deserialization attribute collection type `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`"
88
- wrong_element_type: "[%{service_class_name}] Wrong element type in deserialization attribute collection `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`"
86
+ required: "[%{service_class_name}] Required element in attribute collection `%{output_name}` is missing"
87
+ wrong_type: "[%{service_class_name}] Wrong attribute collection type `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`"
88
+ wrong_element_type: "[%{service_class_name}] Wrong element type in attribute collection `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`"
89
89
  format:
90
- default: "[%{service_class_name}] Deserialization attribute `%{output_name}` does not match `%{format_name}` format"
91
- wrong_pattern: "[%{service_class_name}] Deserialization attribute `%{output_name}` does not match `%{format_name}` format"
92
- unknown: "[%{service_class_name}] Unknown `%{format_name}` format specified for deserialization attribute `%{output_name}`"
90
+ default: "[%{service_class_name}] Attribute `%{output_name}` does not match `%{format_name}` format"
91
+ wrong_pattern: "[%{service_class_name}] Attribute `%{output_name}` does not match `%{format_name}` format"
92
+ unknown: "[%{service_class_name}] Unknown `%{format_name}` format specified for attribute `%{output_name}`"
93
93
  min:
94
- default: "[%{service_class_name}] Deserialization attribute `%{output_name}` received value `%{value}`, which is less than `%{option_value}`"
94
+ default: "[%{service_class_name}] Attribute `%{output_name}` received value `%{value}`, which is less than `%{option_value}`"
95
95
  max:
96
- default: "[%{service_class_name}] Deserialization attribute `%{output_name}` received value `%{value}`, which is greater than `%{option_value}`"
96
+ default: "[%{service_class_name}] Attribute `%{output_name}` received value `%{value}`, which is greater than `%{option_value}`"
97
97
  type:
98
98
  default_error:
99
- default: "[%{service_class_name}] Wrong type of deserialization attribute `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`"
99
+ default: "[%{service_class_name}] Wrong type of attribute `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`"
100
100
  for_hash:
101
- wrong_element_type: "[%{service_class_name}] Wrong type in deserialization attribute hash `%{output_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`"
101
+ wrong_element_type: "[%{service_class_name}] Wrong type in attribute hash `%{output_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`"
@@ -9,40 +9,40 @@ ru:
9
9
  cannot_be_overwritten: "[%{service_class_name}] Нельзя перезаписать следующие методы: %{list_of_methods}"
10
10
  inputs:
11
11
  undefined:
12
- getter: "[%{service_class_name}] Неизвестный входящий атрибут сериализации `%{input_name}`"
13
- setter: "[%{service_class_name}] Неизвестный входящий атрибут сериализации `%{input_name}`"
12
+ getter: "[%{service_class_name}] Неизвестный атрибут `%{input_name}`"
13
+ setter: "[%{service_class_name}] Неизвестный атрибут `%{input_name}`"
14
14
  validations:
15
15
  inclusion:
16
16
  default_error: "[%{service_class_name}] Неправильное значение в `%{input_name}`, должно быть одним из `%{input_inclusion}`"
17
17
  must:
18
- default_error: "[%{service_class_name}] Атрибут сериализации `%{input_name}` должен \"%{code}\""
19
- syntax_error: "[%{service_class_name}] Синтаксическая ошибка внутри `%{code}` атрибута сериализации `%{input_name}`: %{exception_message}"
18
+ default_error: "[%{service_class_name}] Атрибут `%{input_name}` должен \"%{code}\""
19
+ syntax_error: "[%{service_class_name}] Синтаксическая ошибка внутри `%{code}` атрибута `%{input_name}`: %{exception_message}"
20
20
  dynamic_options:
21
21
  consists_of:
22
- required: "[%{service_class_name}] Отсутствует обязательный элемент в коллекции атрибута сериализации `%{input_name}`"
23
- wrong_type: "[%{service_class_name}] Неправильный тип коллекции атрибута сериализации `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
24
- wrong_element_type: "[%{service_class_name}] Неправильный тип элемента в коллекции атрибута сериализации `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
22
+ required: "[%{service_class_name}] Отсутствует обязательный элемент в коллекции атрибута `%{input_name}`"
23
+ wrong_type: "[%{service_class_name}] Неправильный тип коллекции атрибута `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
24
+ wrong_element_type: "[%{service_class_name}] Неправильный тип элемента в коллекции атрибута `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
25
25
  format:
26
- default: "[%{service_class_name}] Атрибут сериализации `%{input_name}` не соответствует формату `%{format_name}`"
27
- wrong_pattern: "[%{service_class_name}] Атрибут сериализации `%{input_name}` не соответствует формату `%{format_name}`"
28
- unknown: "[%{service_class_name}] Указан неизвестный формат `%{format_name}` у атрибута сериализации `%{input_name}`"
26
+ default: "[%{service_class_name}] Атрибут `%{input_name}` не соответствует формату `%{format_name}`"
27
+ wrong_pattern: "[%{service_class_name}] Атрибут `%{input_name}` не соответствует формату `%{format_name}`"
28
+ unknown: "[%{service_class_name}] Указан неизвестный формат `%{format_name}` у атрибута `%{input_name}`"
29
29
  min:
30
- default: "[%{service_class_name}] Атрибут сериализации `%{input_name}` получил значение `%{value}`, которое меньше `%{option_value}`"
30
+ default: "[%{service_class_name}] Атрибут `%{input_name}` получил значение `%{value}`, которое меньше `%{option_value}`"
31
31
  max:
32
- default: "[%{service_class_name}] Атрибут сериализации `%{input_name}` получил значение `%{value}`, которое больше `%{option_value}`"
32
+ default: "[%{service_class_name}] Атрибут `%{input_name}` получил значение `%{value}`, которое больше `%{option_value}`"
33
33
  required:
34
34
  default_error:
35
- default: "[%{service_class_name}] Обязательный атрибут сериализации `%{input_name}` отсутствует"
35
+ default: "[%{service_class_name}] Обязательный атрибут `%{input_name}` отсутствует"
36
36
  type:
37
37
  default_error:
38
- default: "[%{service_class_name}] Неправильный тип атрибута сериализации `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
38
+ default: "[%{service_class_name}] Неправильный тип атрибута `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
39
39
  for_hash:
40
- wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута сериализации `%{input_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`"
40
+ wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута `%{input_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`"
41
41
  tools:
42
42
  find_unnecessary:
43
43
  error: "[%{service_class_name}] Неожиданные атрибуты: `%{unnecessary_attributes}`"
44
44
  rules:
45
- error: "[%{service_class_name}] Конфликт в опциях атрибута сериализации `%{input_name}`: `%{conflict_code}`"
45
+ error: "[%{service_class_name}] Конфликт в опциях атрибута `%{input_name}`: `%{conflict_code}`"
46
46
  internals:
47
47
  undefined:
48
48
  getter: "[%{service_class_name}] Неизвестный внутренний атрибут `%{internal_name}`"
@@ -73,29 +73,29 @@ ru:
73
73
  wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше внутреннего атрибута `%{internal_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`"
74
74
  outputs:
75
75
  undefined:
76
- getter: "[%{service_class_name}] Неизвестный атрибут десериализации `%{output_name}`"
77
- setter: "[%{service_class_name}] Неизвестный атрибут десериализации `%{output_name}`"
76
+ getter: "[%{service_class_name}] Неизвестный атрибут `%{output_name}`"
77
+ setter: "[%{service_class_name}] Неизвестный атрибут `%{output_name}`"
78
78
  validations:
79
79
  inclusion:
80
80
  default_error: "[%{service_class_name}] Неправильное значение в `%{output_name}`, должно быть одним из `%{output_inclusion}`"
81
81
  must:
82
- default_error: "[%{service_class_name}] Атрибут десериализации `%{output_name}` должен \"%{code}\""
83
- syntax_error: "[%{service_class_name}] Синтаксическая ошибка внутри `%{code}` атрибута десериализации `%{output_name}`: %{exception_message}"
82
+ default_error: "[%{service_class_name}] Атрибут `%{output_name}` должен \"%{code}\""
83
+ syntax_error: "[%{service_class_name}] Синтаксическая ошибка внутри `%{code}` атрибута `%{output_name}`: %{exception_message}"
84
84
  dynamic_options:
85
85
  consists_of:
86
- required: "[%{service_class_name}] Отсутствует обязательный элемент в коллекции атрибута десериализации `%{output_name}`"
87
- wrong_type: "[%{service_class_name}] Неправильный тип коллекции атрибута десериализации `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
88
- wrong_element_type: "[%{service_class_name}] Неправильный тип элемента в коллекции атрибута десериализации `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
86
+ required: "[%{service_class_name}] Отсутствует обязательный элемент в коллекции атрибута `%{output_name}`"
87
+ wrong_type: "[%{service_class_name}] Неправильный тип коллекции атрибута `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
88
+ wrong_element_type: "[%{service_class_name}] Неправильный тип элемента в коллекции атрибута `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
89
89
  format:
90
- default: "[%{service_class_name}] Атрибут десериализации `%{output_name}` не соответствует формату `%{format_name}`"
91
- wrong_pattern: "[%{service_class_name}] Атрибут десериализации `%{output_name}` не соответствует формату `%{format_name}`"
92
- unknown: "[%{service_class_name}] Указан неизвестный формат `%{format_name}` у атрибута десериализации `%{output_name}`"
90
+ default: "[%{service_class_name}] Атрибут `%{output_name}` не соответствует формату `%{format_name}`"
91
+ wrong_pattern: "[%{service_class_name}] Атрибут `%{output_name}` не соответствует формату `%{format_name}`"
92
+ unknown: "[%{service_class_name}] Указан неизвестный формат `%{format_name}` у атрибута `%{output_name}`"
93
93
  min:
94
- default: "[%{service_class_name}] Атрибут десериализации `%{output_name}` получил значение `%{value}`, которое меньше `%{option_value}`"
94
+ default: "[%{service_class_name}] Атрибут `%{output_name}` получил значение `%{value}`, которое меньше `%{option_value}`"
95
95
  max:
96
- default: "[%{service_class_name}] Атрибут десериализации `%{output_name}` получил значение `%{value}`, которое больше `%{option_value}`"
96
+ default: "[%{service_class_name}] Атрибут `%{output_name}` получил значение `%{value}`, которое больше `%{option_value}`"
97
97
  type:
98
98
  default_error:
99
- default: "[%{service_class_name}] Неправильный тип атрибута десериализации `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
99
+ default: "[%{service_class_name}] Неправильный тип атрибута `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`"
100
100
  for_hash:
101
- wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута десериализации `%{output_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`"
101
+ wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута `%{output_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`"
@@ -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 = 0
7
- PATCH = 1
8
- PRE = nil
6
+ MINOR = 2
7
+ PATCH = 0
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.0.1
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-13 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