Blake Watters
fb41eb73ec
Work in progress on responsibility cleanup
2012-01-20 10:21:18 -05:00
Blake Watters
254553dc7c
Initial implementation of RKObjectPaginator
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
Blake Watters
d75fd7d0b0
Refactored RKReachabilityObserver to work around issues with iOS 5 + host reachability and expand its capabilities. closes #408
...
* Added support for monitoring by IP address or hostname as well as local Wifi and Internet access generally
* Eliminated usage of synchronous calls to obtain reachability flags during status checks
* Reworked SystemConfiguration reachability callback to cache flags
* RKClient now monitors Internet access instead of hostname based reachability by default. baseURLReachabilityObserver eliminated in favor of reachabilityObserver. It is now a retain property that can be customized
* Queue suspension is now tied to the reachability observer rather than baseURL mutation
2011-10-19 08:51:37 -04: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
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
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
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
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
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
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
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
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
5f7b8559cd
Only build a serialization if we are a POST or a PUT
2011-06-15 10:29:11 -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
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
ff2367d284
Moved query path appending to RKPathAppendQueryParams for convenience. Deprecated RKClient flavor.
2011-04-27 09:05:18 -04:00
Blake Watters
2109fae1ba
Finished cleaning up Core Data support. Happy with the new organization
2011-03-19 22:06:51 -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
f83dc271f9
Finished cleaning up dependencies on Core Data. RKTwitter now builds without linking against Core Data or libRKCoreData.a
2011-02-13 02:04:51 -05: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
07796df253
Refactored the Rails router to respect properties specified by the model objects. Introduced new support to allow models to modify RESTful object loaders just before they are sent. Sample app completely works. Really fucking happy with how this is turning out!
2011-01-21 00:15:02 -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
Blake Watters
319f7355af
Working on new example
2011-01-16 21:43:21 -05:00
Jeremy Ellison
471a4ad137
RKObjectLoader should be set up with the object managers client, not the shared one.
...
This fixes support for apps using multiple baseURLs via multiple clients or managers.
2011-01-13 13:41:52 -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
cf03116f54
fix for posting online/offline notifications
2010-12-11 01:55:21 -08: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
6249ece2bc
Merge branch 'reachability-queue-three20' of git://github.com/twotoasters/RestKit into reachability-queue-three20
...
Conflicts:
Code/Network/RKRequest.m
RestKit.xcodeproj/project.pbxproj
2010-12-01 21:06:54 -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
Jeff Arena
7e1e1807bd
dry-up object store saves on the manager; use an ivar over the request userdata for storing the source on the manager
2010-11-09 09:35:13 -08:00
Jeff Arena
32fe2d3e24
Merge branch 'master' of git://github.com/twotoasters/RestKit
2010-10-21 11:29:57 -04:00
Jeff Arena
10d00cf14b
clear
2010-10-21 11:29:20 -04: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
5440420aa8
Check if objectStore is set before saving
2010-10-20 14:54:48 -04:00
Blake Watters
b1800e3975
Clean up references to RKModelManager
2010-10-20 13:57:20 -04:00
Blake Watters
3dff8b0f0d
Merge branch 'master' of github.com:twotoasters/RestKit into managedobjectcleanup
...
Conflicts:
Code/ObjectMapping/RKObjectLoader.m
2010-10-19 14:28:18 -04:00
Blake Watters
2fbdfb9c37
Work in progress
2010-10-19 14:27:17 -04:00