Commit Graph

249 Commits

Author SHA1 Message Date
Blake Watters
3b89382da7 Fix broken test around creation of request serialization 2011-06-30 13:11:31 -04:00
Blake Watters
7053a8ca97 Add support for sending objects of one type and getting back another. Target object has been disambiguated into sourceObject and targetObject
and act independently with regards to serialization and destination mapping. When you leverage the getObject:mapResponseWith: flavor of methods,
the type of your sourceObject is checked with the destination type of the object mapping. If they agree, it is assumed that you are trying to update
the object with the results of the mapping and targetObject is set appropriately. If they do not match, the targetObject is set to nil so that new
objects will be loaded. closes #161, #168
2011-06-30 10:33:39 -04:00
Blake Watters
2ac45f5ccc Refactored object loaders to provide easier support for non-nested JSON responses. There are new flavors of getObject:, postObject:, etc.
that allow the developer to explicitly specify the object mapping to use for processing the response. closes #168
2011-06-30 10:33:39 -04:00
Blake Watters
e18c1f2811 Merge pull request #181 from dhilus/master
YAJL serialization option modified so NSURL properties are serialized as String.
2011-06-30 05:18:13 -07:00
Rémy SAISSY
69460fdc4f YAJLGenOptionsIncludeNone -> YAJLGenOptionsIncludeUnsupportedTypes thus enabling NSURL properties to be serialized as string. 2011-06-30 09:40:41 +02:00
Blake Watters
2e7adbdc1e Restore the managed object cache functionality and add test coverage so it does not break again. fixes #167 2011-06-29 22:08:35 -04:00
Blake Watters
d57b784c30 Don't delete the managed object unless we were responsible for saving it in the first place. closes #125 2011-06-29 21:04:17 -04:00
Blake Watters
6faa525344 Added specs and support for either failing out the mapping operation or skipping over an attribute depending on key/value validation response. If NO is returned and a validation error is returned, the mapping operation will fail. If NO is returned without an error, the attribute will be skipped and a warning will be logged. You can also mutate the values. closes #166 2011-06-29 15:07:43 -04:00
Blake Watters
4b4d3d1af6 Remove dead RKRailsRouter code. fixes #178 2011-06-29 14:08:21 -04:00
Blake Watters
c97af0802b Added new spec for RKURL. Implemented encoding of plus characters. fixes #170 2011-06-29 13:59:40 -04:00
Blake Watters
2a8ece97c1 Improvements to reachability, the request queue, logging throughout the network layer, decoupling of components via notifications, reliability improvements for unit tests in the cache layer. Improved thread-local cleanup routines inside the managed object store. Changing base URL's is now more reliable. fixes #171, #158, #113, #104, #102 2011-06-29 13:28:14 -04:00
Blake Watters
1cfa273224 Added new logging to the RKRequestQueue for inspecting what is happening. Eliminated use of copy during iteration of the request queue to avoid issues with re-entrant invocations of the queue resulting in the queue becoming starved. Fixed a number of flaky tests by making the RKSpec helpers stub out network availability. closes #164 2011-06-28 18:18:49 -04:00
Blake Watters
3dfbaf1810 Updated to support setting default value instead of nil when an attribute is missing in the payload. For Core Data backed models, we consult the entity definition to obtain the default value. closes #117 2011-06-28 15:22:04 -04:00
Blake Watters
851df3bcba Changed signature of willMapData: to allow you to completely replace the mappableData. 2011-06-28 11:46:03 -04:00
Blake Watters
0949337749 Allow modification of the data in objectLoader:willMapData: by creating a mutable copy of the parsed data if the delegate method is implemented. 2011-06-27 16:37:55 -04:00
Blake Watters
0ca4a0feea Added unit tests to loaders to investigate loading an array bug reports 2011-06-23 08:49:20 -04:00
Blake Watters
64db97ce60 Helper methods for retrieving attribute and relationship mappings by attribute/relationship keyPath. Useful for customizing serialization mappings that were built using inverseMapping. 2011-06-22 10:43:42 -04:00
Blake Watters
8ad1a84281 Reworked object loader to check if a response is mappable even if it is an error. We had an assertion failure that could be triggered by trying to load a remote error payload in a non-mappable format (i.e. text/html). 2011-06-21 13:27:15 -04:00
Blake Watters
3204682f72 Added object mapping management to the mapping provider for folks who don't have keyPaths. Deprecated setMapping:forKeyPath: in favor of setObjectMapping:forKeyPath: for consistency with the other method signatures. 2011-06-20 10:49:40 -04:00
Jeremy Ellison
de684989db Fix memory leaks in -reset on RKObjectLoader and RKManagedObjectLoader. 2011-06-20 09:12:56 -04:00
Blake Watters
3bf4b7bc0f Implemented nested mapping for structures similar to the BuildBot JSON structure. fixes #112 2011-06-17 15:36:28 -04:00
Jeremy Ellison
9073b25988 Merge branch 'master' of github.com:twotoasters/RestKit into restkit-sprint 2011-06-16 19:06:25 -04:00
Duncan Lewis
718c67039a Project updates 2011-06-16 18:29:22 -04:00
Blake Watters
323d5e30b1 Add support for mapping from NSNumber to NSDate by coercing to a time interval since 1970. fixes #141 2011-06-16 17:33:21 -04:00
Blake Watters
3dd7361116 Pushing code up for Jeremy 2011-06-16 17:11:13 -04:00
Blake Watters
a75ace87d0 Deprecated RKObjectManager methods that use queryParams. Added NSString category for achieving the same results without bloating the API 2011-06-16 17:04:34 -04:00
Blake Watters
e65ea71b20 Updates to make parsedBody: implementation ready for merge. Migrated all remaining specs to RKSpec so failures don't cause crashes when you use the Hamcrest helpers. closes #153 2011-06-15 10:47:45 -04:00
Blake Watters
2493828414 Make imports of RKParser relative so they resolve correctly outside of the library project 2011-06-13 08:33:34 -04:00
Blake Watters
a41917af66 Ensure parsers are in the public dir 2011-06-12 18:52:11 -04:00
Blake Watters
ce9f49a061 Move Three20 headers into Public 2011-06-12 15:01:55 -04:00
Blake Watters
8e5fa664e8 Cleaned up miscellaneous artifacts from squashing object mapping 2.0 2011-06-11 20:34:10 -04:00
Blake Watters
8aef0a36b5 UISpec update 2011-06-11 20:27:34 -04:00
Blake Watters
27ea307816 Fix crash in RKCatalog. Suppress warning about symbol visibility during linking. 2011-06-11 20:27:33 -04:00
Blake Watters
dafe3486e9 Added cache component to logging. Chased down some mystery failing tests. Added thorough logging to RKRequestCache. 2011-06-11 20:27:33 -04:00
Blake Watters
9299cabc11 Implemented flexible logging solution utilizing the excellent LibComponentLogging library. 2011-06-11 20:25:28 -04:00
Blake Watters
69ded29245 Improved Three20 integration by leveraging object mapping to instantiate TTTableItems 2011-06-11 19:33:42 -04:00
Blake Watters
f2ceefa012 Merge Request Queue (See issue #75):
* Introduces RKRequestCache for cacheing responses (supports ETag conditional GET, use cache if available, use cache on error, etc.) closes #75
    * Updates to Three20 layer to eliminate need for intermediary TTTableItem classes closes #76
    * Fixes to ensure iOS 3.x compatability:
        * Switched compiler to Clang
        * Updated conditional checks for UIBackgroundTask symbols to ensure runtime safety on iOS 3.x
        * Removed unnecessary linkage against UIKit and CoreFoundation from library targets
    * Fix for issue where RKRequest objects could become stuck in infinite loop within RKRequestQueue loadNextInQueue if you start
      a request and then cancel immediately. On cancel only decrement loadCount if the request has start loading. refs #122
2011-06-11 19:28:44 -04:00
Blake Watters
9416ad9cf6 Added gcov to specs. Added HTTP Basic Authorization optimization 2011-06-11 19:27:18 -04:00
Blake Watters
f3c0995d5e Implementation of Object Mapping 2.0 design:
* Removed RestKit from inheritance hierarchy
  * Mappings are implemented as concrete classes
  * Mapper is much more flexible & powerful
  * Much more robust error handling
  * Serialization is reimplemented as an object mapping operation
  * Added ability to serialize to JSON natively
  * Reworked Core Data integration
  * Simplified the codebase substantially
2011-06-11 19:26:56 -04:00
Victor Kryukov
eca655abbd Add Three20.bundle to make sure TTAlert works 2011-06-11 14:47:41 +04:00
Blake Watters
4321da03b1 Expanded specs and began migrating all the content for testing out in the Fixtures directory. Fixtures is now the root for the Sinatra app and there are new helpers in RKSpecEnvironment.m. Added specs for several users use cases from the mailing list. Introduced a new warning when attempting to map did not set any properties. 2011-05-02 20:57:18 -04:00
Blake Watters
87d0cd13de Added support for registering object class mappings as keyPaths in addition to element names. closes #82 2011-04-28 13:09:50 -04:00
Blake Watters
308b6c5dd2 Updates to RKObjectLoader to fix issues where keyPath was not always respected and willSendForObjectLoader: not invoked as expected. Expanded spec coverage to fix these issues. fixes #80, fixes #81 2011-04-28 00:05:55 -04:00
Blake Watters
9b3428a446 Migrated UISpecRunner code into Two Toaster UISpec fork for reuse across projects. 2011-04-20 17:14:04 -04:00
Robert McNally
b7df8e1f0a Eliminate use of 'class' in method signatures. It is a reserved word in Objective-C++. Replaced with 'objectClass'. fixes #58 2011-04-19 14:22:04 -04:00
Blake Watters
381ccadbe2 Added support for spinning the Network activity indicator when busy 2011-04-19 09:59:57 -04:00
Blake Watters
7837e245d9 Implemented support and tests for queue processing delegate methods. 2011-04-19 09:38:25 -04:00
Blake Watters
1817fcccd8 Added i386 architecture back to the Three20 target 2011-04-15 15:11:06 -04:00
Blake Watters
c9e0d3ffdd Remove legacy script from Doxygen. refs #48 2011-04-14 23:15:05 -04:00
Blake Watters
9af6a59c79 Initial implementation of documentation generation using the Appledoc parser. refs #48
* Cleaned up various mismatches in method signatures that were preventing documentation generation
* Removed naked ampersands from comments as they cause XML parser failures during docset generation via appledoc
2011-04-14 22:55:58 -04:00