foobara-active-record-type 0.0.7 → 0.0.8

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: 2fb8165e3bfb7ae465f431ff850dd0532cb2fc6aca0e9fa740b9c4e565fb9435
4
- data.tar.gz: 58e8c95928e288579b146a8fb4c211762c592ff5bcbcd724b8c366c7429d922d
3
+ metadata.gz: 173e73fbfbc613a24ac317aacedbed070c7a311f79ce96f1afce275aa839f854
4
+ data.tar.gz: 84a8e463d431d639c16c80b983e4a10d663775f68b005d32fb2c71ad526e6d48
5
5
  SHA512:
6
- metadata.gz: 046b7568fc5cfa44f594dfbbbcbccbc3c440cb2d823d1553a685ddb2594f27131c67fd51822570fc479138150cdb6833efce86ef22bb9ef91c4891a8002365e4
7
- data.tar.gz: bf00cb2ec0b879d7c4fbdad793f012d460f4da31aa134ea7f6c656054269e85f797e5c7931156d3dfa9bd39c8eb1850ba50bd75e83cbbe749fffa93442066f38
6
+ metadata.gz: 44346b0a6091909ec26e95df4cfd9d0d5987f0e34af5bbc0bcc9bc228384b7bb26ad1e56e3cfa55d985185f4adc30c7f892991610913eac9024033c1cd3ea769
7
+ data.tar.gz: f9769cac666e008a142e03f3a464dfd975962f6ba99eca98a412c35e0c12eb271043fc3cdbe28ce0aae8cf68d0c74219fb2f1fd46e7bb15481262685de7d4c84
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## [0.0.8] - 2025-01-25
2
+
3
+ - Add some serializers to handle active record serialization
4
+
1
5
  ## [0.0.7] - 2025-01-22
2
6
 
3
7
  - Make use of ModelAttributeHelpers
@@ -21,6 +21,14 @@ module Foobara
21
21
 
22
22
  ActiveRecord::Base.include ModelAttributeHelpers::Concerns::AttributeHelpers
23
23
  ActiveRecord::Base.include ActiveRecordFoobaraMethods
24
+
25
+ if defined?(Foobara::CommandConnectors::RailsCommandConnector)
26
+ Foobara::CommandConnectors::RailsCommandConnector.default_serializers = [
27
+ Foobara::CommandConnectors::Serializers::ErrorsSerializer,
28
+ Foobara::CommandConnectors::Serializers::ActiveRecordAtomicSerializer,
29
+ Foobara::CommandConnectors::Serializers::JsonSerializer
30
+ ]
31
+ end
24
32
  end
25
33
 
26
34
  def reset_all
@@ -0,0 +1,15 @@
1
+ module Foobara
2
+ module CommandConnectors
3
+ module Serializers
4
+ class ActiveRecordAggregateSerializer < AggregateSerializer
5
+ def serialize(object)
6
+ if object.is_a?(ActiveRecord::Base)
7
+ super(object.attributes)
8
+ else
9
+ super
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ module Foobara
2
+ module CommandConnectors
3
+ module Serializers
4
+ class ActiveRecordAtomicSerializer < AtomicSerializer
5
+ def serialize(object)
6
+ if object.is_a?(ActiveRecord::Base)
7
+ super(object.attributes)
8
+ else
9
+ super
10
+ end
11
+ end
12
+
13
+ def entities_to_primary_keys_serializer
14
+ @entities_to_primary_keys_serializer ||= ActiveRecordEntitiesToPrimaryKeysSerializer.new(declaration_data)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,18 @@
1
+ require "foobara/command_connectors"
2
+
3
+ module Foobara
4
+ module CommandConnectors
5
+ module Serializers
6
+ class ActiveRecordEntitiesToPrimaryKeysSerializer < EntitiesToPrimaryKeysSerializer
7
+ def serialize(object)
8
+ if object.is_a?(ActiveRecord::Base)
9
+ attribute = object.class.primary_key
10
+ object.send(attribute)
11
+ else
12
+ super
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foobara-active-record-type
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Georgi
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-23 00:00:00.000000000 Z
10
+ date: 2025-01-25 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activerecord
@@ -65,6 +65,9 @@ files:
65
65
  - src/extend_active_record_type_declaration/validate_primary_key_is_symbol.rb
66
66
  - src/extend_active_record_type_declaration/validate_primary_key_present.rb
67
67
  - src/extend_active_record_type_declaration/validate_primary_key_references_attribute.rb
68
+ - src/serializers/active_record_aggregate_serializer.rb
69
+ - src/serializers/active_record_atomic_serializer.rb
70
+ - src/serializers/active_record_entities_to_primary_keys_serializer.rb
68
71
  homepage: https://github.com/foobara/active-record-type
69
72
  licenses:
70
73
  - MPL-2.0