authlete_ruby_test 0.0.1.beta → 0.0.2.pre.beta
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 +4 -4
- data/lib/authlete/authorization.rb +9 -9
- data/lib/authlete/authorization_management.rb +6 -6
- data/lib/authlete/ciba.rb +12 -12
- data/lib/authlete/client.rb +10 -9
- data/lib/authlete/client_management.rb +33 -33
- data/lib/authlete/clients.rb +15 -15
- data/lib/authlete/device_flow.rb +9 -9
- data/lib/authlete/dynamic_client_registration.rb +12 -12
- data/lib/authlete/federation.rb +6 -6
- data/lib/authlete/grant_management.rb +3 -3
- data/lib/authlete/hardware_security_keys.rb +12 -12
- data/lib/authlete/introspection.rb +6 -6
- data/lib/authlete/jose_object.rb +3 -3
- data/lib/authlete/jwk_set_endpoint.rb +3 -3
- data/lib/authlete/models/errors/result_error.rb +1 -1
- data/lib/authlete/native_sso.rb +6 -6
- data/lib/authlete/pushed_authorization.rb +3 -3
- data/lib/authlete/revocation.rb +3 -3
- data/lib/authlete/sdk_hooks/hooks.rb +0 -1
- data/lib/authlete/sdkconfiguration.rb +3 -3
- data/lib/authlete/services.rb +18 -18
- data/lib/authlete/token_management.rb +18 -18
- data/lib/authlete/tokens.rb +9 -9
- data/lib/authlete/userinfo.rb +6 -6
- data/lib/authlete/utils/forms.rb +1 -1
- data/lib/authlete/verifiable_credentials.rb +33 -33
- data/lib/crystalline/metadata_fields.rb +9 -16
- data/lib/crystalline/module.rb +4 -0
- data/lib/crystalline/types.rb +23 -18
- data/lib/crystalline/utils.rb +13 -0
- metadata +2 -2
|
@@ -82,7 +82,7 @@ module Authlete
|
|
|
82
82
|
hook_ctx = SDKHooks::HookContext.new(
|
|
83
83
|
config: @sdk_configuration,
|
|
84
84
|
base_url: base_url,
|
|
85
|
-
oauth2_scopes:
|
|
85
|
+
oauth2_scopes: nil,
|
|
86
86
|
operation_id: 'vci_metadata_api',
|
|
87
87
|
security_source: @sdk_configuration.security_source
|
|
88
88
|
)
|
|
@@ -164,7 +164,7 @@ module Authlete
|
|
|
164
164
|
response_data = http_response.env.response_body
|
|
165
165
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
166
166
|
obj.raw_response = http_response
|
|
167
|
-
|
|
167
|
+
raise obj
|
|
168
168
|
else
|
|
169
169
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
170
170
|
end
|
|
@@ -179,7 +179,7 @@ module Authlete
|
|
|
179
179
|
response_data = http_response.env.response_body
|
|
180
180
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
181
181
|
obj.raw_response = http_response
|
|
182
|
-
|
|
182
|
+
raise obj
|
|
183
183
|
else
|
|
184
184
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
185
185
|
end
|
|
@@ -237,7 +237,7 @@ module Authlete
|
|
|
237
237
|
hook_ctx = SDKHooks::HookContext.new(
|
|
238
238
|
config: @sdk_configuration,
|
|
239
239
|
base_url: base_url,
|
|
240
|
-
oauth2_scopes:
|
|
240
|
+
oauth2_scopes: nil,
|
|
241
241
|
operation_id: 'vci_jwtissuer_api',
|
|
242
242
|
security_source: @sdk_configuration.security_source
|
|
243
243
|
)
|
|
@@ -319,7 +319,7 @@ module Authlete
|
|
|
319
319
|
response_data = http_response.env.response_body
|
|
320
320
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
321
321
|
obj.raw_response = http_response
|
|
322
|
-
|
|
322
|
+
raise obj
|
|
323
323
|
else
|
|
324
324
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
325
325
|
end
|
|
@@ -334,7 +334,7 @@ module Authlete
|
|
|
334
334
|
response_data = http_response.env.response_body
|
|
335
335
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
336
336
|
obj.raw_response = http_response
|
|
337
|
-
|
|
337
|
+
raise obj
|
|
338
338
|
else
|
|
339
339
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
340
340
|
end
|
|
@@ -392,7 +392,7 @@ module Authlete
|
|
|
392
392
|
hook_ctx = SDKHooks::HookContext.new(
|
|
393
393
|
config: @sdk_configuration,
|
|
394
394
|
base_url: base_url,
|
|
395
|
-
oauth2_scopes:
|
|
395
|
+
oauth2_scopes: nil,
|
|
396
396
|
operation_id: 'vci_jwks_api',
|
|
397
397
|
security_source: @sdk_configuration.security_source
|
|
398
398
|
)
|
|
@@ -474,7 +474,7 @@ module Authlete
|
|
|
474
474
|
response_data = http_response.env.response_body
|
|
475
475
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
476
476
|
obj.raw_response = http_response
|
|
477
|
-
|
|
477
|
+
raise obj
|
|
478
478
|
else
|
|
479
479
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
480
480
|
end
|
|
@@ -489,7 +489,7 @@ module Authlete
|
|
|
489
489
|
response_data = http_response.env.response_body
|
|
490
490
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
491
491
|
obj.raw_response = http_response
|
|
492
|
-
|
|
492
|
+
raise obj
|
|
493
493
|
else
|
|
494
494
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
495
495
|
end
|
|
@@ -547,7 +547,7 @@ module Authlete
|
|
|
547
547
|
hook_ctx = SDKHooks::HookContext.new(
|
|
548
548
|
config: @sdk_configuration,
|
|
549
549
|
base_url: base_url,
|
|
550
|
-
oauth2_scopes:
|
|
550
|
+
oauth2_scopes: nil,
|
|
551
551
|
operation_id: 'vci_offer_create_api',
|
|
552
552
|
security_source: @sdk_configuration.security_source
|
|
553
553
|
)
|
|
@@ -629,7 +629,7 @@ module Authlete
|
|
|
629
629
|
response_data = http_response.env.response_body
|
|
630
630
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
631
631
|
obj.raw_response = http_response
|
|
632
|
-
|
|
632
|
+
raise obj
|
|
633
633
|
else
|
|
634
634
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
635
635
|
end
|
|
@@ -644,7 +644,7 @@ module Authlete
|
|
|
644
644
|
response_data = http_response.env.response_body
|
|
645
645
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
646
646
|
obj.raw_response = http_response
|
|
647
|
-
|
|
647
|
+
raise obj
|
|
648
648
|
else
|
|
649
649
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
650
650
|
end
|
|
@@ -702,7 +702,7 @@ module Authlete
|
|
|
702
702
|
hook_ctx = SDKHooks::HookContext.new(
|
|
703
703
|
config: @sdk_configuration,
|
|
704
704
|
base_url: base_url,
|
|
705
|
-
oauth2_scopes:
|
|
705
|
+
oauth2_scopes: nil,
|
|
706
706
|
operation_id: 'vci_offer_info_api',
|
|
707
707
|
security_source: @sdk_configuration.security_source
|
|
708
708
|
)
|
|
@@ -784,7 +784,7 @@ module Authlete
|
|
|
784
784
|
response_data = http_response.env.response_body
|
|
785
785
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
786
786
|
obj.raw_response = http_response
|
|
787
|
-
|
|
787
|
+
raise obj
|
|
788
788
|
else
|
|
789
789
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
790
790
|
end
|
|
@@ -799,7 +799,7 @@ module Authlete
|
|
|
799
799
|
response_data = http_response.env.response_body
|
|
800
800
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
801
801
|
obj.raw_response = http_response
|
|
802
|
-
|
|
802
|
+
raise obj
|
|
803
803
|
else
|
|
804
804
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
805
805
|
end
|
|
@@ -857,7 +857,7 @@ module Authlete
|
|
|
857
857
|
hook_ctx = SDKHooks::HookContext.new(
|
|
858
858
|
config: @sdk_configuration,
|
|
859
859
|
base_url: base_url,
|
|
860
|
-
oauth2_scopes:
|
|
860
|
+
oauth2_scopes: nil,
|
|
861
861
|
operation_id: 'vci_single_parse_api',
|
|
862
862
|
security_source: @sdk_configuration.security_source
|
|
863
863
|
)
|
|
@@ -939,7 +939,7 @@ module Authlete
|
|
|
939
939
|
response_data = http_response.env.response_body
|
|
940
940
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
941
941
|
obj.raw_response = http_response
|
|
942
|
-
|
|
942
|
+
raise obj
|
|
943
943
|
else
|
|
944
944
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
945
945
|
end
|
|
@@ -954,7 +954,7 @@ module Authlete
|
|
|
954
954
|
response_data = http_response.env.response_body
|
|
955
955
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
956
956
|
obj.raw_response = http_response
|
|
957
|
-
|
|
957
|
+
raise obj
|
|
958
958
|
else
|
|
959
959
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
960
960
|
end
|
|
@@ -1012,7 +1012,7 @@ module Authlete
|
|
|
1012
1012
|
hook_ctx = SDKHooks::HookContext.new(
|
|
1013
1013
|
config: @sdk_configuration,
|
|
1014
1014
|
base_url: base_url,
|
|
1015
|
-
oauth2_scopes:
|
|
1015
|
+
oauth2_scopes: nil,
|
|
1016
1016
|
operation_id: 'vci_single_issue_api',
|
|
1017
1017
|
security_source: @sdk_configuration.security_source
|
|
1018
1018
|
)
|
|
@@ -1094,7 +1094,7 @@ module Authlete
|
|
|
1094
1094
|
response_data = http_response.env.response_body
|
|
1095
1095
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1096
1096
|
obj.raw_response = http_response
|
|
1097
|
-
|
|
1097
|
+
raise obj
|
|
1098
1098
|
else
|
|
1099
1099
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1100
1100
|
end
|
|
@@ -1109,7 +1109,7 @@ module Authlete
|
|
|
1109
1109
|
response_data = http_response.env.response_body
|
|
1110
1110
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1111
1111
|
obj.raw_response = http_response
|
|
1112
|
-
|
|
1112
|
+
raise obj
|
|
1113
1113
|
else
|
|
1114
1114
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1115
1115
|
end
|
|
@@ -1167,7 +1167,7 @@ module Authlete
|
|
|
1167
1167
|
hook_ctx = SDKHooks::HookContext.new(
|
|
1168
1168
|
config: @sdk_configuration,
|
|
1169
1169
|
base_url: base_url,
|
|
1170
|
-
oauth2_scopes:
|
|
1170
|
+
oauth2_scopes: nil,
|
|
1171
1171
|
operation_id: 'vci_batch_parse_api',
|
|
1172
1172
|
security_source: @sdk_configuration.security_source
|
|
1173
1173
|
)
|
|
@@ -1249,7 +1249,7 @@ module Authlete
|
|
|
1249
1249
|
response_data = http_response.env.response_body
|
|
1250
1250
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1251
1251
|
obj.raw_response = http_response
|
|
1252
|
-
|
|
1252
|
+
raise obj
|
|
1253
1253
|
else
|
|
1254
1254
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1255
1255
|
end
|
|
@@ -1264,7 +1264,7 @@ module Authlete
|
|
|
1264
1264
|
response_data = http_response.env.response_body
|
|
1265
1265
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1266
1266
|
obj.raw_response = http_response
|
|
1267
|
-
|
|
1267
|
+
raise obj
|
|
1268
1268
|
else
|
|
1269
1269
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1270
1270
|
end
|
|
@@ -1322,7 +1322,7 @@ module Authlete
|
|
|
1322
1322
|
hook_ctx = SDKHooks::HookContext.new(
|
|
1323
1323
|
config: @sdk_configuration,
|
|
1324
1324
|
base_url: base_url,
|
|
1325
|
-
oauth2_scopes:
|
|
1325
|
+
oauth2_scopes: nil,
|
|
1326
1326
|
operation_id: 'vci_batch_issue_api',
|
|
1327
1327
|
security_source: @sdk_configuration.security_source
|
|
1328
1328
|
)
|
|
@@ -1404,7 +1404,7 @@ module Authlete
|
|
|
1404
1404
|
response_data = http_response.env.response_body
|
|
1405
1405
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1406
1406
|
obj.raw_response = http_response
|
|
1407
|
-
|
|
1407
|
+
raise obj
|
|
1408
1408
|
else
|
|
1409
1409
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1410
1410
|
end
|
|
@@ -1419,7 +1419,7 @@ module Authlete
|
|
|
1419
1419
|
response_data = http_response.env.response_body
|
|
1420
1420
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1421
1421
|
obj.raw_response = http_response
|
|
1422
|
-
|
|
1422
|
+
raise obj
|
|
1423
1423
|
else
|
|
1424
1424
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1425
1425
|
end
|
|
@@ -1477,7 +1477,7 @@ module Authlete
|
|
|
1477
1477
|
hook_ctx = SDKHooks::HookContext.new(
|
|
1478
1478
|
config: @sdk_configuration,
|
|
1479
1479
|
base_url: base_url,
|
|
1480
|
-
oauth2_scopes:
|
|
1480
|
+
oauth2_scopes: nil,
|
|
1481
1481
|
operation_id: 'vci_deferred_parse_api',
|
|
1482
1482
|
security_source: @sdk_configuration.security_source
|
|
1483
1483
|
)
|
|
@@ -1559,7 +1559,7 @@ module Authlete
|
|
|
1559
1559
|
response_data = http_response.env.response_body
|
|
1560
1560
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1561
1561
|
obj.raw_response = http_response
|
|
1562
|
-
|
|
1562
|
+
raise obj
|
|
1563
1563
|
else
|
|
1564
1564
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1565
1565
|
end
|
|
@@ -1574,7 +1574,7 @@ module Authlete
|
|
|
1574
1574
|
response_data = http_response.env.response_body
|
|
1575
1575
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1576
1576
|
obj.raw_response = http_response
|
|
1577
|
-
|
|
1577
|
+
raise obj
|
|
1578
1578
|
else
|
|
1579
1579
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1580
1580
|
end
|
|
@@ -1632,7 +1632,7 @@ module Authlete
|
|
|
1632
1632
|
hook_ctx = SDKHooks::HookContext.new(
|
|
1633
1633
|
config: @sdk_configuration,
|
|
1634
1634
|
base_url: base_url,
|
|
1635
|
-
oauth2_scopes:
|
|
1635
|
+
oauth2_scopes: nil,
|
|
1636
1636
|
operation_id: 'vci_deferred_issue_api',
|
|
1637
1637
|
security_source: @sdk_configuration.security_source
|
|
1638
1638
|
)
|
|
@@ -1714,7 +1714,7 @@ module Authlete
|
|
|
1714
1714
|
response_data = http_response.env.response_body
|
|
1715
1715
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1716
1716
|
obj.raw_response = http_response
|
|
1717
|
-
|
|
1717
|
+
raise obj
|
|
1718
1718
|
else
|
|
1719
1719
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1720
1720
|
end
|
|
@@ -1729,7 +1729,7 @@ module Authlete
|
|
|
1729
1729
|
response_data = http_response.env.response_body
|
|
1730
1730
|
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ResultError)
|
|
1731
1731
|
obj.raw_response = http_response
|
|
1732
|
-
|
|
1732
|
+
raise obj
|
|
1733
1733
|
else
|
|
1734
1734
|
raise ::Authlete::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
1735
1735
|
end
|
|
@@ -62,20 +62,6 @@ module Crystalline
|
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
-
def from_json(json_obj)
|
|
66
|
-
case json_obj
|
|
67
|
-
when String
|
|
68
|
-
begin
|
|
69
|
-
d = JSON.parse(json_obj)
|
|
70
|
-
rescue JSON::ParserError
|
|
71
|
-
d = json_obj
|
|
72
|
-
end
|
|
73
|
-
else
|
|
74
|
-
d = json_obj
|
|
75
|
-
end
|
|
76
|
-
from_json(d)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
65
|
def from_dict(d)
|
|
80
66
|
to_build = {}
|
|
81
67
|
|
|
@@ -111,9 +97,16 @@ module Crystalline
|
|
|
111
97
|
to_build[key] = unmarshalled_hash
|
|
112
98
|
elsif Crystalline::Utils.union? field_type
|
|
113
99
|
discriminator = field.metadata.fetch(:discriminator, nil)
|
|
100
|
+
discriminator_mapping = field.metadata.fetch(:discriminator_mapping, nil)
|
|
114
101
|
if !discriminator.nil?
|
|
115
|
-
|
|
116
|
-
|
|
102
|
+
discriminator_value = value.fetch(discriminator)
|
|
103
|
+
if !discriminator_mapping.nil?
|
|
104
|
+
# Use explicit mapping from discriminator value to type
|
|
105
|
+
type_to_deserialize = discriminator_mapping[discriminator_value]
|
|
106
|
+
else
|
|
107
|
+
# Fallback: try to match discriminator value against type name
|
|
108
|
+
type_to_deserialize = Crystalline::Utils.get_union_types(field_type).find { |t| t.name.split('::').last == discriminator_value }
|
|
109
|
+
end
|
|
117
110
|
to_build[key] = Crystalline.unmarshal_json(value, type_to_deserialize)
|
|
118
111
|
else
|
|
119
112
|
union_types = Crystalline::Utils.get_union_types(field_type)
|
data/lib/crystalline/module.rb
CHANGED
|
@@ -51,6 +51,10 @@ module Crystalline
|
|
|
51
51
|
data.transform_values { |v| Crystalline.unmarshal_json(v, Crystalline::Utils.hash_of(type)) }
|
|
52
52
|
elsif Crystalline::Utils.nilable?(type) && data == 'null'
|
|
53
53
|
nil
|
|
54
|
+
elsif Crystalline::Utils.boolean? type
|
|
55
|
+
Crystalline::Utils.to_boolean(data)
|
|
56
|
+
elsif type.is_a?(Class) && type < T::Enum
|
|
57
|
+
type.deserialize(data)
|
|
54
58
|
else
|
|
55
59
|
data
|
|
56
60
|
end
|
data/lib/crystalline/types.rb
CHANGED
|
@@ -41,38 +41,43 @@ module Crystalline
|
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
module Enum
|
|
44
|
+
def self.included(base)
|
|
45
|
+
base.extend(ClassMethods)
|
|
46
|
+
end
|
|
47
|
+
|
|
44
48
|
def initialize(val)
|
|
45
|
-
|
|
46
|
-
if instance_methods(false).include?(:initialize)
|
|
49
|
+
if self.class.instance_methods(false).include?(:initialize)
|
|
47
50
|
super(val)
|
|
48
51
|
else
|
|
49
52
|
@val = val
|
|
50
53
|
end
|
|
51
54
|
end
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
module ClassMethods
|
|
57
|
+
def enums(&blk)
|
|
58
|
+
@mapping = {}
|
|
59
|
+
|
|
60
|
+
yield
|
|
61
|
+
constants(false).each do |const_name|
|
|
62
|
+
instance = const_get(const_name, false)
|
|
63
|
+
unless instance.is_a? self
|
|
64
|
+
raise 'Enum constants must be instances of the Enum class (e.g. `Foo = new`)'
|
|
65
|
+
end
|
|
66
|
+
@mapping[instance.serialize] = instance
|
|
67
|
+
end
|
|
68
|
+
end
|
|
55
69
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
raise
|
|
70
|
+
def deserialize(val)
|
|
71
|
+
if @mapping.include? val
|
|
72
|
+
@mapping[val]
|
|
73
|
+
else
|
|
74
|
+
raise "Invalid value for enum: #{val}"
|
|
61
75
|
end
|
|
62
|
-
@mapping[instance.serialize] = instance
|
|
63
76
|
end
|
|
64
77
|
end
|
|
65
78
|
|
|
66
79
|
def serialize
|
|
67
80
|
@val
|
|
68
81
|
end
|
|
69
|
-
|
|
70
|
-
def deserialize(val)
|
|
71
|
-
if @mapping.include? val
|
|
72
|
-
@mapping[val]
|
|
73
|
-
else
|
|
74
|
-
raise "Invalid value for enum: #{val}"
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
82
|
end
|
|
78
83
|
end
|
data/lib/crystalline/utils.rb
CHANGED
|
@@ -52,5 +52,18 @@ module Crystalline
|
|
|
52
52
|
def self.get_union_types(t)
|
|
53
53
|
t.types
|
|
54
54
|
end
|
|
55
|
+
|
|
56
|
+
def self.boolean?(t)
|
|
57
|
+
t.instance_of? Crystalline::Boolean
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def self.to_boolean(value)
|
|
61
|
+
case value
|
|
62
|
+
when true, false
|
|
63
|
+
value
|
|
64
|
+
else
|
|
65
|
+
raise TypeError, "Cannot convert #{value.inspect} to boolean. The value is of type #{value.class}"
|
|
66
|
+
end
|
|
67
|
+
end
|
|
55
68
|
end
|
|
56
69
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: authlete_ruby_test
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2.pre.beta
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Authlete, Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-12-
|
|
11
|
+
date: 2025-12-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|