datory 1.0.0.rc13 → 1.0.0.rc14

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: ad1cc00d4916767ce4e99d5cd52cde2f9640c4ea536f602e0ade8e5008b61820
4
- data.tar.gz: 012e57a2c905b6de960fb1cd32e1719f1f876c630cc77b37ea7e8ee31427dae8
3
+ metadata.gz: 7c1b9b4a2fbe194c484a57960111c07b2285db29c889406a9e6e29571866b4f0
4
+ data.tar.gz: ecafad6097d0ba8867b2aa5b332c4c7d91e959728cf24393eb9356131c5fe437
5
5
  SHA512:
6
- metadata.gz: 271166881cb4e4e5b673d05ed180b2a09e0523aab2739d9c8127894981b34d5d37486a74aaa029524f13dbb03206dbf924c96f7983f28a985738e41ae96b64f2
7
- data.tar.gz: 0b5a6b6cbbf3db6f505ebf629ff33e2bd57f72d7840295cc35660fcba5f8ee497db538fb699b75a8db2676f6064bc67aa0533c78049dd958cb1a1e0573b6e559
6
+ metadata.gz: 97dfe2487f3fb9859d4cbde74f4473d5c2c993ac91f6804afc2bf7d1441d871b90c5400c0911691231587e258db6047cd880289c7449feafaf93af8a0fd82a00
7
+ data.tar.gz: 9bf01b58328bbe3c6c5822523c34d8383aacf8aa21736a64da8435730f553a8dfa3bf8a147a4e07bb5b86c2b872ab23973f013058802be28f2d443e7678ef185
data/README.md CHANGED
@@ -22,13 +22,25 @@ gem "datory"
22
22
  ```ruby
23
23
  user = User.find(...)
24
24
 
25
- UserDto.serialize(user)
25
+ UserDto.serialize(user) # => { ... }
26
+ ```
27
+
28
+ For serialization, the `form` method is also available.
29
+ This prepares a `Form` object, which has a set of additional methods such as `valid?` and `invalid?`.
30
+
31
+ ```ruby
32
+ form = UserDto.form(user)
33
+
34
+ form.valid? # => true
35
+ form.invalid? # => false
36
+
37
+ form.serialize # => { ... }
26
38
  ```
27
39
 
28
40
  #### Deserialize
29
41
 
30
42
  ```ruby
31
- UserDto.deserialize(json)
43
+ UserDto.deserialize(json) # => Datory::Result
32
44
  ```
33
45
 
34
46
  #### Examples
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Datory
4
+ module Attributes
5
+ class Form
6
+ def initialize(context, model)
7
+ @context = context
8
+ @model = model
9
+ end
10
+
11
+ def serialize
12
+ @serialize ||= @context.serialize(@model)
13
+ end
14
+
15
+ def valid?
16
+ serialize
17
+
18
+ true
19
+ rescue Datory::Exceptions::SerializationError
20
+ false
21
+ end
22
+
23
+ def invalid?
24
+ !valid?
25
+ end
26
+ end
27
+ end
28
+ end
@@ -3,6 +3,10 @@
3
3
  module Datory
4
4
  module Context
5
5
  module Callable
6
+ def form(model)
7
+ Datory::Attributes::Form.new(self, model)
8
+ end
9
+
6
10
  def serialize(model) # rubocop:disable Metrics/MethodLength
7
11
  if [Set, Array].include?(model.class)
8
12
  model.map do |model_item|
@@ -5,7 +5,7 @@ module Datory
5
5
  MAJOR = 1
6
6
  MINOR = 0
7
7
  PATCH = 0
8
- PRE = "rc13"
8
+ PRE = "rc14"
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: 1.0.0.rc13
4
+ version: 1.0.0.rc14
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-04-29 00:00:00.000000000 Z
11
+ date: 2024-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -216,6 +216,7 @@ files:
216
216
  - lib/datory/attributes/deserialization/service_builder.rb
217
217
  - lib/datory/attributes/deserialization/service_factory.rb
218
218
  - lib/datory/attributes/dsl.rb
219
+ - lib/datory/attributes/form.rb
219
220
  - lib/datory/attributes/options/base.rb
220
221
  - lib/datory/attributes/options/from.rb
221
222
  - lib/datory/attributes/options/to.rb