Blake Watters
a03191c291
Add support for skipping an aggregate relationship mapping in the event that the parent representation does not contain any values for the property mappings of the concrete RKObjectMapping configured for the relationship. fixes #1114 , closes #1115
2012-12-31 17:33:41 -05:00
Blake Watters
b23ea410a8
Add support and test for inversing a mapping containing attributes mapped with nil destination key paths. fixes #1116
2012-12-29 22:13:12 -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
d1568cad63
Add support for mapping singular values to collections. fixes #1046
2012-12-26 00:20:56 -05:00
Blake Watters
b3899ac191
Add support for mapping a relationship directly from the parent object representation, rather than at a nested key path. closes #859
...
* Update documentation in RKRelationshipMapping.h
2012-12-24 16:18:39 -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
648b159f9a
Remove dead code
2012-11-29 23:35:37 -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
7888a55f6c
Remove the ignoreUnknownKeyPaths option. closes #840
2012-11-19 19:21:24 -05:00
Blake Watters
7d9087b722
Supress extraneous logging when type is transformed to nil
2012-11-09 12:12:42 -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
d689ba9291
Add support for mapping to NSData attributes using a NSKeyedArchiver. closes #910
2012-11-07 11:00:15 -05:00
Blake Watters
454eb2e8fa
Correct usage of 'method' instead of 'function' in comment
2012-10-28 19:40:22 -04:00
Blake Watters
117fcbb18c
Fix horrible bugs in previous commit
2012-10-21 15:58:03 -04:00
Blake Watters
f93a044561
Add error condition when attempting to map an RKEntityMapping containing connection mappings with a nil managed object cache.
...
* Add support for the data source to fail mapping operation with an error.
* Clean up error handling within RKMappingOperation
2012-10-21 15:47:16 -04:00
Blake Watters
63c9a9e4a0
Fix bug in which relationship connection operations are not enqueued for RKMappingOperation instances whose mapping is an RKDynamicMapping
2012-10-20 16:53:14 -04:00
Blake Watters
08110ca300
Implement support for cancellation and prioritization of response mapping operations using an operation queue global to all object request operations.
...
* Passes through cancellation from object request operation to HTTP request operation and response mapping operation. closes #993
* Performs all object mapping within an NSOperationQueue to enable constraining of mapping activities.
* Add default mapping queue with concurrency limit of 1 operation.
* Migrate deserialization of the response body into a serial dispatch queue to ensure that only one parse occurs at a time.
2012-10-20 00:13:48 -04:00
Blake Watters
639897dd67
Refactored relationship mapping implementation to make it easier to follow and debug
2012-10-19 17:53:09 -04:00
Blake Watters
e748e5bfce
Don't throw an exception if doing a simple attribute mapping with a nil data source. closes #1005
2012-10-18 15:17:57 -04:00
Blake Watters
e8b4cdd19c
DRY up find or create of destination object within the mapping operation and change nil destination object to an error condition instead of an assertion.
2012-10-18 14:06:46 -04:00
Blake Watters
fb6db948e1
Implement support for using dynamic mapping during parameterization with a Request Descriptor. closes #684
2012-10-18 12:14:16 -04:00
Blake Watters
20c4121644
Improve logging when mapping a null relationship value. refs #862
2012-10-16 20:50:35 -04:00
Blake Watters
9d617c6c7b
Add support for disconnecting relationships when mapping a related keypath whose value is equal to [NSNull null]. fixes #862
2012-10-16 20:48:27 -04:00
Jeff Arena
53f4105e57
Split out simple and keyPath attribute mappings to allow relationship mappings to run before keyPath mappings.
2012-10-16 18:07:36 -04:00
Blake Watters
64e9c7cb6d
Add support for mapping attributes to deeply nested keyPaths on NSMutableDictionary. fixes #882
2012-10-15 22:00:14 -04:00
Blake Watters
74624200da
Fix inappropriate override of start method in RKMappingOperation. This should be main, as we are not concurrent
2012-10-15 18:41:45 -04:00
Blake Watters
4a7ed3cbd3
Rename test files to align with classes
2012-10-14 13:51:39 -04:00
Blake Watters
877ce255b5
Expand test coverage and fix situations where requests would unexpectedly initialize incorrectly without error
...
* RKObjectParameterization now returns an empty dictionary if mapping produces an unmappable representation error (no mappable attributes/relationships found)
* Log errors if request construction results in an NSError and return nil
* Ensure errors are passed back up through object parameterization instead of just returning nil
* Reset the serialization MIME Type registry during RKTestFactory set up to ensure it is in a sane state
* Convert Hamcrest matchers to Expecta in the object mapper tests to fix infinite recursion on test failure (will need to completely phase out Hamcrest soon)
2012-10-05 19:16:55 -04:00
Blake Watters
d95fe5cd44
Break out reused functions for object mapping introspection into RKObjectUtilities
2012-09-30 12:49:59 -04:00
Blake Watters
ecb6af4776
Factor date formatting into reusable convenience functions
2012-09-28 14:59:57 -04:00
Arne Harren
bc7c65f03b
Switch to an embedded variant of LibComponentLogging with prefix RK
2012-09-27 21:47:36 +02:00
Blake Watters
e56754cb65
Add support for mapping of numeric dates encoded in strings via NSNumberFormatter. closes #815
2012-09-25 21:18:03 -04:00
Blake Watters
235f5fc579
Fix all build errors in unit tests. Restore execution of core mapping tests.
2012-09-24 22:44:20 -04:00
Blake Watters
654364af61
Document RKDynamicMappingMatcher and clean up API
2012-09-21 22:59:43 -04:00
Blake Watters
6815ba6444
API refresh for mapping layer. Converted RKObjectMapper to RKMapperOperation. Expanded documentation.
2012-09-21 17:55:32 -04:00
Blake Watters
7e816904ff
Docs update. Eliminate mappingOperationFromObject:
2012-09-20 19:11:38 -04:00
Blake Watters
991ced34da
Docs for mapping operation data source. Still don't love the method names. Maybe we can eliminate this somehow...
2012-09-20 08:12:29 -04:00
Blake Watters
742cc2aca9
Merge pull request #931 from diederich/fix/includes
...
3 minor cleanup commits regarding includes / headers
2012-09-16 10:45:33 -07:00
Stephan Diederich
6e4b1a1600
fix performance of MappingOperation ( #902 )
...
This commit replaces the special handling of unix-timestamps
into the existing dateformatter architecture.
By adding it to the end of the list, it's still present, but doesn't
'cost' anything for all other users.
2012-09-14 16:19:51 +02:00
Stephan Diederich
b984b832c6
fix formatting
2012-09-14 16:03:23 +02:00
Stephan Diederich
3889424b82
remove unnecessary include
2012-09-14 14:42:02 +02:00
Jawwad Ahmad
8cbdb5f7ed
Trailing whitespace cleanup from files in the Code directory.
...
Used the following command from within the Code dir:
git ls-files *.m *.h *.json | xargs /usr/bin/sed -i '' -E 's/[[:space:]]*$//'
2012-09-02 12:51:45 -04:00
Jawwad Ahmad
c70ab49457
Delete @synthesize statements that are no longer needed. (Works with current 4.4.1 release of Xcode).
2012-09-02 12:28:45 -04:00
Blake Watters
2cf16be6cb
Add support for performing object mapping with type transformations across relationships defined with keyPaths
2012-08-31 17:47:44 -04:00
Blake Watters
33df114c01
Eliminate NSClassFromString handling for NSOrderedSet since we target iOS 5.0+ now
2012-08-31 17:47:44 -04:00
Blake Watters
d3f66418f2
Remove implicit initialization of dataSource for mapping operation as it gets deallocated unde ARC
2012-08-29 13:23:27 -04:00
Blake Watters
ce6b0829e4
Convert RestKit to ARC
2012-08-28 17:34:58 -04:00
Blake Watters
d926e240f8
Introduce RKPropertyMapping abstract superclass for RKAttributeMapping and RKRelationshipMapping.
...
Add primitives for working with attribute, relationship, and property mapping objects.
2012-08-28 14:14:20 -04:00