Commit Graph

723 Commits

Author SHA1 Message Date
Blake Watters
948cc85873 Added new pre-flight delegate callbacks for customization of RKRequest and RKObjectLoader instances before dispatch 2012-02-15 12:06:24 -05:00
Blake Watters
789b0b99eb Implemented support for hydrating to-many relationships. closes #284 2012-02-15 11:09:21 -05:00
Blake Watters
efdf5157d3 Added documentation for RKClient block methods 2012-02-14 14:04:30 -05:00
Blake Watters
9d9dac257b Added documentation for wasSentToResourcePath:method: 2012-02-13 13:25:28 -05:00
Blake Watters
4142ffdb42 Reorganization and cleanups of Unit Tests
* Reorganized tests to accommodate split into Logic & Application.
* Eliminated 'Spec' naming in favor of 'Test' as the suite is entirely based on SenTest.
* Pulled majority of testing support classes up into the library and documented them.
* Introduced RKApplicationTests app for running the RKTableController UI tests
2012-02-10 17:32:23 -05:00
Blake Watters
6a762105a8 Remove Three20 managed object code 2012-02-10 16:30:59 -05:00
Blake Watters
36dfd9528e Change managed object context merge policy from NSOverwriteMergePolicy to NSMergeByPropertyStoreTrumpMergePolicy 2012-02-10 16:30:58 -05:00
Christopher Swasey
983b7913a2 Skip handling individual change notifications if we're using a sortSelector and just reload the table afterwards 2012-02-10 16:30:58 -05:00
Blake Watters
8670b233e0 Switched retrieval of table views cells during row selection events to lookup by indexPath on the tableView
rather than through table controller plumbing
2012-02-10 16:30:58 -05:00
Blake Watters
5ae15be560 Perform row deselection before processing onSelectCell events as the table may be reloaded/changed by the event and cause a crash during deselection 2012-02-10 16:30:58 -05:00
Jeff Arena
1e43c58039 Fixes for issues identified during static analysis 2012-02-10 16:30:58 -05:00
Blake Watters
a5cb5f5060 Implemented helper functions for converting between Strings and RKRequestMethod enum types. 2012-02-10 16:30:58 -05:00
Jeff Arena
b18479f448 Remove duplicate RKAbstractTableController API, objectAtIndexPath: in favor of the existing objectForRowAtIndexPath: method. Add empty implementation of RKTableView class. Pull in UDTableView implementation into Vendor/ and use as a base class for our new RKTableView class, enabling multiple selection support in pre-iOS 5 tableViews. 2012-02-10 16:30:57 -05:00
Jeff Arena
fdd3f4e1e5 Roll back errant fix for cell reuse issues. 2012-02-10 16:30:57 -05:00
Blake Watters
66235530d4 Handle deletion of Managed Objects enclosed in an RKForm 2012-02-10 16:30:57 -05:00
Jeff Arena
4196b66f9d Fix issue with _arraySortedFetchedObjects in cases where updates were received via the NSFetchedResultsControllerDelegate and were being then not being applied to the sorted array 2012-02-10 16:30:57 -05:00
Jeff Arena
d20f44804e Move a few methods from RKTableController to RKAbstractTableController and added their implementations in RKFetchedResultsTableController. Fixed a bug regarding cell reuse in RKFetchedResultsTableController. Added the ability to set the NSFetchRequest on the RKFetchedResultsTableController, instead of requiring that it be looked up in the RKManagedObjectCache via a provided resourcePath. 2012-02-10 16:30:57 -05:00
Greg Combs
a5da9d30e3 Exposes removeAllSections:recreateFirstSection in RKTableController.h 2012-02-10 16:30:57 -05:00
Greg Combs
a4f685694a Added a delegate method tableControllerDidFinishFinalLoad:
The method name stinks, but we need a callback in didFinishLoad, one that gets called when done loading loading from Core Data, static, or from the network.
2012-02-10 16:30:56 -05:00
Greg Combs
8a77a18465 Added setObjectMappingForClass:
Since the objectLoader isn't exposed, we needed a way to apply object mapping by class to complement mapping by key path.
2012-02-10 16:30:56 -05:00
Blake Watters
9baed401ca Revert "Added momentary/fixed state for table cell selection, useful for static main menu items."
This reverts commit 635e9820168f73c0c469666f62c3862436d44a32.
2012-02-10 16:30:56 -05:00
Jeff Arena
8ec9ac811e Remove cell param from cellMapping heightOfCellForObjectAtIndexPath block, to avoid issues with and infinite loop. Change a few form methods to comply with tableController nomenclature. Fix broken specs and issues with tableController naming conventions in UI specs. 2012-02-10 16:30:56 -05:00
Jeff Arena
1617dd3ac4 Remove mutual exclusion check between onSelectCell and onSelectCellForObjectAtIndexPath block callbacks 2012-02-10 16:30:56 -05:00
Jeff Arena
9e37304411 Fix issue with cell reuse. Fix issue with cell reuseIdentifier not behaving according to header documentation. Fixed some issues with the tableController specs. Add a cellMapping property to control automatic deselection of a tableView cell 2012-02-10 16:30:55 -05:00
Greg Combs
59d3614ee2 Added momentary/fixed state for table cell selection, useful for static main menu items. 2012-02-10 16:30:55 -05:00
Jeff Arena
d652452481 Add handling for animating out the empty item when going from an empty table to a populated table. Fixes an issue where table animation was breaking due to unbalanced insert/deletes when the emptyItem was showing before a table update. 2012-02-10 16:30:55 -05:00
Jeff Arena
61480a5b4c Add online check to determine whether or not swipe to delete should be enabled 2012-02-10 16:30:55 -05:00
Jeff Arena
847ed50bc0 Reduce log level for a log entry in RKManagedObjectMappingOperation 2012-02-10 16:30:54 -05:00
Blake Watters
3d0f0ab39e Introduced the RKTableController component for iOS.
RKTableController provides a flexible, integrated system for driving iOS table views using
the RestKit object mapping engine. Local domain objects can be mapped into table cells within a
collection or presented for editing as part of a form. There are three flavors of table controllers
available:

* Static Tables: RKTableController can be used to render simple static tables that are composed of RKTableItems
presented in RKTableSections. Table items can quickly be built and added to a table without a backing model
or can have content object mapped into them for presentation.
* Network Tables: RKTableController can also render a table with the results of a network load. The typical use
case here is to have RestKit retrieve a JSON/XML payload from your remote system and then render the content into
a table.
* Core Data Tables: RKFetchedResultsTableController can efficiently drive a table view using objects pulled from a
Core Data managed object context. Typical use-cases here are for the presentation of large collections that are
pulled from a remote system, offering offline access, or speeding up a UI by using Core Data as a fast local cache.

RKTableController supports a number of bells and whistles including integrated searching/filtering and pull to refresh.
2012-02-10 16:30:54 -05:00
Brian Morton
923f2efa1d Clean up documentation and organize RKResponse header.
* Add appledoc section headers and reorganize methods/properties to fit into the sections.
* Fill in missing documentation, parameter definitions, and return values.
* Fix documentation formatting and styling.
* Clean up asterisk placements in variable declarations.
2012-02-09 14:56:10 -08:00
Brian Morton
0eebd6c3f7 Fix formatting in RKNotifications header.
* Clean up asterisk spacing.
* Format comment block to be consistent.
2012-02-09 13:42:24 -08:00
Brian Morton
9d5e142d10 Clean up documentation and organize RKRequestQueue and RKRequestQueueDelegate header and implementation.
* Add appledoc section headers and reorganize methods/properties to fit into the sections.
* Fill in missing documentation, parameter definitions, and return values.
* Fix documentation formatting, styling, and placement.
* Remove appledoc signficant asterisk in implementation comment.
2012-02-09 03:02:17 -08:00
Brian Morton
642bd793ca Document and organize RKRequestCache header.
* Document entire RKRequestCache header.
* Add appledoc section headers and reorganize methods and properties to fit into sections.
* Clean up asterisk placements in variable declarations.
2012-02-09 02:19:51 -08:00
Brian Morton
e3841ea23c Clean up documentation and organization in RKRequestSerialization header and implementation.
* Add/change appledoc section headers to be consistent.
* Reorganize methods and properties to fit under their respective sections.
* Fill in missing parameter definitions and return values.
* Fix documentation formatting, styling, and placement.
* Clean up asterisk placements in variable declarations.
2012-02-09 01:41:51 -08:00
Brian Morton
55dd517e2c Clean up documentation and organization in RKRequest header.
* Add/change appledoc section headers to be consistent.
* Reorganize methods and properties to fit under their respective sections.
* Fix documentation whitespace to be consistent.
* Fill in missing documentation, parameter definitions, and return values.
* Fix documentation formatting, styling, and placement.
* Clean up asterisk placements in variable declarations.
* Fix indentation whitespace.
2012-02-09 01:31:35 -08:00
Brian Morton
308ec1e493 Clean up documentation and formatting in RKURL header and implementation.
* Add documentation and example to overview.
* Add appledoc section headers.
* Fill in missing documentation, parameter definitions, and return values.
* Clean up whitespace inconsistencies.
* Remove appledoc significant asterisk in non-documenting comment.
2012-02-09 00:05:21 -08:00
Brian Morton
764dbdb1dc Clean up documentation and formatting in RKRequestSerializable header.
* Reorganize documentation to be included in overview.
* Clean up asterisk placements in declarations.
* Add appledoc section headers.
* Fill in missing documentation, parameter definitions, and return values.
* Clean up whitespace inconsistencies.
2012-02-09 00:05:21 -08:00
Brian Morton
4eb9de3a34 Clean up documentation and formatting in RKReachabilityObserver header.
* Clean up asterisk placements in variable declarations.
* Add/fix appledoc section headers.
* Fill in missing documentation, parameter definitions, and return values.
* Clean up whitespace inconsistencies.
* Reorganize section layout for documentation clarity.
2012-02-09 00:05:21 -08:00
Brian Morton
27dbacca03 Clean up documentation and formatting in RKParamsAttachment header.
* Add documentation to overview.
* Clean up asterisk placements in variable declarations.
* Add appledoc section headers.
* Reorganize methods and properties for documentation clarity.
* Fill in missing documentation, parameter definitions, and return values.
* Clean up whitespace inconsistencies.
2012-02-09 00:05:21 -08:00
Brian Morton
a0719ac4a5 Clean up documentation and formatting in RKParams header.
* Add documentation and example to overview.
* Clean up asterisk placements in variable declarations.
* Add appledoc section headers.
* Fill in missing documentation, parameter definitions, and return values.
* Clean up whitespace inconsistencies.
2012-02-09 00:05:21 -08:00
Brian Morton
2a787e92a8 Clean up spacing in RKNotifications constants. 2012-02-09 00:05:21 -08:00
Brian Morton
1fa3ea400d Clean up documentation and formatting in RKOAuthClient header and implementation.
* Add example code to overview.
* Move <RKRequestDelegate> implementation detail to RKOAuthClient.m to clean up documentation
* Add missing documentation to all properties and methods.
* Rearrange sections for documentation purposes.
* Format blocks of documentation to match the project standard.
* Cleanup spacing in @property lines.
* Remove delegate assignment in initializers to be consistent with the rest of the project.
* Fix spec instances where the initializer with the delegate was used.
2012-02-09 00:05:21 -08:00
Brian Morton
e1f4e452e9 Clean up documentation and organization in RKClient header.
* Reorganize blocks of deprecated methods to move them to the bottom of the file.
* Add/change appledoc section headers to be consistent.
* Reorganize methods and properties to fit under their respective sections.
* Fix documentation whitespace to be consistent.
* Fill in missing documentation, parameter definitions, and return values.
* Clean up asterisk placements in variable declarations.
2012-02-09 00:05:21 -08:00
Brian Morton
58102533f1 Fixes an issue where the timeoutTimer wouldn't work for a synchronous request. Fixes #551.
* Removed the timer creation in RKRequest sendSynchronously.
* Pass the timeoutInterval to the NSURLRequest that is responsible for the synchronous request.
* Check if the error returned by NSURLRequest is NSURLErrorTimedOut and return an RKRequestConnectionTimeoutError if necessary.
* Add test for making sure the timeout works properly for a synchronous request.
2012-02-08 20:06:53 -08:00
Blake Watters
d4e3c0d559 Remove Appledoc significant asterisk in non-documenting comment 2012-02-02 09:21:00 -05:00
Brian Morton
f92fbb9f8e Fix issue that caused appledoc to fall over while building documentation.
There's currently a known issue for appledoc (https://github.com/tomaz/appledoc/issues/147) that causes it to fall over when it encounters a method declaration in an implementation that is missing a type (even if its in the header file).  While this is valid Objective-C, lets update this to allow appledoc to go on its merry little way.

* Fix 1 declaration relating to atKeyPath: in RKObjectMapper.m
* Fix 2 declarations relating to atKeyPath: in RKObjectMapper_Private.h
* Fix 1 declaration relating to atKeyPath: in RKObjectMappingOperation.m

All declarations were changed to declare keyPath as an (NSString *).
2012-01-28 13:40:38 -08:00
Christopher Swasey
b3c5ba62d2 Replace the XMLParser with one based on Insert-Witty-Name/XMLReader 2012-01-24 12:01:47 -05:00
Blake Watters
a719843c91 Drop the client prefix from the SSL validation properties added to RKRequest 2012-01-24 11:47:31 -05:00
Blake Watters
9e0149fc0f Deprecate RKMakePathWithObjectAddingEscapes and cleanup usage within the Router 2012-01-24 09:51:05 -05:00
Christopher Swasey
7ea39690c5 Decouple RKResponse from sharedClient Fixes #430 2012-01-23 18:21:22 -05:00