614 Commits

Author SHA1 Message Date
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
Jeff Arena
bbfec220ed Fix logging issues with error method 2012-12-27 16:47:24 -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
bc719087ac Intelligently set the targetObject by exploring the mapping graph in appropriateObjectRequestOperationWithObject: to better support cases in which you POST/PUT one object, but map back another. fixes #1081 2012-12-23 00:26:33 -05:00
Blake Watters
0a033596da Relax the use of use an the informal procotol for the errorMessage property in favor of the description method. closes #1104, closes #1087, closes #1095
* Change contract to the use the `description` method instead of `errorMessage`. This makes it work with any class out of the box
* Add import for RKErrorMessage to the Support.h header so it is immediately available
* Fix incorrect keyPath in the README.md
* Add additional notes about how the errors are constructed to the README
2012-12-22 19:03:30 -05:00
Blake Watters
b78deb3eed Use instancetype in constructors for increased subclassing friendliness 2012-12-22 14:54:49 -05:00
Blake Watters
929cd44bd7 Undo previous paginator change. Instead, pass a reference to the operation queue from the RKObjectManager to any Paginator objects constructed through the manager. refs #1076 2012-12-21 16:00:43 -05:00
Blake Watters
913b8a1b9e Initialize RKPaginator with an operation queue. This avoids deadlocks when working with RKManagedObjectRequestOperation instances bound to the main thread. This is a workaround to deal with object request operations being non-concurrent and executing in the calling thread context. refs #1076 2012-12-21 14:11:05 -05:00
Blake Watters
939f45bf64 Add note about escaping path patterns to the main RKObjectManager.h header docs. refs #1091 2012-12-19 15:51:38 -05:00
Blake Watters
477d04b9a9 Add support for logging the elapsed time. Guard against attempts to log non-HTTP request operations. 2012-12-19 13:35:28 -05:00
Blake Watters
862e84a515 Hook the RKManagedObjectMappingOperationDataSource into the Managed Object Context save lifecycle to avoid the creation of duplicate objects during sequential mapping operations 2012-12-18 22:00:44 -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
c75a05a754 Fix usage of subscript access in RKHTTPRequestOperation.m refs #1077 2012-12-14 07:55:06 -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
abd07043f3 Output a string representation of the HTTP status code in the HTTP operation log. Add RKStringFromStatusCode convenience method to the HTTP utilities 2012-12-13 17:52:51 -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
69c65ef8ab Override error implementation to correct the NSLocalizedDescription key for RKHTTPRequestOperation objects. fixes #1070 2012-12-11 23:12:20 -05:00
Blake Watters
ae6b58d7bc Add support for parameterizing NSSet. refs #1010 2012-12-11 21:31:40 -05:00
Blake Watters
b9457ce65c Remove RKObjectManager specific value for the 'Accept' header and configure the header directly on the HTTP client instead. Register the AFJSONRequestOperation class in managerWithBaseURL:. Update documentation. 2012-12-11 21:24:22 -05:00
Blake Watters
f51a711a15 Add test coverage and bug fix for mapping error while processing an error response with RKObjectResponseMapperOperation. closes #1064 2012-12-11 09:00:57 -05:00
Blake Watters
5efcfe2c41 Eliminate remaining use of keyed subscript access 2012-12-10 17:12:53 -05:00
Blake Watters
3b5fe29e8b Fix incorrect consultation of containsEntityMapping rather than isManagedObjectRequestOperation 2012-12-09 23:55:40 -05:00
Blake Watters
1c86cfab75 Improve RKManagedObjectRequestOperation handling for DELETE requests and expand test coverage
* Failure to match a response descriptor no longer fails DELETE requests
2012-12-09 23:24:45 -05:00