Commit Graph

591 Commits

Author SHA1 Message Date
Blake Watters
8958bc8415 Improve cancellation behaviors for in-progress RKManagedObjectRequestOperation instances 2013-02-01 19:00:04 -05:00
Blake Watters
f9c3e3a4d4 Add a lock around the overrideen error accessor on RKHTTPRequestOperation. refs #1193 2013-02-01 08:59:42 -05:00
Blake Watters
3e351509b3 Fix crash when accessing a named route with no object for interpolation 2013-01-25 17:27:38 -05:00
Blake Watters
0364d6c67b Integrate support for metadata mapping routing data. refs #1174 2013-01-24 23:16:48 -05:00
Blake Watters
4c39918fdb Implement support for flexible metdata mapping. closes #582, #688
* Metadata mapping is implemented via an `NSProxy` object that stands in for the `sourceObject` of each `RKMappingOperation`
* Key paths that are prefixed with `@metadata.` are mapped against the `metadata` dictionary of the operation, else they hit the `sourceObject`.
* Metadata is implemented by merging a dictionary of data in from `RKObjectRequestOperation`, through to `RKResponseMapperOperation`, into `RKMapperOperation`, and all the way down into the `RKMappingOperation`, where it is available to each object. By convention, metdata is namespaced into subdictionaries.
2013-01-24 16:31:19 -05:00
Blake Watters
7cca6891ce Unwind earlier fix for obtaining permanent objectID for targetObject in favor of the overridden setter on RKManagedObjectRequestOperation 2013-01-23 17:28:08 -05:00
Blake Watters
2b84f667c1 Add support for obtaining a permanent managed object ID for the targetObject of an RKManagedObjectRequestOperation 2013-01-23 16:12:14 -05:00
Blake Watters
cd877860fd Tweak docs, add test cases for mapping a response with a descriptor that does not specify any attributes/relationships 2013-01-23 15:26:52 -05:00
Blake Watters
23ca0c7ca4 Fix potential crash due to serious Core Data error from failing to obtain a permanent objectID for an object that was just saved to the persistent store, but whose objectID is stale. fixes #1183 2013-01-23 13:20:55 -05:00
Blake Watters
1885ee9e89 Add warning about deadlocks if you use waitUntilFinished with a RKManagedObjectRequestOperation on a main queue thread. refs #1173 2013-01-21 16:17:10 -05:00
Blake Watters
2cf73d2436 Fix failed assertion when constructing an unprocessable response error for 5xx errors. closes #1169 2013-01-18 18:57:34 -05:00
Blake Watters
a75edcea2e Nil out targetObjectID if given a targetObject that is not an NSManagedObject. closes #1161 2013-01-18 17:28:49 -05:00
Blake Watters
3d971dc666 Encapsulate managed object refetching into an NSProxy object to enable you to defer the refetching until the mapping result is accessed (or skip it entirely if the result is not accessed) 2013-01-18 16:42:11 -05:00
Blake Watters
fc07e1fef7 Remove unnecessary exception handling for NSUndefinedKeyException 2013-01-18 14:48:22 -05:00
Blake Watters
06f2fe9c7b Radically simplify the implementation of managed object deletion and refetching within RKManagedObjectRequestOperation. closes #1163
1. Eliminates use of visitor in favor of aggregating mapping info during mapping. This avoids having to traverse the mapping graph.
1. Eliminate special case handling of cyclic key paths.
1. Eliminate issues with infinite recursion while traversing the mapping graph.
2013-01-18 12:20:51 -05:00
Blake Watters
ff7f538749 Add temporary workaround for infinite recursion 2013-01-17 23:31:28 -05:00
Blake Watters
f2abd1e107 Add test coverage verifying fix for crash during cyclic graph traversal in RKManagedObjectRequestOperation. closes #1142 2013-01-17 18:47:02 -05:00
Blake Watters
7bf14d4ea9 Rework implementation of cyclic mapping graph traversal. refs #1142 #1158 #1163 2013-01-17 15:08:30 -05:00
Blake Watters
a2ca2ec937 Fix crash when serializing NSDate properties mapped at nested keypaths. fixes #1134 2013-01-17 11:01:24 -05:00
Blake Watters
bcbbd65fbe Fix issue in which managed objects that are the children of non-managed objects were refetched and assigned as a collection rather than as a singular value. fixes #1118 2013-01-16 17:49:32 -05:00
Blake Watters
a8f3887b26 Fix bug with status code handling when statusCodes is nil for any response descriptor. 2013-01-16 13:57:24 -05:00
Blake Watters
c26739ce6b Fix issues with mapping errors from 5xx payloads. Ensure acceptableStatusCodes tracks the status codes configured in the response descriptors. fixes #1157 2013-01-16 12:38:44 -05:00
Blake Watters
bf521310b2 Replace visitor with simply obtaining permanent objectID's for temporary objects inserted into the context
The visitation implementation was problematic with large object graphs. This will obtain permanent objectID's for all temporary objects, but avoids having to visit each node in the graph.
2013-01-15 16:32:45 -05:00
Blake Watters
840b37a4f9 Fix bug in mapper delegate configuration and add missing test coverage for response mapper operation and both object request operation classes. closes #1156 2013-01-14 14:23:32 -05:00
Blake Watters
3e425707fb Fixed problems with initial implementation of temporary managed objects visitor. The implementation was under tested and only worked with a single relationship. refs #1001 2013-01-11 15:56:36 -05:00
Blake Watters
f1a35bb884 Style tweak 2013-01-10 19:54:18 -05:00
Blake Watters
281247f8c9 Merge branch 'master' of github.com:AntonPalich/RestKit into development 2013-01-09 22:45:23 -05:00
Blake Watters
f4b805ff52 Fix issues with implementation of error override in RKHTTPRequestOperation. fixes #1140 2013-01-09 22:42:39 -05:00
Blake Watters
b61039c838 Use a visitor to identify all NSManagedObject instances being sent via the object manager which have a temporary managed object ID to avoid crashes during mapping. refs #1001 2013-01-09 21:11:38 -05:00
Антон Щукин
3164c6d557 Fixed issue when body could be null on device
stringWithUTF8String accept NULL terminated C array of UTF8-encoded
bytes.
But NSData stores encoded data not like NULL terminated string.
2013-01-09 11:26:10 +04:00
Blake Watters
4612121ae5 Unify RKHTTPRequestOperation and RKObjectRequestOperation subclass customization via registration API's. closes #1131 2013-01-08 21:33:45 -05:00
Blake Watters
70180022be Add support for customizing the RKObjectRequestOperation and RKManagedObjectRequestOperation instances built through the object manager using a registration API very similar to that of AFHTTPClient. closes #1131 2013-01-08 10:49:49 -05:00
Blake Watters
905048f737 Fix issue where unsaved managed object POST'd to the server with unsaved changes are not persisted if no mapping occurs. fixes #1130 2013-01-07 19:56:14 -05:00
Blake Watters
a21213e9c1 Add a more informative assertion when an RKManagedObjectResponseMapperOperation instance is not configured properly 2013-01-07 14:17:53 -05:00
Blake Watters
e9d5a87f7b Drop unnecessary performBlockAndWait: invocation that may be correlated with occasional crashes seen in GateGuru 2013-01-07 13:50:03 -05:00
Blake Watters
0d74946808 Add another mention about the objectClass in RKRequestDescriptor 2013-01-06 00:46:43 -05:00
Blake Watters
bf63a77bc1 Add support for parameterizing an array of objects. closes #398 2013-01-03 11:11:25 -05:00
Blake Watters
c06347d5c5 Add support for customizing the HTTP request operation class used by RKPaginator. closes #1067 2013-01-02 00:27:40 -05:00
Blake Watters
879ffd73e6 Add support for deleting Core Data managed objects that fail validation out of the mapping context. This enables you to silently drop mapping for managed objects that fail validation. fixes #691 closes #694 2013-01-01 23:56:58 -05:00
Blake Watters
a30263b196 Fix issues with using the Paginator as documented in the headers. fixes #1117 2013-01-01 22:38:18 -05:00
Blake Watters
c08909761e Adjust completion block implementation for RKPaginator to enable completion block to be invoked when used without a strong reference. fixes #1119 fixes #1093 2013-01-01 22:21:47 -05:00
Blake Watters
9dc08ca27b Drop instancetype from init methods since the compiler will infer it 2013-01-01 15:27:01 -05:00
Blake Watters
d024a518a4 Fix broken dynamic mapping test 2012-12-31 15:26:44 -05:00
Blake Watters
b93fe1f7c9 Restore cycle detection and cleanup visitor codebase further 2012-12-31 14:50:32 -05:00
Blake Watters
1d27679ee3 Clean up the nasty mess in the visitor code and fix flaws in implementation of algorithm. Still some test breakage and additional coverage to put down 2012-12-31 14:39:37 -05:00
Blake Watters
9a128b678c Fix issues with refetching results using visitation 2012-12-30 22:54:09 -05:00
Blake Watters
312b382f25 Add test and fix for invalid key path exceptions with dynamic mappings. refs #1111 2012-12-30 00:01:50 -05:00
Blake Watters
6493282772 Rework implementation of managed object deletion and refetching to use the refreshed visitor implementation. refs #1111, #1113 2012-12-29 17:28:31 -05:00
Blake Watters
84c6822d25 Implement Tarjan's algorithm to efficiently traverse the RKResponseDescriptors within the RKManagedObjectRequestOperation and compute the key paths to all managed objects. refs #1113, refs #1112 2012-12-28 00:29:27 -05:00
Blake Watters
5c21e52829 Update Dynamic Mapping API's to match the rest of the 0.20.x style. Introduce support for predicate based dynamic matching.
* Rename RKDynamicMappingMatcher to RKObjectMappingMatcher since it is not strictly coupled to dynamic mapping and works with object mappings.
* Rework matchers into using a class cluster style to enable flexible subclassing to introduce additional matchers.
2012-12-27 22:16:40 -05:00