Commit Graph

571 Commits

Author SHA1 Message Date
Blake Watters
d94fcf665d Added sanity check that relationship mapping is not targeting a collection of collections. fixes #386
This can happen when using keyPaths to traverse an object graph and is hard to anticipate when
defining mappings. RestKit will now perform a sanity check before recursively performing
relationship object mapping operation and will log a warning if the relationship targets
a collection containing another collection. At the debug logging level, RestKit will log

The fix for such scenarios is to use KVC collection operators (such as @unionOfObjects,
@unionOfArrays, etc.) to flatten the collection out into a collection of dictionaries.
2011-10-01 11:52:51 -04:00
Blake Watters
2823d60ba7 Added new RKLog helpers for changing the log level during the execution of a block. Very helpful for debugging. closes #387 2011-10-01 11:10:24 -04:00
Blake Watters
da38149e44 Eliminated the use of @compatibility_alias to work around compiler issues reported on the mailing list 2011-09-29 10:10:35 -04:00
OpenThread
f894226908 Implemented full support for generation of cache keys on RKParams. fixes #272
* Builds on work started by @OpenFibers.
* Should eliminate all cache warnings.
* Added FileMD5Hash library for efficiently computing MD5 for files
* Extended RKParams to return composite MD5 for all attachments
* Implemented MD5 method on each RKParamsAttachment instance
* Updated RKRequest to utilize new MD5 sums and enabled cache keys for RKParams
2011-09-28 23:20:26 -04:00
Blake Watters
e86d9375bd Added test coverage and fixes for cases where the parser returns nil, but no error occurred. fixes #365 2011-09-28 09:43:35 -04:00
Sergej Tatarincev
3983bd00f8 Added download progress 2011-09-28 12:23:28 +03:00
Blake Watters
2d281e60d3 Investigated issues surrounding inability to change HTTP AUTH credentials thoroughly. fixes #250, #237, #127
These issues has been open for some time. I have added thorough unit test coverage
for scenarios of mutating the HTTP AUTH credentials on the RKClient and on individual
RKRequest instances. Everything seems to work fine.

Also added RKAuthenticationExample to RKCatalog for testing. Needs to be updated with
support for using OAuth.
2011-09-27 23:59:06 -04:00
Greg Combs
a6364ed5db Merge pull request #375 from beinstein/patch-1
This removes an unnecessary UIKit header from the new authentication client code.
2011-09-27 07:52:32 -07:00
Blake Watters
6011faeda5 Fix naked NSLog that should be a RKLogDebug. fixes #376 2011-09-27 08:39:29 -04:00
Ben Einstein
06537b8d18 This causes OS X builds to fail (and isn't necessary anyway) 2011-09-27 01:15:43 -03:00
Blake Watters
19738ff61f Update outdated comments in the XML parser header 2011-09-26 20:05:22 -04:00
Blake Watters
30b08ba85b Added default parser registration for text/xml MIME Type. fixes #370 2011-09-23 09:49:54 -04:00
Blake Watters
947cf378c7 Merge pull request #346 from ralfvdz/patch-1
Log the body when all data has been received.
2011-09-21 05:53:07 -07:00
Blake Watters
2f91e71c3a Merge pull request #356 from jobi/master
Allow specifying the bundle when seeding from a file
2011-09-21 05:52:24 -07:00
Blake Watters
0b5233916a Fixed bug where relationship connection was working off of source keyPath instead of destination (i.e. relationship name). fixes #357 2011-09-20 19:20:19 -04:00
Blake Watters
c493ec3cd5 Fix for missing rename on OAuth client 2011-09-20 19:04:43 -04:00
Johan Bilien
cee8f13c6c Add a way to specify the bundle from seeding from a file
[NSBundle mainBundle] doesn't work for logic tests, which don't have an
application bundle.
2011-09-20 16:01:14 -04:00
Blake Watters
eb887e38c6 Refactored OAuth support for merge into master. fixes #84, #211
Cleaned up @rodchile's excellent work integration OAuth 1.0 and 2.0 into RestKit. Changes
are as follows:

* Introduced new RKRequestAuthenticationType to replace the forceBasicAuthentication and other
    methods for influencing how authorization works.
* Moved TDOAuth code into Vendor/
* Renamed authorization code flow classes and delegate methods for clarity.
2011-09-20 15:52:17 -04:00
Blake Watters
144533cdd5 Renamed RKObjectDynamicMapping to RKDynamicObjectMapping to better mesh with Cocoa idioms. fixes #354
The old class name has been aliased for backwards compatibility.
2011-09-20 13:18:09 -04:00
Blake Watters
0c96aedc85 Fix use of reserved 'class' keyword that breaks import into Objective-C++. fixes #355
Added basic spec file that imports the public headers into an Objective-C++ source file.
2011-09-20 13:04:29 -04:00
Blake Watters
e535f3abf0 Removed unnecessary InflectionSupport 2011-09-20 12:36:39 -04:00
Blake Watters
70c73f2981 Fixed issue with order dependence in Core Data connections. fixes #173
Since OM 2.0 connection of relationships happened during the object mapping operation
instead of aggregately at the end of the process. In this commit, we have introduced a lightweight
queue for deferring portions of the mapping operation until a larger aggregate mapping has completed.

The changes are as follows:
* Introduced RKMappingOperationQueue for queueing portions of mapping. This is a synchronous queue modeled off
of NSOperationQueue that does NOT use threading (for Core Data friendliness).
* RKObjectMappingOperation now has a RKMappingOperationQueue queue property that defaults to nil
* RKObjectMappingOperation instances built via RKObjectMapper will has a mapping operation queue
assigned to the property.
* If a queue is present, RKManagedObjectMappingOperation will use it to defer the connection of relationships.
* At the end of an RKObjectMapper process, the mapping operation queue used by all mapping operations created
during the process will be executed. This allows all relationships to be connected after all object creation
has completed.

The queue is general purpose, though currently only used for the connection of relationships.
2011-09-20 12:02:50 -04:00
Blake Watters
91a6e9423e Added convenience methods and docs for mapping NSSet and NSArray attribute collections. fixes #285 2011-09-19 21:03:02 -04:00
Blake Watters
4b287a5b24 Added ability to overload the params on object loaders composed by the object manager. fixes #352 2011-09-19 19:54:58 -04:00
Greg Combs
e33d9e519a Unfortunately introduced an error while fixing #342 in commit a1b2201 in the RKObjectMappingProvider where retrieving mappings by class was broken, partially, yet passed unit tests. This fixes the bug and covers the gap in the tests. 2011-09-18 21:06:19 -05:00
Greg Combs
52e5a7b911 AppDirectory return value was incorrect for OSX Core Data. Fixes #350. Thanks @martijnthe 2011-09-18 12:00:23 -05:00
Greg Combs
c49310162e RKPathMatcher can now accommodate non-KVM dots that follow parameter keys in the pattern. Where /:filename.json would fail before, we use special escapes like /:filename\.json ... this fixes #349. Thanks @jverkoey for the fix and @coryalder for the catch. 2011-09-16 15:35:27 -05:00
Greg Combs
62d7042ebc Merge pull request #334 from parkerboundy/add-apache-license
Add the Apache License to headers (Issue #145) Closes #145.  Thanks @parkerboundy.
2011-09-14 21:56:15 -07:00
Greg Combs
a1b2201f2a Fixes a crash in RKObjectMappingProvider where objectMappingsForClass is called after some dynamic mappings have been registered in the provider. Fixes #342. Thanks to @bjornjonsson 2011-09-14 20:32:37 -05:00
Greg Combs
3006516794 Merge pull request #347 from bjornjonsson/master
Fix of RKObjectMappingOperation does not respect forceCollectionMapping (Issue #341) This fixes #341.  A solid pull request with good tests.  I ran through it prior to his new test coverage last night and it looked good with no discernible side-effects.  With the new test coverage, the added code gets exercised appropriately.
2011-09-14 17:20:10 -07:00
Björn Jonsson
90ef91e890 Fix of RKObjectMappingOperation does not respect forceCollectionMapping (Issue 341)
Includes test cases and fixtures
2011-09-14 22:50:03 +02:00
Ralf van der Zanden
41c8d27f04 Log the body when all data has been received. (body not always available/complete in didReceiveResponse) 2011-09-14 14:43:53 +03:00
Blake Watters
05b94cae5d Added assertions for object store nilness.
The managedObjectContext helper method will now raise an exception if there is not a sharedManager or the current sharedManager does not have an objectStore configured.
2011-09-13 13:13:12 -04:00
Blake Watters
b946fc3cd9 Small header file changes for Appledoc output changes 2011-09-13 13:13:11 -04:00
Greg Combs
20fb9043b3 Clarified header documentation for RKRequest's cancel method. 2011-09-13 10:53:19 -05:00
Greg Combs
fc5f2b38be Minor cleanup of some whitespace after recent feature pull requests 2011-09-13 01:30:43 -05:00
Greg Combs
6dd1e8da40 Now gracefully handles escaping interpolated resource paths in RKRouter, RKMakePathWithObject, and RKPathMatcher. By adding an encoding handler to SOCKit, we now (by default, but optionally) add percent escapes to each object's property value while it's being interpolated into a resource path pattern, like /stuff/things/:others?apikey=:apikey ... that way it won't brutally mangle the slashes and question marks and ampersands that exist in the resource path pattern, while at the same time properly escaping those same characters when they occur inside the object's property value. Closes #221 2011-09-13 00:50:55 -05:00
Greg Combs
2bd113fd42 Added two static initializers to RKDotNetDateFormatter and amended the specs. 2011-09-09 09:51:35 -05:00
Greg Combs
9ce25f5689 Added RKDotNetDateFormatter to translate back and forth between NSDate and strings like /Date(1234567890123-0500)/ Also includes header docs and specs. Fixes #264 2011-09-09 03:26:46 -05:00
Blake Watters
5c359edfc5 Use relative imports for headers in Support module. Removed import of SCNetworkReachability in RKClient 2011-09-08 19:26:33 -04:00
Blake Watters
4226067b8a Use Grand Central Dispatch to fire reachability notifications for IP addresses 2011-09-08 19:22:58 -04:00
Blake Watters
bebc08e34c Remove improper import of RKObjectLoader in RKClient 2011-09-08 19:22:28 -04:00
Blake Watters
12bacf9be4 Removed references to sharedQueue from Advanced Tutorial sources 2011-09-08 09:38:26 -04:00
Blake Watters
6ed37f0eb9 Fix Cocoa 512 errors logged from RKRequestCache. fixes #246
The following changes were made:
* Added isCacheable to RKRequest
* Return nil for cacheKey on non-cacheable RKRequests
* Updated RKRequestCache to ensure attempts to cache uncacheable requests has no effect
* Added basic unit tests and expanded comments on some parts of the cache API
2011-09-07 22:39:57 -04:00
Blake Watters
2a89404f7d Return nil from needNewBodyStream: to avoid weirdness with connections being revived. refs #335 2011-09-07 21:37:11 -04:00
Parker
ccb3cb4332 Added license to files in the Three20 directory 2011-09-07 12:03:57 -04:00
Parker
990ab16a6b Added Apache License to files in Support directory
Didn't add license to: NSString+InflectionSupport.h,
NSString+InflectionSupport.m, RKParser.h
2011-09-07 12:02:29 -04:00
Parker
a58eb6dcf2 Added Apache License to files in Support/Parsers directory 2011-09-07 11:58:16 -04:00
Parker
c888af6f25 Added Apache License header to files in CoreData directory
Didn't add header to NSManagedObject+ActiveRecord.h,
NSManagedObject+ActiveRecord.m and RKManagedObjectCache.h .
NSManagedObject+ActiveRecord was adapted from someone else, and
RKManagedObjectCache has different code formatting. Will update those
once I get confirmation on them.
2011-09-07 11:55:17 -04:00
Parker
99250475ad added Apache License headers to all files in ObjectMapping directory 2011-09-07 11:31:01 -04:00