Commit Graph

348 Commits

Author SHA1 Message Date
Blake Watters
879ffd73e6 Add support for deleting Core Data managed objects that fail validation out of the mapping context. This enables you to silently drop mapping for managed objects that fail validation. fixes #691 closes #694 2013-01-01 23:56:58 -05:00
Blake Watters
28887d3384 Add support for deletion of mapped objects by predicate. closes #1109 2013-01-01 15:27:01 -05:00
Blake Watters
9dc08ca27b Drop instancetype from init methods since the compiler will infer it 2013-01-01 15:27:01 -05:00
Blake Watters
5c21e52829 Update Dynamic Mapping API's to match the rest of the 0.20.x style. Introduce support for predicate based dynamic matching.
* Rename RKDynamicMappingMatcher to RKObjectMappingMatcher since it is not strictly coupled to dynamic mapping and works with object mappings.
* Rework matchers into using a class cluster style to enable flexible subclassing to introduce additional matchers.
2012-12-27 22:16:40 -05:00
Blake Watters
92458a1e88 Enable support for mapping a relationship flexibly via assignment policies. You can now map a relationship and assign its value by setting, replacing, or unioning (combining) the relationship. closes #1073, closes #989 2012-12-26 17:56:39 -05:00
Blake Watters
b858f2753f Grow up support for mapping to primitives by avoiding crashes due to null conversions. fixes #1043, fixes #741, fixes #703 2012-12-26 14:40:59 -05:00
Blake Watters
7d63ca36ac Improve relationship connection behaviors when all connection attributes resolve to nil. Add logic for skipping the connection entirely. refs #1099 2012-12-26 10:53:16 -05:00
Blake Watters
4b2b7dbe4c Add support for skipping relationship connections if all connection attributes evaluate to nil. Add support for establishing connections when some connection attributes evaluate to nil. fixes #1099 closes #1102 2012-12-25 23:53:01 -05:00
Blake Watters
aecc1db352 Add support, tests, and documentation for the deletion of External Storage directory when an instance of RKManagedObjectStore is reset. closes #677 2012-12-25 14:50:13 -05:00
Blake Watters
285b75ea2a Eliminate connection matchers in favor of source and destination predicates. closes #1105 2012-12-24 18:29:00 -05:00
Blake Watters
78e55c90a2 Merge branch 'feature/1105-connection-matchers' of github.com:cfis/RestKit into cfis-feature/1105-connection-matchers 2012-12-24 17:58:24 -05:00
Charlie Savage
a67bb48ece Reimplement connection matchers and add test case. 2012-12-23 21:58:59 -07:00
Blake Watters
b78deb3eed Use instancetype in constructors for increased subclassing friendliness 2012-12-22 14:54:49 -05:00
Blake Watters
fccfd7724f Add truncation example code to the resetPersistentStores block 2012-12-20 18:59:14 -05:00
Blake Watters
408072f733 Add support and tests for inferring entity identifiers from superentity user info. closes #954 2012-12-19 22:21:09 -05:00
Blake Watters
0a28ecb507 Add optional support for connecting to subentities. fixes #1059 2012-12-19 18:32:32 -05:00
Blake Watters
862e84a515 Hook the RKManagedObjectMappingOperationDataSource into the Managed Object Context save lifecycle to avoid the creation of duplicate objects during sequential mapping operations 2012-12-18 22:00:44 -05:00
Blake Watters
3fe377c03a Remove another pair of keyed subscript access instances 2012-12-10 17:18:00 -05:00
Blake Watters
5efcfe2c41 Eliminate remaining use of keyed subscript access 2012-12-10 17:12:53 -05:00
Blake Watters
abe67dcbb5 Eliminate use of keyed subscript access in RKEntityMapping inadvertantly introducing iOS 6.0 dependencies 2012-12-10 10:50:51 -05:00
Blake Watters
f3cd0f6e07 Implemented connectionBlock property on RKRelationshipConnectionOperation for tracking connection status synchronously 2012-12-09 12:21:53 -05:00
Blake Watters
38480b269c Rev docs referencing primaryKey as opposed to identificationAttributes 2012-12-08 11:41:48 -05:00
Blake Watters
f4457f2948 Add MOC reset to the beginning of resetPersistentStores:. closes #1018 2012-12-07 15:06:13 -05:00
Blake Watters
7eef2f2174 Expand documentation about connecting relationships with collection values 2012-12-07 14:46:23 -05:00
Blake Watters
79e31b524a Refactored managed object caches and connection support to enable connecting by multiple atributes that are specified as arrays.
* Migrated the caches to return `NSSet` to eliminate duplicate objects when your cache keys overlap
* Introduced new recursive strategy for building cache keys in `RKInMemoryManagedObjectCache`
* Added support for array cache key values in `RKFetchRequestManagedObjectCache`
* Re-enabled a slew of tests that were disabled during 0.20 development
2012-12-06 23:43:34 -05:00
Blake Watters
9672e0a471 Remove use of keyed subscript to access RKEntityIdentificationAttributesUserInfoKey 2012-12-05 23:13:13 -05:00
Blake Watters
a5dc037ef9 Add support for inferring attributes that match the snake-case _id pattern. closes #1047 2012-12-02 14:34:03 -05:00
Blake Watters
cbb3f70571 Eliminate the RKEntityIdentifier class and migrate the functionality into properties on RKEntityMapping 2012-12-02 13:08:52 -05:00
Blake Watters
ddbd1e1f95 Fix inappropriate managed object context reference in [RKEntityByAttributeCache addObject:] 2012-12-02 00:23:49 -05:00
Blake Watters
9fc0703d21 Fix crash when attempting to connect a one-to-one relationship that returns an empty result set 2012-11-29 00:22:42 -05:00
Blake Watters
4eb765aad8 Switch to %ld and cast counts to long to suppress warnings on OS X 2012-11-29 00:21:56 -05:00
Blake Watters
1318edd082 Add docs about using the user info to configure an entity identifier 2012-11-28 22:56:56 -05:00
Blake Watters
b502f5431b Drop the entity description category entirely 2012-11-28 22:52:39 -05:00
Blake Watters
b045520e98 Add Apache license boilerplate to unadorned Core Data files 2012-11-28 22:46:36 -05:00
Blake Watters
a31c537492 Finish documentation for RKEntityMapping to cover Entity Identification and Connections 2012-11-28 22:45:27 -05:00
Blake Watters
8bcfd47270 Header docs for entity identifier 2012-11-27 23:24:03 -05:00
Blake Watters
03ee8d005f Docs cleanup 2012-11-27 22:45:26 -05:00
Blake Watters
adf4a5d49e Drop RKConnectionMapping, cleanup. Add predicate support 2012-11-27 22:34:55 -05:00
Blake Watters
1196a42e54 Docs for RKConnectionDescription 2012-11-27 22:18:29 -05:00
Blake Watters
8dc54a89b2 Major overhaul to the Core Data managed object identification and relationship connection support.
* Replaces primary key with `RKEntityIdentifier`
* Add support for use of compound keys for object identification
* Refactor `RKConnectionMapping` to `RKConnectionDescription` and add support for connecting with multiple attributes
* Clarify naming of representation key methods to better match naming conventions
* Add type transformation support for object identification
* Greatly expand test coverage for object identification
* Drop the `NSEntityDescription` category
* Simplify the `RKManagedObjectCaching` protocol
* Add compound key support to the Fetch Request and In Memory Cache implementations
* Replace Kiwi with Specta for tests where contexts are helpful for organization
* Rename `defaultValueForMissingAttribute` to `defaultValueForAttribute`
2012-11-27 10:29:36 -05:00
Blake Watters
95b9a0ecba Synchronize access to the attribute to ID's dictionary and immediately copy it to avoid crashes under heavily threaded access to the cache 2012-11-13 19:15:11 -05:00
Blake Watters
91c61640fa Remove invalid references to RKParser 2012-11-13 12:32:49 -05:00
Blake Watters
6837d0d1b9 Add support for hooking into the RKSearchIndexer via a delegate
* Supports replacing the RKSearchWord fetch strategy to enable caching for performance
* Supports declining creation of search words
* Supports declining of indexing for specific objects
* Supports notification when objects are indexed and search words are added to the index
2012-11-12 16:18:36 -05:00
Blake Watters
e109036683 Add support and test coverage for serializing Boolean properties to JSON as true/false instead of numbers. closes #920, #827 2012-11-08 23:41:19 -05:00
Blake Watters
3db5307f6a Add missing test coverage for key path based connection scenarios. Fixes crashes resulting from double collection wrapping during connection. 2012-11-08 19:31:38 -05:00
Blake Watters
f2ff70177c Merge branch 'development' of github.com:CFKevinRef/RestKit into CFKevinRef-development 2012-11-07 21:59:38 -05:00
Blake Watters
153c230751 Suppress logging of referential integrity errors if the objectID is temporary as it likely indicates the object is not accessible from the requested context 2012-11-06 15:19:13 -05:00
Blake Watters
e7505df56c Fix retain cycles detected by Xcode 4.6 static analyzer 2012-11-05 18:38:23 -05:00
Blake Watters
d71a6a3482 Add LICENSE boilerplate 2012-11-05 18:38:23 -05:00
Blake Watters
45c6e1611e Add delegate for didFailToConnectRelationship: 2012-11-05 18:38:23 -05:00