sorbet-schema 0.4.1 → 0.4.2

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: bfe8fbdabbb2b4f12be947525a1e6b36136a06ef0a3065f843e49aa990eb423a
4
- data.tar.gz: eab4268bbdfcdd85ec57fe381b01e143d9c1cb21cf04d988d309e4e8f4282f36
3
+ metadata.gz: 3fc3ec89812a6517931d09a61a6f4049b85db1661b92e5cb7353c7c62207afab
4
+ data.tar.gz: 45daa92727807fb2c80bff1fad0b84684c435cde7c1460478741da74fcc0d9c3
5
5
  SHA512:
6
- metadata.gz: c45aa65c93bf22858a0034bd66320a060e8b4fa3e693623fbd948d37dc348e232003e6c5d459b0dfc7a3621d82b74a6a799087061b5b146b4895ae9585edd0d8
7
- data.tar.gz: 540114ebcb2c1f1c5fd3061d25401d77b7c30a36d57481732bf92928e01733342027b63d94b42ba1e188ec2546c42946be49c97c521b1eaf21819cdd6afe6a5d
6
+ metadata.gz: 5ad688ac1f0b61c309d9e016baffcab03b61f6c1c0b17b86721580d9f9ed75b86901f9c31a2b3407356f3abaf0ed64c75294d8a6a60a39d11220320c80253308
7
+ data.tar.gz: d4ec8208184dfe939122d345ec1e1cbb2a8b3f9d840af984e772c6c85d7985fe34f5678ba6b2fa7ef9f85157af90c4e5990f1f2472a025c195255f0d9a5527fe
data/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.4.2](https://github.com/maxveldink/sorbet-schema/compare/v0.4.1...v0.4.2) (2024-03-21)
8
+
9
+
10
+ ### Features
11
+
12
+ * Add Schema#add_serializer to easily update serializer ([f665a2a](https://github.com/maxveldink/sorbet-schema/commit/f665a2ab3afbdaa3757c2d9fa489602edbdf8f8f))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * Field equality factors in inline serializer ([8049ddf](https://github.com/maxveldink/sorbet-schema/commit/8049ddf2e1a2af45d6591c2689f2fde60afb5839))
18
+
7
19
  ## [0.4.1](https://github.com/maxveldink/sorbet-schema/compare/v0.4.0...v0.4.1) (2024-03-21)
8
20
 
9
21
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sorbet-schema (0.4.1)
4
+ sorbet-schema (0.4.2)
5
5
  sorbet-result (~> 1.1)
6
6
  sorbet-runtime (~> 0.5)
7
7
  sorbet-struct-comparable (~> 1.3)
@@ -1,5 +1,5 @@
1
1
  # typed: strict
2
2
 
3
3
  module SorbetSchema
4
- VERSION = "0.4.1"
4
+ VERSION = "0.4.2"
5
5
  end
data/lib/typed/field.rb CHANGED
@@ -37,7 +37,8 @@ module Typed
37
37
  def ==(other)
38
38
  name == other.name &&
39
39
  type == other.type &&
40
- required == other.required
40
+ required == other.required &&
41
+ inline_serializer == other.inline_serializer
41
42
  end
42
43
 
43
44
  sig { returns(T::Boolean) }
data/lib/typed/schema.rb CHANGED
@@ -27,5 +27,19 @@ module Typed
27
27
  def from_json(json)
28
28
  Typed::JSONSerializer.new(schema: self).deserialize(json)
29
29
  end
30
+
31
+ sig { params(field_name: Symbol, serializer: Field::InlineSerializer).returns(Schema) }
32
+ def add_serializer(field_name, serializer)
33
+ self.class.new(
34
+ target: target,
35
+ fields: fields.map do |field|
36
+ if field.name == field_name
37
+ Field.new(name: field.name, type: field.type, required: field.required, inline_serializer: serializer)
38
+ else
39
+ field
40
+ end
41
+ end
42
+ )
43
+ end
30
44
  end
31
45
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Max VelDink