primalize 0.3.9 → 0.3.10

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: 1e2195339a7d20216051be9c268d056de17fb98290fb17c23291f3762d17d08e
4
- data.tar.gz: 06b4b92e05b04f1dc4094eb1d7ff448bdf464e49e8c696d96bb158ca63299034
3
+ metadata.gz: 6ff19c0f79e07c4d94f4e5eaee9ee618d5275b2da34acc0c5bbb25968066ca98
4
+ data.tar.gz: d234c055bfe364356c6b4438ea4f3f247bb10b94a2c0b8803ba60b8e1492d13c
5
5
  SHA512:
6
- metadata.gz: 5eb859b12f0b503fc6d1a4b1ca17911cf5d96b6fd7bfce73a864e1fcfbc1ec58e4f4027b3c1a685ed528388cebd6a3961f97ef19fe5fd00a1fbaac26bec90100
7
- data.tar.gz: a145520259b1d375acd3cda9a1472463e551c0b35ec8537d163886ee0b47d140a0aa1ef09b7c44389f3ad51bd6ace17527af431abbc2bd996154f22167c90edf
6
+ metadata.gz: cdeea26a6076ebc89d58824b1e06afaf44b3732e2bfa0e039035464a6be8b2a8327fd443ee2b9151fb27b71245660cf58a38cfbab73d47db191f7a4091b91871
7
+ data.tar.gz: 0d6a9acbb0689a23430ce074abc7626ee934d1d02937853c02dc44fac3353bf70635426e3703366f7735411e19fb3f23b0b7050c55d1906022b507942e905150
@@ -378,6 +378,24 @@ module Primalize
378
378
  def inspect
379
379
  "optional(#{@types.map(&:inspect).join(', ')})"
380
380
  end
381
+
382
+ def coerce value
383
+ if value.nil?
384
+ super
385
+ else
386
+ type = @types.find { |type| type === value }
387
+
388
+ if type.respond_to? :coerce
389
+ if @coercion
390
+ @coercion.call(value)
391
+ else
392
+ type.coerce(value)
393
+ end
394
+ else
395
+ value
396
+ end
397
+ end
398
+ end
381
399
  end
382
400
 
383
401
  class Any
@@ -1,3 +1,3 @@
1
1
  module Primalize
2
- VERSION = "0.3.9"
2
+ VERSION = "0.3.10"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: primalize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.9
4
+ version: 0.3.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jamie Gaskins
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-26 00:00:00.000000000 Z
11
+ date: 2022-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  - !ruby/object:Gem::Version
108
108
  version: '0'
109
109
  requirements: []
110
- rubygems_version: 3.1.4
110
+ rubygems_version: 3.3.7
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: Type-checked serializers for your Ruby objects