Commit Graph

481 Commits

Author SHA1 Message Date
Cody Rayment
46fc65efb3 Allow numbers to map to strings 2011-08-10 00:08:31 -06:00
Ray Fix
0a90ce964d fix small doc typo 2011-08-08 15:15:49 -07:00
Arne Harren
351006a4ea Remove trailing semicolons from RKLog macros. 2011-08-07 13:31:00 +02:00
Blake Watters
946c558675 Updated appledoc binary and templates. Fixed ampersands in some comments that were blocking Docset generation. Updated Appledoc rake tasks to reflect the exit statuses emitted by appledoc. Pushed 0.9.3 appledoc to restkit.org 2011-08-02 08:42:59 -04:00
Blake Watters
ca91226129 Fix for incorrect delegate invocation on cache load. fixes #267 2011-08-01 21:54:04 -04:00
Blake Watters
4e03ba7bef Renamed Polymorphic mapping to dynamic mapping after consulting with the community. Dropped abstract superclass in favor of a RKObjectMappingDefinition protocol. Caught missing cases with dynamic object mapping + targetObject. Updated docs and method signatures to reflect the updates. 2011-07-31 19:37:42 -04:00
Blake Watters
eab35ef3f7 Updated polymorphic mapping to use valueForKeyPath. Slight updates to the documentation. refs #105 2011-07-30 16:18:14 -04:00
Blake Watters
670234b775 Added support for polymorphic object mapping (Github #105, #244). This enables you to dynamically map objects to different destination classes or using different mapping strategies via configuration or callbacks. See Docs/Object Mapping.md for details.
Other changes include:
* Eliminated the RKObjectFactory protocol and implementations. Object mapping instances themselves are
now responsible for instantiating target objects for mapping.
* Introduced RKObjectAbstractMapping superclass for RKObjectMapping and RKObjectPolymorphicMapping.
* Updated example applications to use block object loaders (RKTwitter and RKTwitterCoreData)
* Refactored method signatures of RKObjectMapper, RKObjectMapping, and RKObjectMappingProvider to reflect the
existence of abstract mapping types. This was necessary to make polymorphic mappings integrate cleanly.
* Fixed overlap in RestKit error domains between network and object mapping. fixes #208
2011-07-30 16:00:36 -04:00
Evan Cordell
072e1ee58b Made the appropriate changes to the RestKit project to load NextiveJSON, added record to RKParserRegistry 2011-07-28 18:00:41 -04:00
Evan Cordell
f73888e4a3 Added NextiveJSON as a JSON parser. 2011-07-28 17:53:19 -04:00
Blake Watters
f547439254 Merge pull request #247 from rehos/patch-1
Use the actual class instead of hardcoded RKObjectManager class
2011-07-28 14:27:20 -07:00
Blake Watters
d7c87be60e Merge pull request #252 from rehos/patch-2
RKJSONParserSBJSON serializes itself instead of the object
2011-07-28 13:45:51 -07:00
Blake Watters
46ab501cab Introduced loadObjectsAtResourcePath:delegate:block: helper 2011-07-28 16:41:41 -04:00
Blake Watters
e6e528fcf1 Improved the flexibility of the block loaders significantly by allowing them to override the object mapping and routing selection. Made sendObject:method:delegate:block private and introduced public sendObject:delegate:block method instead. Wrote some basic specs for overriding the router. 2011-07-28 13:56:16 -04:00
rehos
d46dcef8fe RKJSONParserSBJSON serializes itself instead of the object 2011-07-27 21:29:37 +03:00
Blake Watters
afc6167554 Merge pull request #248 from dhilus/master
Requests were not sent at all after 5 requests with 40x HTTP Code response.
2011-07-27 05:44:33 -07:00
Blake Watters
d5cc021014 Merging SSL certificate validation support from #131 2011-07-27 08:40:33 -04:00
Blake Watters
bd29ee038b Added non-underscored class name for NSCFBoolean matches in transformation from Boolean to String 2011-07-27 08:00:15 -04:00
Blake Watters
6e87cd5ffd Add missing release for rootKeyPath ivar 2011-07-27 07:59:08 -04:00
Rémy SAISSY
2bdf855fbe finalizeLoad:error: call added in handleResponseError thus avoiding non finalized requests when receiving 40x HTTP response to requests. 2011-07-26 17:45:39 +02:00
rehos
b9d29b8759 Use the actual class instead of hardcoded RKObjectManager class in objectManagerWithBaseURL: 2011-07-26 16:01:43 +03:00
Blake Watters
ee5457105e Fix memory leak of mapping provider 2011-07-25 17:58:03 -04:00
Blake Watters
7c6507cacf Update the mutable URL request when switching out the URL or resourcePath 2011-07-24 19:15:45 -04:00
Blake Watters
406c5a1f7c Added support for mutating URL and resourcePath on RKRequest and RKObjectLoader. closes #242 2011-07-24 16:51:19 -04:00
Blake Watters
a0cb33d391 Updates comments on inferMappingsFromObjectTypes and add documentation to the Object Mapping document. Defaulted it to off
as it can complicate things for KVC mappable data.
2011-07-24 12:28:42 -04:00
Blake Watters
3a5354c4a0 Added specs around behavior of empty mappable payloads and RKObjectLoaderDelegate invocations. Fixed issue where empty hashes ({}) would result in no delegate methods being invoked. fixes #225 2011-07-24 01:25:50 -04:00
Blake Watters
570b13ca07 Updated Object Mapping documentation, added support for inferring object mappings based off of the type of the object used in postObject:, putObject:, etc. Made KVC validation optional. 2011-07-23 23:47:03 -04:00
Blake Watters
80366afa84 Added Object Mapping block helpers to RKObjectManager and RKObjectMapping. These enable you to perform ad-hoc object mapping very easily. Extended RKObjectRouter to match on superclasses if no specific route is found. This is helpful when using mocked objects with frameworks like Kiwi. fixes #238 2011-07-23 23:04:16 -04:00
Blake Watters
d12568580d Merge pull request #234 from GateGuru/unit-testing-and-queue-fixes
Unit testing and queue fixes
2011-07-22 05:15:01 -07:00
Blake Watters
f1b0815e1a Fixes to some violations of the contracts around delegate methods and background threads 2011-07-21 22:01:47 -04:00
Blake Watters
b778af11d7 Fix for issue where authentication challenges without credentials would cause stream errors when coupled with an RKParams (NSInputStream) based params payload 2011-07-21 21:47:02 -04:00
Blake Watters
7246afc998 Fixes to enable RestKit Core Data to be easily unit tested from a Unit Testing bundle. Improved thread safety in the request queue and fixed an issue where requests dispatched from background threads would not get callback methods due to thread termination. The request queue now guarantees requests are sent from the main thread. 2011-07-21 11:33:17 -04:00
Blake Watters
ae29401841 Added specs for zero-length Content-Length header when params is nil or empty 2011-07-20 22:56:22 -04:00
Victor Kryukov
a40dcba0f9 Preserve trailing slash in resource path 2011-07-16 18:39:44 +04:00
Blake Watters
40eb842dcc Store new objects by lookupValue instead of primaryKeyValue. This avoids creation of duplicated objects the are manufactured by findOrCreateInstanceOfEntity: 2011-07-07 22:40:46 -04:00
Blake Watters
73fb461a8b Reworked object mapping behaviors to better accommodate situations where the server side responds with a successful status code and a payload that does not contain any mappable attributes or relationships. We now consider this to be successful. If a mapping operation is performed that does not result in any mappings being applied, it will return NO without setting an error. If an instance of RKObjectMapper is invoked that does not find any mappable content in the payload, this will result in an unmappable content error. The object loader guards against this by not attempting to map any empty payloads. This should ensure that you only get the unmappable content error if you have asked RK to load and map a payload it cannot find an object mapping for. 2011-07-07 09:53:46 -04:00
Blake Watters
6de429051b Merge pull request 196
commit 802d47753c067c6e84463e7aee7bae5454c9520b
Author: Cédric Luthi <cedric.luthi@gmail.com>
Date:   Thu Jul 7 02:56:09 2011 +0200

    Use stringByAppendingPathComponent: for concatenating paths
2011-07-06 22:09:01 -04:00
Blake Watters
c171bed7d3 Don't generate an unmappable content error if a successful status code is returned along with an empty response body. This enables the use of the status code to indicate success without any content for mapping. In these cases, we wrap the targetObject of the loader into a RKObjectMappingResult at the @"" keyPath so that the delegates are invoked as expected. closes #189 2011-07-06 22:01:10 -04:00
Blake Watters
42067b9036 Avoid exception from nil errors during object loader error reporting. fixes #191 2011-07-06 17:04:18 -04:00
Blake Watters
c7d8d0db3b Fix and test coverage for base URLs containing a path 2011-07-06 15:57:05 -04:00
Blake Watters
6376274900 Fixes for URL encoding of paramters in GET request. closes #193 2011-07-06 15:27:40 -04:00
Blake Watters
2b8379cac3 Fix for missing prototype warnings due to not including void in the parameters list for C functions that take no arguments. 2011-07-06 10:10:21 -04:00
Blake Watters
82ce444489 Unwind nil behavior introduced in previous commit and add test coverage for asObject behaviors. 2011-07-05 17:22:27 -04:00
Blake Watters
dddc4c3d0a Fix for crash when coercing an empty object mapping result set into a singular result with asObject. closes #190 2011-07-05 16:56:34 -04:00
Blake Watters
e86507f4ed Bug fix for potential invocation of setObject:forKey: with a nil key value 2011-07-05 16:30:16 -04:00
Blake Watters
348e86cbc8 Fix for inappropriate suspension of the main queue when using an IP address instead of a hostname. 2011-07-05 16:23:38 -04:00
Blake Watters
f0e8e8d44f Coerce primary keys to strings in the thread-local lookup cache to handle lookups for numeric or string keys coming back in the JSON 2011-07-02 15:03:08 -04:00
Blake Watters
546eb627cd Respect the root keyPath when constructing a temporary object mapping provider. Covers the case where an object mapping targeting nested content is being directly specified. 2011-07-02 11:04:56 -04:00
Blake Watters
aa6102f022 Cleaning up analyzer warnings in the cache 2011-07-01 10:00:18 -04:00
Blake Watters
72f26690ed Fixing crash from over-release of RKParams. 2011-06-30 17:19:12 -04:00