Blake Watters
7c5ad95816
Updated all example projects to reflect changes.
2012-01-20 10:21:19 -05:00
Blake Watters
560032fd6d
Additional documentation and miscellaneous test coverage.
2012-01-20 10:21:19 -05:00
Blake Watters
412b0f9756
Work in progress on cleanup
2012-01-20 10:21:18 -05:00
Blake Watters
fb41eb73ec
Work in progress on responsibility cleanup
2012-01-20 10:21:18 -05:00
Blake Watters
563f5e909b
Updated all example projects to build against the new project. Cleaned up header imports for flattened project structure
2011-12-02 09:26:36 -05:00
Parker
99250475ad
added Apache License headers to all files in ObjectMapping directory
2011-09-07 11:31:01 -04:00
Blake Watters
4299cab994
Added convenience accessors on RKObjectManager for the requestCache and requestQueue. Cleaned up some styling and normalized method names.
2011-09-06 11:36:50 -04:00
Blake Watters
d9d0f7a650
Eliminated the global sharedQueue in favor of allowing each RKClient to own its a private queue. This eliminates problems where multiple clients are tracking reachability notifications and mutating the suspension state on a single queue. If you want to use a single queue across multiple RKClient instances, you can assign a single queue to both and worry about suspension and reachability yourself. fixes #278
2011-09-03 15:52:45 -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
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
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
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
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
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
Blake Watters
1137aff165
Tweaks to comments
2011-06-16 17:15:07 -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
9299cabc11
Implemented flexible logging solution utilizing the excellent LibComponentLogging library.
2011-06-11 20:25:28 -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
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
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
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
Blake Watters
88a1b013fc
Merge remote branch 'origin/0.9' into core-data-cleanup
...
Conflicts:
Code/CoreData/CoreData.h
Code/CoreData/RKManagedObjectStore.h
Code/CoreData/RKManagedObjectStore.m
Code/CoreData/RKObjectSeeder.h
Code/CoreData/RKObjectSeeder.m
Code/ObjectMapping/RKObjectLoader.m
Code/ObjectMapping/RKObjectManager.m
Code/ObjectMapping/RKObjectMapper.m
RestKit.xcodeproj/project.pbxproj
2011-03-19 21:26:13 -04:00
Blake Watters
b9e4f57fb0
Work in progress factoring Core Data dependencies out of the Object Mapping layer
2011-02-13 01:19:37 -05:00
Adam Hinz
166eeeb566
Provide more generic constructors for the object store and object
...
manager
2011-02-05 15:31:47 -05:00
Blake Watters
39a77057ed
Removed saveObjectStore method on RKObjectManager, step toward separating Core Data from the base object mapping. RKObjectLoader now ensures that the object store is persisted appropriately before object loaders are sent
2011-01-21 00:56:17 -05:00
Blake Watters
3d2601f79c
Imported object store header and temporarily exposed a method until I can clean up the core data dependencies.
2011-01-20 23:01:02 -05:00
Jeremy Ellison
6a5ee2af7e
Revert "Remove per-file copyrights"
...
This reverts commit 91e7c6bb5e .
2011-01-12 15:27:19 -05:00
Jeremy Ellison
91e7c6bb5e
Remove per-file copyrights
2011-01-12 15:05:22 -05:00
Jeremy Ellison
634185f48a
RKResponse should start loading on didReceiveData: or didSendBodyData, whichever is called first.
...
This prevents didSendData RKRequestDelegate method from being called before didStartLoading.
Remove goOffline and goOnline support from RKObjectManager. This did not work in the current implementation.
2011-01-12 13:20:26 -05:00
Jeff Arena
e991ad7033
change RKRequest delegate didfinishload method signature to be a bit cleaner; added code to turn off the reachability observer when the app becomes inactive; changed online/offline state code to support an undetermined state at initial launch, so as to ensure we get all our proper notifications during first run; remove unnecessary debug logging from rkrequestqueue; removed three20 model code that was triggering a forced offline state, which currently does not have a recovery path (e.g. if the app is forced offline, we currently have no built-in mechanism to allow a force back online)
2010-12-08 09:45:26 -08:00
Jeff Arena
39f3d568e2
added reachability support at the manager and client level; added code to short circuit requests if offline; fixed issue with source parameter on loader related to passing managed objects across thread boundaries; added resource path property to the loader
2010-11-30 19:38:27 -08:00
Blake Watters
bd48ae37db
Changed globalClient and globalManager to sharedClient and sharedManager to be more in line with Cocoa framework. Marked old methods as deprecated.
2010-10-20 20:29:27 -04:00
Blake Watters
2fbdfb9c37
Work in progress
2010-10-19 14:27:17 -04:00
Blake Watters
d9748843ca
Normalized method names for loaderWith to objectLoaderWith for alignment with the delegate method signatures. Exposed objectLoader primitive used for constructing getObject/postObject/putObject/deleteObject and documented.
2010-10-18 15:56:36 -04:00
Blake Watters
bd93d43f94
Finished split into more logical components. Library now copies Headers to Build/RestKit and you can selectively link against the components your app needs. libRestKit.a contains everything from the core library.
2010-10-01 13:02:24 -04:00