Commit Graph

492 Commits

Author SHA1 Message Date
Blake Watters
e85cf659c0 Improve Request Descriptor registration and lookup behaviors:
* Add assertion to object manager when you attempt to register an overlapping request descriptor
* Improve search algorithm to handle subclass matches
2012-11-05 23:10:57 -05:00
Blake Watters
28c8262b0d Port commented out unit tests from 0.10.x to latest development sources to nail down issues with targetObject behaviors 2012-11-05 18:38:24 -05:00
Blake Watters
e7505df56c Fix retain cycles detected by Xcode 4.6 static analyzer 2012-11-05 18:38:23 -05:00
Jeff Arena
2612604df3 Fix accept header issue with multipart requests. 2012-11-03 11:37:54 -04: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
5cab23b3af Fix autoreleasepool error under iOS 5.x. fixes #1008 2012-10-28 20:32:10 -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
337d078942 nil out the mapping result in the event we have encountered an error 2012-10-28 19:39:14 -04:00
Blake Watters
d71893bf43 Remove errantly committed logging statement 2012-10-27 18:08:15 -04:00
Blake Watters
9fa32fb08c Formatting tweak 2012-10-27 17:48:00 -04:00
Blake Watters
e457aba0fa Fix issue with nil arguments to success/failure block introduced earlier today 2012-10-27 16:41:46 -04:00
Blake Watters
a3bef1699a Add missing assert message 2012-10-27 16:21:13 -04:00
Blake Watters
29fecfd8bc Drop GG prefix in examples in header 2012-10-27 16:20:55 -04:00
Blake Watters
d2dc222766 FIx inappropriate use of __block when we mean __weak 2012-10-27 10:25:14 -04:00
Blake Watters
a484af05f5 Update logger to display basic info about an input stream used to send a request instead of wrongly logging request.body=(null) 2012-10-25 13:18:01 -04:00
Blake Watters
9ef8be412e Update docs to include note about setHTTPOperationClass: 2012-10-25 10:07:14 -04:00
Blake Watters
4a79ab6b68 Conditionalize log message regarding awaiting execution of connection operations and move to Trace logging level 2012-10-23 11:18:45 -04:00
Blake Watters
f96fee87b6 Add a decent description method to the object request operations 2012-10-22 19:29:58 -04:00
Blake Watters
f93a044561 Add error condition when attempting to map an RKEntityMapping containing connection mappings with a nil managed object cache.
* Add support for the data source to fail mapping operation with an error.
* Clean up error handling within RKMappingOperation
2012-10-21 15:47:16 -04:00
Blake Watters
c7ce86e9ac Improve docs on success/failure blocks 2012-10-20 10:51:49 -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
0738f59231 Added assertion to trap very nasty Core Data mapping error in which existingObjectWithID:error: returns an object in another context, indicating that the object graph has been poisoned, most likely by obtaining a permanent managed object ID from the wrong context. 2012-10-19 17:53:09 -04:00
Blake Watters
f69c2976e2 Fix bug with dynamic parameterization when the concrete mapping includes a date.
Instead of relying on reference to the RKMapping, which could be dynamic, traverse from the attribute mapping back to its parent to obtain the appropraite date formatter.
2012-10-18 14:38:36 -04:00
Blake Watters
384ff80845 Add support for spinning the Network Activity Indicator while object request operations are executing. Add notifications for tracking object request operation lifecycle. 2012-10-17 22:35:13 -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
feb998ea84 Added support for truncating the length of logged request and response bodies via the 'RKLogMaxLength' environment variable to avoid getting hammered with output on the Trace level 2012-10-17 22:33:31 -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
d6c429e735 Add tests clarifying issue regarding relativePath vs. relativeString. closes #996 2012-10-15 23:22:27 -04:00
Blake Watters
64e9c7cb6d Add support for mapping attributes to deeply nested keyPaths on NSMutableDictionary. fixes #882 2012-10-15 22:00:14 -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
4ee29df72f Ensure cancellation works with path patterns against baseURL's that include a path 2012-10-14 15:32:08 -04:00
Blake Watters
d823217993 Add assertions to prevent attempts to create request descriptor objects with inappropriate mappings. fixes #976 2012-10-14 14:57:02 -04:00
Blake Watters
f3ece00743 Rework path based response descriptor matching and expand test coverage. Eliminate path normalization. fixes #987 2012-10-14 13:51:39 -04:00
Blake Watters
3cc5ab9825 Fix inappropriate logging message regarding redirects 2012-10-14 13:51:38 -04:00
Blake Watters
8ae402e297 Add test coverage and fixed invalid error reporting when processing a client error that is empty and unmappable (i.e. {}). refs #983, closes #978 2012-10-06 01:54:12 -04:00
Blake Watters
c522326a98 Remove SystemConfiguration import for RKObjectManager. fixes #985 2012-10-06 01:05:55 -04:00
Blake Watters
66f0c34b5d Add conditional compilation for System Configuration header to avoid build error if SystemConfiguration is not pulled. refs #985 2012-10-06 00:07:38 -04:00
Blake Watters
a4a788b889 Wrap requestWithMethod:path:parameters: instead of reimplementing it. closes #959 2012-10-05 23:26:21 -04:00
Blake Watters
9ab37a7617 Finish header docs for RKObjectManager 2012-10-05 23:12:27 -04:00
Blake Watters
224de85fb3 Respect rootKeyPath when returning empty dictionary in response to unmappable representation error 2012-10-05 21:48:19 -04:00
Blake Watters
dc57e585a9 Use OS_OBJECT_USE_OBJC to conditionally compile dispatch retain/release based on compatibility with ARC of target compiler 2012-10-05 19:22:56 -04:00
Blake Watters
877ce255b5 Expand test coverage and fix situations where requests would unexpectedly initialize incorrectly without error
* RKObjectParameterization now returns an empty dictionary if mapping produces an unmappable representation error (no mappable attributes/relationships found)
* Log errors if request construction results in an NSError and return nil
* Ensure errors are passed back up through object parameterization instead of just returning nil
* Reset the serialization MIME Type registry during RKTestFactory set up to ensure it is in a sane state
* Convert Hamcrest matchers to Expecta in the object mapper tests to fix infinite recursion on test failure (will need to completely phase out Hamcrest soon)
2012-10-05 19:16:55 -04:00
Blake Watters
b9b34bf3dd FIx nasty problem with HTTP method being dropped from earlier headers cleanup 2012-10-05 16:54:30 -04:00
Blake Watters
17f9a1af8b Normalize the path pattern instead of throwing an assertion 2012-10-05 16:29:25 -04:00
Blake Watters
635b6257d1 Expose default headers as a property and rework intiialization logic to respect the AFHTTPClient instance with which the object manager was initialized. Update docs to reflect the changes. Add tests for initialization code paths. 2012-10-05 14:24:32 -04:00
Blake Watters
4060441abb Fix issue with exact substring path patterns failing to match 2012-10-04 22:26:43 -04:00
Blake Watters
25e1f9ed4d Don't send parameterization of the object with DELETE request's either. Update docs to reflect this. refs #947 2012-10-04 19:25:32 -04:00