sorbet-runtime 0.5.5767 → 0.5.5772

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: d621194ff7ce32491fc0ea7268abf3a4685d7406dedf775b3c8ecfe3e28d95c7
4
- data.tar.gz: e6e1419051f9159d4f3de20fe2f359aae614d233a54b70cb1a355c94de1e2d60
3
+ metadata.gz: c4330fb542b74c403f4ffe741dbf18462ff723a62aae0f6619b0ba68f809c728
4
+ data.tar.gz: 9c01c8ffa8239295e4efc9dc5076927491d5f0c79f854aa26958f2a6e6c1de87
5
5
  SHA512:
6
- metadata.gz: f20b45d4b46b83b2c7ce97ff5b4c2931e767f8f80f1ce606ab8854ba061dba0d870b5aa4274f085fbe8806da7c41c001e3012f6afc9b07699e5c89eda3958582
7
- data.tar.gz: 85e638786cb74ba22744bc07977ca31e17e2a9a7c95c2d39b2c49cd4d5d6d971aac5a9e3d47f3ae2e297f792c508d03798aff7bc3dc77904bdc6fafad4c95e4f
6
+ metadata.gz: e20a1bba181928eeb770d972419cc1eb384c740679e7d82ee60246863b2ae19d34d4447fe83d93173cb5ff4cf8e81d2a7deb33093f5c3b9c1155e3b08267038a
7
+ data.tar.gz: eca4c25fcaa93949db7aacaca418f39d145814b6d79de2c89ebb4855209ea7ea396b830424d23644d83dbd3f1e4ee25c581c4290efac221ea4f08027ae687c90
@@ -260,7 +260,7 @@ module T::Props
260
260
  # Method calls generated by SerdeTransform
261
261
  private_class_method def self.whitelisted_methods_for_deserialize
262
262
  @whitelisted_methods_for_deserialize ||= {
263
- :lvar => %i{dup map transform_values transform_keys each_with_object nil? []=},
263
+ :lvar => %i{dup map transform_values transform_keys each_with_object nil? []= to_f},
264
264
  :const => %i{deserialize from_hash deep_clone_object soft_assert_handler},
265
265
  }
266
266
  end
@@ -19,7 +19,7 @@ module T::Props
19
19
  end
20
20
 
21
21
  NO_TRANSFORM_TYPES = T.let(
22
- [TrueClass, FalseClass, NilClass, Symbol, String, Numeric].freeze,
22
+ [TrueClass, FalseClass, NilClass, Symbol, String].freeze,
23
23
  T::Array[Module],
24
24
  )
25
25
  private_constant :NO_TRANSFORM_TYPES
@@ -65,6 +65,14 @@ module T::Props
65
65
  raw = type.raw_type
66
66
  if NO_TRANSFORM_TYPES.any? {|cls| raw <= cls}
67
67
  nil
68
+ elsif raw <= Float
69
+ case mode
70
+ when Deserialize then "#{varname}.to_f"
71
+ when Serialize then nil
72
+ else T.absurd(mode)
73
+ end
74
+ elsif raw <= Numeric
75
+ nil
68
76
  elsif raw < T::Props::Serializable
69
77
  handle_serializable_subtype(varname, raw, mode)
70
78
  elsif raw.singleton_class < T::Props::CustomType
@@ -96,6 +104,13 @@ module T::Props
96
104
  if type.types.all? {|t| generate(t, mode, varname).nil?}
97
105
  nil
98
106
  else
107
+ # We currently deep_clone_object if the type was T.any(Integer, Float).
108
+ # When we get better support for union types (maybe this specific
109
+ # union type, because it would be a replacement for
110
+ # Chalk::ODM::DeprecatedNumemric), we could opt to special case
111
+ # this union to have no specific serde transform (the only reason
112
+ # why Float has a special case is because round tripping through
113
+ # JSON might normalize Floats to Integers)
99
114
  "T::Props::Utils.deep_clone_object(#{varname})"
100
115
  end
101
116
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sorbet-runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5767
4
+ version: 0.5.5772
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stripe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-18 00:00:00.000000000 Z
11
+ date: 2020-06-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest