Commit Graph

44 Commits

Author SHA1 Message Date
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
7745f17d90 Add temporary workaround for crashes related to ambiguous key paths in the deletion support. refs #1111 2012-12-27 15:11:51 -05:00
Blake Watters
62aa987d17 Fix another instance of subscripted access 2012-12-26 19:17:05 -05:00
Blake Watters
9f228e0280 Expand test coverage on managed object deletion cases and fix bugs. closes #358 2012-12-16 20:45:01 -05:00
Blake Watters
b6a94de68a Remove extraneous assert on deletion case 2012-12-16 13:02:18 -05:00
Blake Watters
a424908242 Expand test coverage and fix all known issues with managed object refetching and deletion. closes #1066 2012-12-13 22:42:34 -05:00
Blake Watters
406504ff2e Skip orphaned object deletion if the 304 optimization is in effect. Update log messages during orphaned object cleanup 2012-12-13 19:00:01 -05:00
Blake Watters
a9a1c3dc48 Don't crash when encountering nil in the mapping results dictionary 2012-12-13 18:12:50 -05:00
Blake Watters
280fd5d571 Fix crashes during refetch if objects were deleted. Expand managed object deletion support to handle nested objects. refs #1066 2012-12-13 17:35:39 -05:00
Blake Watters
a471bdd8a3 Add support for refetching NSManagedObject instances mapped at any point in the object graph. refs #1066 2012-12-12 20:47:14 -05:00
Blake Watters
5efcfe2c41 Eliminate remaining use of keyed subscript access 2012-12-10 17:12:53 -05:00
Blake Watters
89d0294dcd Expose access to the RKMapperOperationDelegate to RKObjectRequestOperation subclasses. closes #1009 2012-11-29 23:35:45 -05:00
Blake Watters
54dce20ac6 Rework paginator support for 0.20. closes #1024, #900, #759
* Renamed RKObjectPaginator to RKPaginator for simplicity
* Removed delegate on paginator in favor of simple success/failure blocks
* Added `willMapDeserializedResponseBlock` for manipulating the response body before mapping begins
* Added support for cancelling an in-progress pagination request
2012-11-18 22:44:33 -05:00
Blake Watters
e088bdc186 When managedObjectContext is set to nil on RKManagedObjectRequestOperation, avoid creation of an orphaned privateContext 2012-11-09 11:05:26 -05:00
Jeff Arena
129cc6f052 Fix issue with cross-context object comparison in case of local deletes. 2012-11-08 14:24:24 -05:00
Jeff Arena
9d40138129 Change the default value for deletesOrphanedObjects to YES in RKManagedObjectRequestOperation 2012-11-08 13:58:10 -05:00
Blake Watters
94318d1cb2 Add support for returning fetched objects when a 304 'Not Modified' response is loaded. closes #1006 2012-10-28 21:44:42 -04:00
Blake Watters
de016e22f3 Refetch the mapping results from the original managed object context before returning to the caller. fixes #1011
Eliminate the thread safe invocation class.
2012-10-28 20:22:53 -04:00
Blake Watters
08110ca300 Implement support for cancellation and prioritization of response mapping operations using an operation queue global to all object request operations.
* Passes through cancellation from object request operation to HTTP request operation and response mapping operation. closes #993
* Performs all object mapping within an NSOperationQueue to enable constraining of mapping activities.
* Add default mapping queue with concurrency limit of 1 operation.
* Migrate deserialization of the response body into a serial dispatch queue to ensure that only one parse occurs at a time.
2012-10-20 00:13:48 -04:00
Blake Watters
68cebc96af Added convenience function for getting a fetch request from an array of fetch request blocks 2012-10-17 22:34:09 -04:00
Blake Watters
f2bc809502 Update to reflect change to designated initializer in superclass preventing the appropriate default value for savesToPersistentStore: to be set. refs #1000 2012-10-17 17:08:31 -04:00
Blake Watters
bc50e95036 Fix invalid references to requestOperation. refs #997 2012-10-16 11:59:39 -04:00
Blake Watters
f4bfdb389b Add support for the registration of HTTP request operation subclasses on the manager to support easy customization of request operation handling. refs #997 2012-10-16 11:25:00 -04:00
Blake Watters
342c57213b Updates to relationship connection execution system for better encapsulation and reuse.
* Reworked execution of relationship connection operations to use dependencies instead of queue suspension.
* Migrates responsibility for connecting relationships from `RKManagedObjectRequestOperation` into `RKManagedObjectResponseMapperOperation`. This ensures that you get a mapped and connected object graph back from the response mapper if you are using it outside of a request operation.
* Add `parentOperation` to managed object mapping data source to establish dependencies.
2012-10-15 16:06:22 -04:00
Blake Watters
1811d5250d Ensure the fetch request blocks are given a relative URL if possible to make path matching easier 2012-10-14 16:03:12 -04:00
Blake Watters
174372dcf5 Fix a number of warnings about potential dereference of null pointer 2012-10-02 15:52:45 -04:00
Jeff Arena
5b372f4cea Fix issues with passing NSErrors into blocks inappropriately. 2012-10-02 12:54:32 -04:00
Blake Watters
2b7eca1fb4 Default savesToPersistentStore to YES 2012-10-01 23:11:03 -04:00
Blake Watters
d6cd6d7bba Add configuration for controlling persistent to the parent context or the persistent store 2012-10-01 22:41:08 -04:00
Jeff Arena
a88f58db55 Remove avoidsNetworkAccess property in favor of leveraging NSURLCache capabilities under the hood. 2012-09-28 13:41:28 -04:00
Arne Harren
bc7c65f03b Switch to an embedded variant of LibComponentLogging with prefix RK 2012-09-27 21:47:36 +02:00
Blake Watters
458354484a Fix null dereference static analyzer warnings 2012-09-27 11:47:30 -04:00
Blake Watters
6815ba6444 API refresh for mapping layer. Converted RKObjectMapper to RKMapperOperation. Expanded documentation. 2012-09-21 17:55:32 -04:00
Blake Watters
c88855614e Export the RKErrorFromMappingResult function; eliminate dependence on RestKit.h header from RKResponseMapperOperation 2012-09-20 11:51:28 -04:00
Blake Watters
3876263039 Document and clean up the RKMappingResult interface 2012-09-20 08:12:29 -04:00
Blake Watters
c090cbb430 Docs for RKManagedObjectRequestOperation 2012-09-18 15:54:36 -04:00
Blake Watters
b0f7c24745 Docs updates for object request operation. Extracted subclass only declarations into subclass header. 2012-09-16 13:42:44 -04:00
Blake Watters
b40e39813c License boilerplate 2012-09-12 21:18:45 -04:00
Blake Watters
1aec05c59e Use a reverse object enumerator when enumerating the fetch request blocks to allow blocks registered later to override earlier registrations 2012-09-10 19:11:05 -04:00
Blake Watters
e5aed512a7 Add new optimization to permit RKObjectRequestOperation to avoid the network and use an existing cached response. Update initialization paths for RKObjectRequestOperation to work with requests instead of request operations. 2012-09-09 18:25:43 -04:00
Blake Watters
22a68baf0c Rework podspec to organize header file imports to match existing RestKit releases 2012-09-05 11:04:42 -04:00
Blake Watters
627f6f5b7b Resource Path -> Path 2012-09-04 21:24:33 -04:00
Blake Watters
3eda5832cb Migrating files between modules to better reflect logical grouping with AFNetworking in the mix 2012-09-03 16:51:13 -04:00