foobara 0.0.96 → 0.0.98

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: ec597d78b729e892d19a941489dc22004810572d110cbcc2a3c2e1b37a9aea3b
4
- data.tar.gz: cdafbde7f15182b72bd22d265128df7cc89b73ccf7a74cddefb315bfffeacc6f
3
+ metadata.gz: 4403355094ff48ae0013002826f8373c3ebddf3d19838171a5d7879b560e7a22
4
+ data.tar.gz: 3ad2b83c5da5b31d617672e1eb2876f1542422dc675ae9aa17066426827cff49
5
5
  SHA512:
6
- metadata.gz: 1b1f34ddc24d6da4f7b8972c2098dc8fe0416307f4b9ec71c18c95a72f340dcbe1530fd6ecb42327126459ad4a4877df0d8edeec8a5e4aed703a67b57b23f7e7
7
- data.tar.gz: cb69ccfec80f7670d5bfeea9af5fc8475f1bf5aa142182a268efb98d5979ffaf2e7605582cac23e8dedb4dfa86368fa599de725c2ae617f7dac8cad95fe0b36b
6
+ metadata.gz: 5e9cc896794b1ad669e494b841c6f115f31558a4aa2ba8167d182fdacdea63f5533f4a96664f609cef0ed7b0d2ccc174189bd4512ad5ea6f88c149cbe067f5f5
7
+ data.tar.gz: 22f48cb818843388e228a63e7215d3e7f0749757b2a1f57f83015c3ccfc504c139658b0d120e0e38c29525e1a92e6a3b42f5aa798192794d324d4734e220a34e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # [0.0.98] - 2025-04-10
2
+
3
+ - Make atomic serializer dig into first entity instead of staying at the top
4
+ - Add Request#response
5
+
1
6
  # [0.0.96] - 2025-04-08
2
7
 
3
8
  - Do not attempt to remove sensitive types from non-model extension declarations
@@ -11,7 +11,8 @@ module Foobara
11
11
  :serializers,
12
12
  :inputs,
13
13
  :full_command_name,
14
- :action
14
+ :action,
15
+ :response
15
16
 
16
17
  attr_reader :command_class
17
18
 
@@ -243,7 +243,9 @@ module Foobara
243
243
  end
244
244
 
245
245
  def request_to_response(request)
246
- self.class::Response.new(request:)
246
+ response = self.class::Response.new(request:)
247
+ request.response = response
248
+ response
247
249
  end
248
250
 
249
251
  def set_response_status(response)
@@ -3,15 +3,24 @@ module Foobara
3
3
  module Serializers
4
4
  class AtomicSerializer < SuccessSerializer
5
5
  def serialize(object)
6
- if object.is_a?(Model)
6
+ case object
7
+ when DetachedEntity
7
8
  if object.is_a?(Entity) && !object.built? && !object.loaded?
8
9
  object.class.load(object)
9
10
  end
10
11
 
11
- object = object.attributes_with_delegates
12
+ entities_to_primary_keys_serializer.serialize(object.attributes_with_delegates)
13
+ when Model
14
+ serialize(object.attributes_with_delegates)
15
+ when Array
16
+ object.map { |element| serialize(element) }
17
+ when Hash
18
+ object.to_h do |key, value|
19
+ [serialize(key), serialize(value)]
20
+ end
21
+ else
22
+ object
12
23
  end
13
-
14
- entities_to_primary_keys_serializer.serialize(object)
15
24
  end
16
25
 
17
26
  def entities_to_primary_keys_serializer
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.96
4
+ version: 0.0.98
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-04-09 00:00:00.000000000 Z
10
+ date: 2025-04-10 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: bigdecimal