diff --git a/.rspec_status b/.rspec_status index 311674a..db37406 100644 --- a/.rspec_status +++ b/.rspec_status @@ -1,149 +1,150 @@ example_id | status | run_time | ------------------------------------------------------------- | ------ | --------------- | -./spec/castkit/attribute_spec.rb[1:1:1] | passed | 0.00062 seconds | +./spec/castkit/attribute_spec.rb[1:1:1] | passed | 0.00064 seconds | ./spec/castkit/attribute_spec.rb[1:1:2] | passed | 0.00005 seconds | ./spec/castkit/attribute_spec.rb[1:1:3] | passed | 0.00004 seconds | ./spec/castkit/attribute_spec.rb[1:1:4] | passed | 0.00004 seconds | -./spec/castkit/attribute_spec.rb[1:2:1] | passed | 0.00133 seconds | +./spec/castkit/attribute_spec.rb[1:2:1] | passed | 0.00106 seconds | ./spec/castkit/attribute_spec.rb[1:3:1] | passed | 0.00005 seconds | -./spec/castkit/attribute_spec.rb[1:3:2] | passed | 0.00005 seconds | +./spec/castkit/attribute_spec.rb[1:3:2] | passed | 0.00004 seconds | ./spec/castkit/attribute_spec.rb[1:3:3] | passed | 0.00003 seconds | -./spec/castkit/attribute_spec.rb[1:3:4] | passed | 0.00074 seconds | +./spec/castkit/attribute_spec.rb[1:3:4] | passed | 0.0007 seconds | ./spec/castkit/contract/validator_spec.rb[1:1:1:1] | passed | 0.00009 seconds | -./spec/castkit/contract/validator_spec.rb[1:1:2:1] | passed | 0.0006 seconds | -./spec/castkit/contract/validator_spec.rb[1:1:3:1] | passed | 0.00011 seconds | -./spec/castkit/contract/validator_spec.rb[1:1:4:1] | passed | 0.00013 seconds | +./spec/castkit/contract/validator_spec.rb[1:1:2:1] | passed | 0.00052 seconds | +./spec/castkit/contract/validator_spec.rb[1:1:3:1] | passed | 0.00008 seconds | +./spec/castkit/contract/validator_spec.rb[1:1:4:1] | passed | 0.00011 seconds | ./spec/castkit/contract/validator_spec.rb[1:1:5:1] | passed | 0.00009 seconds | -./spec/castkit/contract_spec.rb[1:1:1] | passed | 0.00046 seconds | -./spec/castkit/contract_spec.rb[1:1:2] | passed | 0.00099 seconds | +./spec/castkit/contract_spec.rb[1:1:1] | passed | 0.00045 seconds | +./spec/castkit/contract_spec.rb[1:1:2] | passed | 0.00091 seconds | ./spec/castkit/contract_spec.rb[1:1:3] | passed | 0.0001 seconds | -./spec/castkit/contract_spec.rb[1:1:4] | passed | 0.00007 seconds | -./spec/castkit/contract_spec.rb[1:1:5] | passed | 0.00006 seconds | +./spec/castkit/contract_spec.rb[1:1:4] | passed | 0.00006 seconds | +./spec/castkit/contract_spec.rb[1:1:5] | passed | 0.00007 seconds | ./spec/castkit/contract_spec.rb[1:1:6] | passed | 0.00006 seconds | ./spec/castkit/core/attribute_types_spec.rb[1:1:1] | passed | 0.00004 seconds | -./spec/castkit/core/attribute_types_spec.rb[1:1:2] | passed | 0.00003 seconds | -./spec/castkit/core/attribute_types_spec.rb[1:1:3] | passed | 0.00004 seconds | +./spec/castkit/core/attribute_types_spec.rb[1:1:2] | passed | 0.00004 seconds | +./spec/castkit/core/attribute_types_spec.rb[1:1:3] | passed | 0.00003 seconds | ./spec/castkit/core/attribute_types_spec.rb[1:1:4] | passed | 0.00003 seconds | ./spec/castkit/core/attribute_types_spec.rb[1:1:5] | passed | 0.00004 seconds | -./spec/castkit/core/attribute_types_spec.rb[1:1:6] | passed | 0.00004 seconds | +./spec/castkit/core/attribute_types_spec.rb[1:1:6] | passed | 0.00003 seconds | ./spec/castkit/core/attribute_types_spec.rb[1:1:7] | passed | 0.00003 seconds | -./spec/castkit/core/attribute_types_spec.rb[1:1:8] | passed | 0.00003 seconds | +./spec/castkit/core/attribute_types_spec.rb[1:1:8] | passed | 0.00004 seconds | ./spec/castkit/core/attribute_types_spec.rb[1:1:9] | passed | 0.00004 seconds | ./spec/castkit/core/attribute_types_spec.rb[1:1:10] | passed | 0.00004 seconds | ./spec/castkit/core/attribute_types_spec.rb[1:1:11] | passed | 0.00004 seconds | -./spec/castkit/core/attribute_types_spec.rb[1:1:12] | passed | 0.00004 seconds | -./spec/castkit/core/attributes_spec.rb[1:1:1] | passed | 0.00006 seconds | -./spec/castkit/core/attributes_spec.rb[1:1:2] | passed | 0.00005 seconds | +./spec/castkit/core/attribute_types_spec.rb[1:1:12] | passed | 0.00003 seconds | +./spec/castkit/core/attributes_spec.rb[1:1:1] | passed | 0.00005 seconds | +./spec/castkit/core/attributes_spec.rb[1:1:2] | passed | 0.00006 seconds | ./spec/castkit/core/attributes_spec.rb[1:1:3] | passed | 0.00006 seconds | -./spec/castkit/core/attributes_spec.rb[1:2:1] | passed | 0.00004 seconds | -./spec/castkit/core/attributes_spec.rb[1:3:1] | passed | 0.00006 seconds | -./spec/castkit/core/attributes_spec.rb[1:4:1] | passed | 0.0006 seconds | +./spec/castkit/core/attributes_spec.rb[1:2:1] | passed | 0.00005 seconds | +./spec/castkit/core/attributes_spec.rb[1:3:1] | passed | 0.00005 seconds | +./spec/castkit/core/attributes_spec.rb[1:4:1] | passed | 0.00061 seconds | ./spec/castkit/core/attributes_spec.rb[1:5:1] | passed | 0.00007 seconds | -./spec/castkit/core/attributes_spec.rb[1:6:1] | passed | 0.00032 seconds | +./spec/castkit/core/attributes_spec.rb[1:6:1] | passed | 0.00047 seconds | ./spec/castkit/core/attributes_spec.rb[1:7:1] | passed | 0.00006 seconds | ./spec/castkit/core/config_spec.rb[1:1:1] | passed | 0.00004 seconds | -./spec/castkit/core/config_spec.rb[1:1:2] | passed | 0.00003 seconds | +./spec/castkit/core/config_spec.rb[1:1:2] | passed | 0.00004 seconds | ./spec/castkit/core/config_spec.rb[1:2:1] | passed | 0.00003 seconds | -./spec/castkit/core/config_spec.rb[1:3:1] | passed | 0.00004 seconds | -./spec/castkit/core/config_spec.rb[1:3:2] | passed | 0.00003 seconds | +./spec/castkit/core/config_spec.rb[1:3:1] | passed | 0.00003 seconds | +./spec/castkit/core/config_spec.rb[1:3:2] | passed | 0.00004 seconds | ./spec/castkit/core/config_spec.rb[1:4:1] | passed | 0.00003 seconds | ./spec/castkit/core/config_spec.rb[1:4:2] | passed | 0.00003 seconds | -./spec/castkit/core/config_spec.rb[1:5:1] | passed | 0.00005 seconds | +./spec/castkit/core/config_spec.rb[1:5:1] | passed | 0.00004 seconds | ./spec/castkit/core/config_spec.rb[1:5:2] | passed | 0.00003 seconds | -./spec/castkit/data_object_spec.rb[1:1:1] | passed | 0.00494 seconds | +./spec/castkit/data_object_spec.rb[1:1:1] | passed | 0.0045 seconds | ./spec/castkit/data_object_spec.rb[1:1:2] | passed | 0.00023 seconds | ./spec/castkit/data_object_spec.rb[1:2:1] | passed | 0.00015 seconds | ./spec/castkit/data_object_spec.rb[1:2:2] | passed | 0.00012 seconds | -./spec/castkit/data_object_spec.rb[1:2:3] | passed | 0.0001 seconds | -./spec/castkit/data_object_spec.rb[1:3:1] | passed | 0.00009 seconds | +./spec/castkit/data_object_spec.rb[1:2:3] | passed | 0.00009 seconds | +./spec/castkit/data_object_spec.rb[1:3:1] | passed | 0.00008 seconds | ./spec/castkit/data_object_spec.rb[1:3:2] | passed | 0.0001 seconds | -./spec/castkit/data_object_spec.rb[1:4:1] | passed | 0.00016 seconds | -./spec/castkit/data_object_spec.rb[1:5:1] | passed | 0.00012 seconds | +./spec/castkit/data_object_spec.rb[1:4:1] | passed | 0.00015 seconds | +./spec/castkit/data_object_spec.rb[1:5:1] | passed | 0.00015 seconds | ./spec/castkit/data_object_spec.rb[1:5:2] | passed | 0.00012 seconds | ./spec/castkit/data_object_spec.rb[1:5:3] | passed | 0.00012 seconds | ./spec/castkit/data_object_spec.rb[1:5:4] | passed | 0.00011 seconds | -./spec/castkit/data_object_spec.rb[1:5:5] | passed | 0.00073 seconds | -./spec/castkit/data_object_spec.rb[1:5:6] | passed | 0.0002 seconds | +./spec/castkit/data_object_spec.rb[1:5:5] | passed | 0.00068 seconds | +./spec/castkit/data_object_spec.rb[1:5:6] | passed | 0.00019 seconds | ./spec/castkit/data_object_spec.rb[1:5:7] | passed | 0.00014 seconds | ./spec/castkit/data_object_spec.rb[1:5:8] | passed | 0.00012 seconds | +./spec/castkit/data_object_spec.rb[1:5:9] | passed | 0.00012 seconds | ./spec/castkit/data_object_spec.rb[1:6:1] | passed | 0.00011 seconds | -./spec/castkit/data_object_spec.rb[1:7:1] | passed | 0.00013 seconds | -./spec/castkit/data_object_spec.rb[1:8:1] | passed | 0.00014 seconds | -./spec/castkit/data_object_spec.rb[1:8:2] | passed | 0.00014 seconds | +./spec/castkit/data_object_spec.rb[1:7:1] | passed | 0.00012 seconds | +./spec/castkit/data_object_spec.rb[1:8:1] | passed | 0.00015 seconds | +./spec/castkit/data_object_spec.rb[1:8:2] | passed | 0.00013 seconds | ./spec/castkit/data_object_spec.rb[1:9:1] | passed | 0.00013 seconds | -./spec/castkit/default_serializer_spec.rb[1:1:1] | passed | 0.00016 seconds | -./spec/castkit/default_serializer_spec.rb[1:2:1] | passed | 0.0002 seconds | +./spec/castkit/default_serializer_spec.rb[1:1:1] | passed | 0.00015 seconds | +./spec/castkit/default_serializer_spec.rb[1:2:1] | passed | 0.00019 seconds | ./spec/castkit/default_serializer_spec.rb[1:2:2] | passed | 0.00011 seconds | ./spec/castkit/default_serializer_spec.rb[1:2:3] | passed | 0.00022 seconds | -./spec/castkit/default_serializer_spec.rb[1:3:1] | passed | 0.00013 seconds | -./spec/castkit/default_serializer_spec.rb[1:3:2] | passed | 0.0002 seconds | -./spec/castkit/default_serializer_spec.rb[1:3:3] | passed | 0.0002 seconds | +./spec/castkit/default_serializer_spec.rb[1:3:1] | passed | 0.00018 seconds | +./spec/castkit/default_serializer_spec.rb[1:3:2] | passed | 0.00021 seconds | +./spec/castkit/default_serializer_spec.rb[1:3:3] | passed | 0.00021 seconds | ./spec/castkit/default_serializer_spec.rb[1:3:4] | passed | 0.00016 seconds | ./spec/castkit/default_serializer_spec.rb[1:4:1] | passed | 0.00011 seconds | ./spec/castkit/default_serializer_spec.rb[1:5:1] | passed | 0.0001 seconds | -./spec/castkit/default_serializer_spec.rb[1:5:2] | passed | 0.00008 seconds | -./spec/castkit/default_serializer_spec.rb[1:5:3] | passed | 0.00009 seconds | +./spec/castkit/default_serializer_spec.rb[1:5:2] | passed | 0.00009 seconds | +./spec/castkit/default_serializer_spec.rb[1:5:3] | passed | 0.00008 seconds | ./spec/castkit/definition_spec.rb[1:1:1] | passed | 0.00004 seconds | ./spec/castkit/definition_spec.rb[1:2:1] | passed | 0.00016 seconds | ./spec/castkit/definition_spec.rb[1:3:1] | passed | 0.00007 seconds | -./spec/castkit/definition_spec.rb[1:3:2] | passed | 0.00006 seconds | +./spec/castkit/definition_spec.rb[1:3:2] | passed | 0.00007 seconds | ./spec/castkit/definition_spec.rb[1:4:1] | passed | 0.00005 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:1:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/access_spec.rb[1:1:2:1] | passed | 0.00004 seconds | +./spec/castkit/ext/attribute/access_spec.rb[1:1:2:1] | passed | 0.00005 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:1:3:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:1:4:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:2:1:1] | passed | 0.00006 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:2:2:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/access_spec.rb[1:2:3:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/access_spec.rb[1:2:3:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:3:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:3:2] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:3:3] | passed | 0.00003 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:3:4] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/access_spec.rb[1:3:5] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/access_spec.rb[1:4:1:1] | passed | 0.00004 seconds | +./spec/castkit/ext/attribute/access_spec.rb[1:3:5] | passed | 0.00003 seconds | +./spec/castkit/ext/attribute/access_spec.rb[1:4:1:1] | passed | 0.00006 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:4:2:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/access_spec.rb[1:4:3:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/access_spec.rb[1:4:3:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:5:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/access_spec.rb[1:5:2] | passed | 0.00004 seconds | +./spec/castkit/ext/attribute/access_spec.rb[1:5:2] | passed | 0.00003 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:5:3] | passed | 0.00003 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:6:1:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/access_spec.rb[1:6:2:1] | passed | 0.00004 seconds | +./spec/castkit/ext/attribute/access_spec.rb[1:6:2:1] | passed | 0.00005 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:6:3:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:7:1:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/access_spec.rb[1:7:2:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:1:1:1] | passed | 0.00006 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:1:2:1] | passed | 0.00005 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:2:1:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:2:2:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:3:1:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:3:2:1] | passed | 0.00005 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:3:3:1] | passed | 0.00005 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:4:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:5:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:5:2:1] | passed | 0.00295 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:6:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:1:1:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:1:2:1] | passed | 0.00006 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:2:1:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:2:2:1] | passed | 0.0001 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:3:1:1] | passed | 0.00008 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:3:2:1] | passed | 0.00009 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:3:3:1] | passed | 0.00007 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:4:1] | passed | 0.00339 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:5:1] | passed | 0.00007 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:5:2:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:6:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:7:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:7:2:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:8:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:8:2:1] | passed | 0.00004 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:8:2:1] | passed | 0.00014 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:9:1:1] | passed | 0.00006 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:9:2:1] | passed | 0.00005 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:9:3:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:9:2:1] | passed | 0.00004 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:9:3:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:10:1:1] | passed | 0.00005 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:10:2:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/options_spec.rb[1:11:1:1] | passed | 0.00005 seconds | +./spec/castkit/ext/attribute/options_spec.rb[1:11:1:1] | passed | 0.00011 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:11:2:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:12:1:1] | passed | 0.00004 seconds | ./spec/castkit/ext/attribute/options_spec.rb[1:12:2:1] | passed | 0.00004 seconds | -./spec/castkit/ext/attribute/validation_spec.rb[1:1:1:1] | passed | 0.00016 seconds | -./spec/castkit/ext/attribute/validation_spec.rb[1:1:2:1:1] | passed | 0.00011 seconds | -./spec/castkit/ext/attribute/validation_spec.rb[1:1:2:2:1] | passed | 0.00026 seconds | +./spec/castkit/ext/attribute/validation_spec.rb[1:1:1:1] | passed | 0.00018 seconds | +./spec/castkit/ext/attribute/validation_spec.rb[1:1:2:1:1] | passed | 0.00018 seconds | +./spec/castkit/ext/attribute/validation_spec.rb[1:1:2:2:1] | passed | 0.00018 seconds | ./spec/castkit/ext/attribute/validation_spec.rb[1:1:3:1] | passed | 0.00009 seconds | ./spec/castkit/ext/attribute/validation_spec.rb[1:1:4:1:1] | passed | 0.0001 seconds | -./spec/castkit/ext/attribute/validation_spec.rb[1:1:4:2:1] | passed | 0.0002 seconds | +./spec/castkit/ext/attribute/validation_spec.rb[1:1:4:2:1] | passed | 0.00019 seconds | ./spec/castkit/ext/attribute/validation_spec.rb[1:1:5:1:1] | passed | 0.0001 seconds | ./spec/castkit/ext/attribute/validation_spec.rb[1:1:5:2:1] | passed | 0.00014 seconds | -./spec/castkit/ext/data_object/deserialization_spec.rb[1:1:1] | passed | 0.00013 seconds | +./spec/castkit/ext/data_object/deserialization_spec.rb[1:1:1] | passed | 0.00016 seconds | ./spec/castkit/ext/data_object/deserialization_spec.rb[1:2:1] | passed | 0.00006 seconds | ./spec/castkit/ext/data_object/deserialization_spec.rb[1:2:2] | passed | 0.00006 seconds | ./spec/castkit/ext/data_object/deserialization_spec.rb[1:3:1] | passed | 0.00018 seconds | @@ -154,53 +155,53 @@ example_id | status | run_tim ./spec/castkit/ext/data_object/serialization_spec.rb[1:2:2] | passed | 0.00004 seconds | ./spec/castkit/ext/data_object/serialization_spec.rb[1:3:1] | passed | 0.00004 seconds | ./spec/castkit/ext/data_object/serialization_spec.rb[1:4:1] | passed | 0.00004 seconds | -./spec/castkit/ext/data_object/serialization_spec.rb[1:4:2] | passed | 0.00004 seconds | +./spec/castkit/ext/data_object/serialization_spec.rb[1:4:2] | passed | 0.00009 seconds | ./spec/castkit/plugins_spec.rb[1:1] | passed | 0.00004 seconds | ./spec/castkit/plugins_spec.rb[1:2] | passed | 0.00007 seconds | ./spec/castkit/plugins_spec.rb[1:3] | passed | 0.00005 seconds | -./spec/castkit/types/base_spec.rb[1:1:1] | passed | 0.00007 seconds | +./spec/castkit/types/base_spec.rb[1:1:1] | passed | 0.00006 seconds | ./spec/castkit/types/base_spec.rb[1:1:2] | passed | 0.00005 seconds | -./spec/castkit/validators/boolean_validator_spec.rb[1:1:1] | passed | 0.00004 seconds | +./spec/castkit/validators/boolean_validator_spec.rb[1:1:1] | passed | 0.00005 seconds | ./spec/castkit/validators/boolean_validator_spec.rb[1:1:2] | passed | 0.00003 seconds | ./spec/castkit/validators/boolean_validator_spec.rb[1:1:3] | passed | 0.00003 seconds | -./spec/castkit/validators/boolean_validator_spec.rb[1:1:4] | passed | 0.00004 seconds | -./spec/castkit/validators/boolean_validator_spec.rb[1:2:1] | passed | 0.00003 seconds | -./spec/castkit/validators/numeric_validator_spec.rb[1:1:1:1] | passed | 0.00005 seconds | -./spec/castkit/validators/numeric_validator_spec.rb[1:1:2:1] | passed | 0.00004 seconds | -./spec/castkit/validators/numeric_validator_spec.rb[1:1:3:1] | passed | 0.00015 seconds | -./spec/castkit/validators/numeric_validator_spec.rb[1:1:4:1] | passed | 0.00007 seconds | +./spec/castkit/validators/boolean_validator_spec.rb[1:1:4] | passed | 0.00005 seconds | +./spec/castkit/validators/boolean_validator_spec.rb[1:2:1] | passed | 0.00022 seconds | +./spec/castkit/validators/numeric_validator_spec.rb[1:1:1:1] | passed | 0.00007 seconds | +./spec/castkit/validators/numeric_validator_spec.rb[1:1:2:1] | passed | 0.00007 seconds | +./spec/castkit/validators/numeric_validator_spec.rb[1:1:3:1] | passed | 0.00004 seconds | +./spec/castkit/validators/numeric_validator_spec.rb[1:1:4:1] | passed | 0.00004 seconds | ./spec/castkit/validators/string_validator_spec.rb[1:1:1:1:1] | passed | 0.00004 seconds | -./spec/castkit/validators/string_validator_spec.rb[1:1:2:1] | passed | 0.00006 seconds | +./spec/castkit/validators/string_validator_spec.rb[1:1:2:1] | passed | 0.00005 seconds | ./spec/castkit/validators/string_validator_spec.rb[1:1:2:2] | passed | 0.00004 seconds | ./spec/castkit/validators/string_validator_spec.rb[1:1:3:1] | passed | 0.00005 seconds | -./spec/castkit/validators/string_validator_spec.rb[1:1:3:2] | passed | 0.00003 seconds | -./spec/castkit/validators/string_validator_spec.rb[1:1:4:1] | passed | 0.00004 seconds | +./spec/castkit/validators/string_validator_spec.rb[1:1:3:2] | passed | 0.00004 seconds | +./spec/castkit/validators/string_validator_spec.rb[1:1:4:1] | passed | 0.00005 seconds | ./spec/castkit/validators/validator_spec.rb[1:1:1] | passed | 0.00004 seconds | -./spec/castkit/validators/validator_spec.rb[1:2:1] | passed | 0.00004 seconds | -./spec/castkit_spec.rb[1:1] | passed | 0.00003 seconds | -./spec/castkit_spec.rb[1:2:1:1] | passed | 0.00013 seconds | +./spec/castkit/validators/validator_spec.rb[1:2:1] | passed | 0.00008 seconds | +./spec/castkit_spec.rb[1:1] | passed | 0.00004 seconds | +./spec/castkit_spec.rb[1:2:1:1] | passed | 0.00015 seconds | ./spec/castkit_spec.rb[1:2:1:2] | passed | 0.00008 seconds | ./spec/castkit_spec.rb[1:2:1:3] | passed | 0.00011 seconds | -./spec/castkit_spec.rb[1:2:1:4] | passed | 0.0001 seconds | +./spec/castkit_spec.rb[1:2:1:4] | passed | 0.00011 seconds | ./spec/castkit_spec.rb[1:2:2:1] | passed | 0.00011 seconds | -./spec/castkit_spec.rb[1:2:2:2] | passed | 0.00009 seconds | +./spec/castkit_spec.rb[1:2:2:2] | passed | 0.00008 seconds | ./spec/castkit_spec.rb[1:2:2:3] | passed | 0.00007 seconds | ./spec/castkit_spec.rb[1:2:3:1] | passed | 0.00006 seconds | -./spec/castkit_spec.rb[1:2:3:2] | passed | 0.00006 seconds | -./spec/castkit_spec.rb[1:2:3:3] | passed | 0.00005 seconds | -./spec/castkit_spec.rb[1:2:4:1] | passed | 0.00007 seconds | -./spec/castkit_spec.rb[1:3:1] | passed | 0.00021 seconds | +./spec/castkit_spec.rb[1:2:3:2] | passed | 0.00007 seconds | +./spec/castkit_spec.rb[1:2:3:3] | passed | 0.00006 seconds | +./spec/castkit_spec.rb[1:2:4:1] | passed | 0.00008 seconds | +./spec/castkit_spec.rb[1:3:1] | passed | 0.00016 seconds | ./spec/castkit_spec.rb[1:3:2] | passed | 0.00015 seconds | -./spec/castkit_spec.rb[1:3:3] | passed | 0.00016 seconds | -./spec/castkit_spec.rb[1:3:4] | passed | 0.00018 seconds | +./spec/castkit_spec.rb[1:3:3] | passed | 0.00022 seconds | +./spec/castkit_spec.rb[1:3:4] | passed | 0.00012 seconds | ./spec/castkit_spec.rb[1:3:5] | passed | 0.00012 seconds | -./spec/castkit_spec.rb[1:3:6] | passed | 0.00014 seconds | -./spec/castkit_spec.rb[1:3:7] | passed | 0.00023 seconds | -./spec/castkit_spec.rb[1:3:8] | passed | 0.00019 seconds | -./spec/configuration_spec.rb[1:1:1] | passed | 0.00007 seconds | -./spec/configuration_spec.rb[1:2:1] | passed | 0.00012 seconds | +./spec/castkit_spec.rb[1:3:6] | passed | 0.00023 seconds | +./spec/castkit_spec.rb[1:3:7] | passed | 0.00016 seconds | +./spec/castkit_spec.rb[1:3:8] | passed | 0.00027 seconds | +./spec/configuration_spec.rb[1:1:1] | passed | 0.00008 seconds | +./spec/configuration_spec.rb[1:2:1] | passed | 0.00005 seconds | ./spec/configuration_spec.rb[1:3:1] | passed | 0.00005 seconds | ./spec/configuration_spec.rb[1:3:2] | passed | 0.00004 seconds | ./spec/configuration_spec.rb[1:3:3] | passed | 0.00004 seconds | ./spec/configuration_spec.rb[1:3:4] | passed | 0.00006 seconds | -./spec/configuration_spec.rb[1:4:1] | passed | 0.00006 seconds | +./spec/configuration_spec.rb[1:4:1] | passed | 0.00013 seconds | diff --git a/lib/castkit/contract/validator.rb b/lib/castkit/contract/validator.rb index a466909..9b25cdd 100644 --- a/lib/castkit/contract/validator.rb +++ b/lib/castkit/contract/validator.rb @@ -188,7 +188,11 @@ def validate_unknown_attributes!(input, errors) # @return [Object, nil] def resolve_input_value(input, attribute) attribute.key_path(with_aliases: true).each do |path| - value = path.reduce(input) { |memo, key| memo.is_a?(Hash) ? memo[key] : nil } + value = path.reduce(input) do |memo, key| + next memo unless memo.is_a?(Hash) + + memo.key?(key) ? memo[key] : memo[key.to_s] + end return value unless value.nil? end diff --git a/lib/castkit/dsl/data_object/deserialization.rb b/lib/castkit/dsl/data_object/deserialization.rb index 320dea6..e0a3f82 100644 --- a/lib/castkit/dsl/data_object/deserialization.rb +++ b/lib/castkit/dsl/data_object/deserialization.rb @@ -104,7 +104,11 @@ def required?(attribute, value) # @return [Object, nil] def resolve_input_value(input, attribute) attribute.key_path(with_aliases: true).each do |path| - value = path.reduce(input) { |memo, key| memo.is_a?(Hash) ? memo[key] : nil } + value = path.reduce(input) do |memo, key| + next memo unless memo.is_a?(Hash) + + memo.key?(key) ? memo[key] : memo[key.to_s] + end return value unless value.nil? end diff --git a/spec/castkit/data_object_spec.rb b/spec/castkit/data_object_spec.rb index 62a1c9a..3bae005 100644 --- a/spec/castkit/data_object_spec.rb +++ b/spec/castkit/data_object_spec.rb @@ -159,6 +159,17 @@ def self.name filtered_sorted.new(sort: "auto") end.not_to raise_error end + + it "accepts camelCase string keys from JSON input" do + dto = Class.new(described_class) do + string :logoColor + end + + input = { "logoColor" => "blue" } + + expect { dto.new(input) }.not_to raise_error + expect(dto.new(input).logoColor).to eq("blue") + end end describe "#__raw" do