diff --git a/Classes/lib/Serialization/XML/FromXMLElementDelegate.m b/Classes/lib/Serialization/XML/FromXMLElementDelegate.m index a11d889..a072bda 100644 --- a/Classes/lib/Serialization/XML/FromXMLElementDelegate.m +++ b/Classes/lib/Serialization/XML/FromXMLElementDelegate.m @@ -100,12 +100,16 @@ - (id) convertProperty:(NSString *)propertyValue toType:(NSString *)type { else if ([type isEqualToString:@"date"]) { return [NSDate fromXMLDateString:propertyValue]; } - else if ([type isEqualToString:@"decimal"]) { - return [NSDecimalNumber decimalNumberWithString:propertyValue]; - } - else if ([type isEqualToString:@"integer"]) { - return [NSNumber numberWithInt:[propertyValue intValue]]; - } + + // uncomment this if you what to support NSNumber and NSDecimalNumber + // if you do your classId must be a NSNumber since rails will pass it as such + //else if ([type isEqualToString:@"decimal"]) { + // return [NSDecimalNumber decimalNumberWithString:propertyValue]; + //} + //else if ([type isEqualToString:@"integer"]) { + // return [NSNumber numberWithInt:[propertyValue intValue]]; + //} + else { return [NSString fromXmlString:propertyValue]; } diff --git a/Classes/unit_tests/XMLDeserializeTest.m b/Classes/unit_tests/XMLDeserializeTest.m index 78678e2..bfdc119 100644 --- a/Classes/unit_tests/XMLDeserializeTest.m +++ b/Classes/unit_tests/XMLDeserializeTest.m @@ -33,9 +33,11 @@ -(void) testDeserializationOfModel { STAssertTrue([testClass.name isEqualToString:@"Hourly Test"] , @"should be \"Hourly Test\""); STAssertTrue([testClass.createdAt isEqualToDate:dateToTest] , @"Date should be 2009-02-16T10:43:50Z , but got %@" , testClass.createdAt); STAssertTrue([testClass.testClassId intValue] == 1,@"Model should have an id of 1"); + + NSString *output = @"2009-02-16T10:43:50Z2.1Hourly Test1"; STAssertEqualStrings([testClass toXMLElementAs:@"test-class" excludingInArray:[NSArray array] withTranslations:[NSDictionary dictionaryWithObject:@"id" forKey:@"testClassId"]], - testXML, @"reserialization of object should match original string"); + output, @"reserialization of object should match original string"); } -(void) testDeserializationOfArray {