motion-yapper 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +20 -0
- data/.travis.yml +6 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +63 -0
- data/README.md +16 -0
- data/Rakefile +20 -0
- data/app/app_delegate.rb +5 -0
- data/lib/yapper.rb +30 -0
- data/lib/yapper/attachment.rb +48 -0
- data/lib/yapper/bson.rb +20 -0
- data/lib/yapper/config.rb +18 -0
- data/lib/yapper/db.rb +151 -0
- data/lib/yapper/document.rb +54 -0
- data/lib/yapper/document/attachment.rb +26 -0
- data/lib/yapper/document/callbacks.rb +86 -0
- data/lib/yapper/document/persistance.rb +171 -0
- data/lib/yapper/document/relation.rb +84 -0
- data/lib/yapper/document/selection.rb +100 -0
- data/lib/yapper/extensions.rb +80 -0
- data/lib/yapper/log.rb +5 -0
- data/lib/yapper/sync.rb +134 -0
- data/lib/yapper/sync/data.rb +12 -0
- data/lib/yapper/sync/event.rb +194 -0
- data/lib/yapper/sync/queue.rb +164 -0
- data/lib/yapper/timestamps.rb +16 -0
- data/lib/yapper/version.rb +3 -0
- data/lib/yapper/yapper.rb +2 -0
- data/spec/helpers/time_helper.rb +3 -0
- data/spec/integration/all_spec.rb +40 -0
- data/spec/integration/callback_spec.rb +87 -0
- data/spec/integration/db_spec.rb +40 -0
- data/spec/integration/find_spec.rb +51 -0
- data/spec/integration/persistance_spec.rb +118 -0
- data/spec/integration/relation_spec.rb +174 -0
- data/spec/integration/sync_spec.rb +42 -0
- data/spec/integration/timestamps_spec.rb +34 -0
- data/spec/integration/types_spec.rb +23 -0
- data/spec/integration/when_spec.rb +29 -0
- data/spec/integration/where_spec.rb +132 -0
- data/vendor/Podfile.lock +24 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.h +641 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.m +1396 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m +327 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.h +113 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.m +321 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.m +150 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.m +157 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFNetworking.h +43 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.m +143 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h +370 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m +848 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.m +167 -0
- data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.m +191 -0
- data/vendor/Pods/AFNetworking/LICENSE +19 -0
- data/vendor/Pods/AFNetworking/README.md +208 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPClient.h +641 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFImageRequestOperation.h +113 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworking.h +43 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h +370 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/vendor/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/ContextFilterLogFormatter.h +65 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDASLLogger.h +41 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDAbstractDatabaseLogger.h +102 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDFileLogger.h +334 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog.h +601 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDTTYLogger.h +167 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DispatchQueueLogFormatter.h +116 -0
- data/vendor/Pods/BuildHeaders/NSData+MD5Digest/NSData+MD5Digest.h +18 -0
- data/vendor/Pods/BuildHeaders/Reachability/Reachability.h +109 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapCache.h +90 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapCollectionKey.h +20 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabase.h +547 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnection.h +447 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnectionState.h +29 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseDefaults.h +37 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtension.h +15 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionConnection.h +11 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionPrivate.h +440 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionTransaction.h +11 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredView.h +108 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewConnection.h +12 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewPrivate.h +19 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTransaction.h +39 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearch.h +89 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchConnection.h +32 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchPrivate.h +69 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +79 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchTransaction.h +68 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseLogging.h +158 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseManager.h +17 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabasePrivate.h +424 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseQuery.h +42 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndex.h +100 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexConnection.h +33 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +73 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetup.h +33 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +58 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseStatement.h +13 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseString.h +121 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseTransaction.h +541 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseView.h +186 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChange.h +272 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChangePrivate.h +94 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewConnection.h +115 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappings.h +825 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappingsPrivate.h +72 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewOptions.h +56 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPage.h +36 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPageMetadata.h +27 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPrivate.h +153 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptions.h +330 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +17 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTransaction.h +447 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapMemoryTable.h +74 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapNull.h +17 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapSet.h +41 -0
- data/vendor/Pods/BuildHeaders/YapDatabase/YapTouch.h +15 -0
- data/vendor/Pods/CocoaLumberjack/LICENSE.txt +18 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h +41 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m +99 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h +102 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m +727 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h +334 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m +1353 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.h +601 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.m +1083 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h +167 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m +1479 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/ContextFilterLogFormatter.h +65 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/ContextFilterLogFormatter.m +191 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DispatchQueueLogFormatter.h +116 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DispatchQueueLogFormatter.m +251 -0
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/README.txt +7 -0
- data/vendor/Pods/CocoaLumberjack/README.markdown +37 -0
- data/vendor/Pods/Headers/AFNetworking/AFHTTPClient.h +641 -0
- data/vendor/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h +133 -0
- data/vendor/Pods/Headers/AFNetworking/AFImageRequestOperation.h +113 -0
- data/vendor/Pods/Headers/AFNetworking/AFJSONRequestOperation.h +71 -0
- data/vendor/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
- data/vendor/Pods/Headers/AFNetworking/AFNetworking.h +43 -0
- data/vendor/Pods/Headers/AFNetworking/AFPropertyListRequestOperation.h +68 -0
- data/vendor/Pods/Headers/AFNetworking/AFURLConnectionOperation.h +370 -0
- data/vendor/Pods/Headers/AFNetworking/AFXMLRequestOperation.h +89 -0
- data/vendor/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h +78 -0
- data/vendor/Pods/Headers/CocoaLumberjack/ContextFilterLogFormatter.h +65 -0
- data/vendor/Pods/Headers/CocoaLumberjack/DDASLLogger.h +41 -0
- data/vendor/Pods/Headers/CocoaLumberjack/DDAbstractDatabaseLogger.h +102 -0
- data/vendor/Pods/Headers/CocoaLumberjack/DDFileLogger.h +334 -0
- data/vendor/Pods/Headers/CocoaLumberjack/DDLog.h +601 -0
- data/vendor/Pods/Headers/CocoaLumberjack/DDTTYLogger.h +167 -0
- data/vendor/Pods/Headers/CocoaLumberjack/DispatchQueueLogFormatter.h +116 -0
- data/vendor/Pods/Headers/NSData+MD5Digest/NSData+MD5Digest.h +18 -0
- data/vendor/Pods/Headers/Reachability/Reachability.h +109 -0
- data/vendor/Pods/Headers/YapDatabase/YapCache.h +90 -0
- data/vendor/Pods/Headers/YapDatabase/YapCollectionKey.h +20 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabase.h +547 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnection.h +447 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnectionState.h +29 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseDefaults.h +37 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtension.h +15 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionConnection.h +11 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionPrivate.h +440 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionTransaction.h +11 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredView.h +108 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewConnection.h +12 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewPrivate.h +19 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTransaction.h +39 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearch.h +89 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchConnection.h +32 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchPrivate.h +69 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +79 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchTransaction.h +68 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseLogging.h +158 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseManager.h +17 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabasePrivate.h +424 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseQuery.h +42 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndex.h +100 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexConnection.h +33 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +73 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexSetup.h +33 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +58 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseStatement.h +13 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseString.h +121 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseTransaction.h +541 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseView.h +186 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChange.h +272 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChangePrivate.h +94 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewConnection.h +115 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappings.h +825 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappingsPrivate.h +72 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewOptions.h +56 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPage.h +36 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPageMetadata.h +27 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPrivate.h +153 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptions.h +330 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +17 -0
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTransaction.h +447 -0
- data/vendor/Pods/Headers/YapDatabase/YapMemoryTable.h +74 -0
- data/vendor/Pods/Headers/YapDatabase/YapNull.h +17 -0
- data/vendor/Pods/Headers/YapDatabase/YapSet.h +41 -0
- data/vendor/Pods/Headers/YapDatabase/YapTouch.h +15 -0
- data/vendor/Pods/Headers/____Pods-AFNetworking-prefix.h +17 -0
- data/vendor/Pods/Headers/____Pods-CocoaLumberjack-prefix.h +5 -0
- data/vendor/Pods/Headers/____Pods-NSData+MD5Digest-prefix.h +5 -0
- data/vendor/Pods/Headers/____Pods-Reachability-prefix.h +5 -0
- data/vendor/Pods/Headers/____Pods-YapDatabase-prefix.h +5 -0
- data/vendor/Pods/Headers/____Pods-environment.h +38 -0
- data/vendor/Pods/Manifest.lock +24 -0
- data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.h +18 -0
- data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.m +39 -0
- data/vendor/Pods/NSData+MD5Digest/README.md +11 -0
- data/vendor/Pods/Pods-AFNetworking-Private.xcconfig +5 -0
- data/vendor/Pods/Pods-AFNetworking-dummy.m +5 -0
- data/vendor/Pods/Pods-AFNetworking-prefix.pch +17 -0
- data/vendor/Pods/Pods-AFNetworking.xcconfig +1 -0
- data/vendor/Pods/Pods-Acknowledgements.markdown +96 -0
- data/vendor/Pods/Pods-Acknowledgements.plist +142 -0
- data/vendor/Pods/Pods-CocoaLumberjack-Private.xcconfig +5 -0
- data/vendor/Pods/Pods-CocoaLumberjack-dummy.m +5 -0
- data/vendor/Pods/Pods-CocoaLumberjack-prefix.pch +5 -0
- data/vendor/Pods/Pods-CocoaLumberjack.xcconfig +0 -0
- data/vendor/Pods/Pods-NSData+MD5Digest-Private.xcconfig +5 -0
- data/vendor/Pods/Pods-NSData+MD5Digest-dummy.m +5 -0
- data/vendor/Pods/Pods-NSData+MD5Digest-prefix.pch +5 -0
- data/vendor/Pods/Pods-NSData+MD5Digest.xcconfig +0 -0
- data/vendor/Pods/Pods-Reachability-Private.xcconfig +5 -0
- data/vendor/Pods/Pods-Reachability-dummy.m +5 -0
- data/vendor/Pods/Pods-Reachability-prefix.pch +5 -0
- data/vendor/Pods/Pods-Reachability.xcconfig +1 -0
- data/vendor/Pods/Pods-YapDatabase-Private.xcconfig +5 -0
- data/vendor/Pods/Pods-YapDatabase-dummy.m +5 -0
- data/vendor/Pods/Pods-YapDatabase-prefix.pch +5 -0
- data/vendor/Pods/Pods-YapDatabase.xcconfig +1 -0
- data/vendor/Pods/Pods-dummy.m +5 -0
- data/vendor/Pods/Pods-environment.h +38 -0
- data/vendor/Pods/Pods-resources.sh +68 -0
- data/vendor/Pods/Pods.bridgesupport +5096 -0
- data/vendor/Pods/Pods.xcconfig +5 -0
- data/vendor/Pods/Pods.xcodeproj/project.pbxproj +5536 -0
- data/vendor/Pods/Reachability/LICENCE.txt +24 -0
- data/vendor/Pods/Reachability/README.md +65 -0
- data/vendor/Pods/Reachability/Reachability.h +109 -0
- data/vendor/Pods/Reachability/Reachability.m +527 -0
- data/vendor/Pods/YapDatabase/LICENSE.txt +18 -0
- data/vendor/Pods/YapDatabase/README.md +30 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h +19 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h +108 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m +175 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h +12 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m +41 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h +39 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m +966 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h +69 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h +89 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m +146 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h +32 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m +298 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h +79 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m +95 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h +68 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m +1352 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h +440 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.h +15 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.m +58 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h +11 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m +46 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h +11 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m +180 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h +73 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h +100 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m +149 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h +33 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m +330 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h +33 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m +184 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h +58 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m +1166 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h +94 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h +72 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h +36 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm +296 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h +27 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m +28 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h +153 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h +17 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h +272 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m +2494 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h +825 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m +1567 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h +330 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m +141 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.h +186 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.m +191 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.h +115 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.m +897 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.h +56 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.m +27 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h +447 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m +4505 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.h +90 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.m +453 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.h +29 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.m +48 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.h +37 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.m +83 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.h +158 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.m +73 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.h +17 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.m +56 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabasePrivate.h +424 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.h +13 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.m +26 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseString.h +121 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.h +74 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.m +603 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.h +17 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.m +31 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.h +15 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.m +31 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.h +20 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.m +194 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.h +42 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.m +96 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.h +41 -0
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.m +82 -0
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.h +547 -0
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.m +2022 -0
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.h +447 -0
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.m +3874 -0
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.h +541 -0
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.m +5282 -0
- data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.bridgesupport +16 -0
- data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.h +13 -0
- data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.m +20 -0
- data/yapper.gemspec +24 -0
- metadata +458 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Software License Agreement (BSD License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2013, yap.TV Inc.
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use of this software in source and binary forms,
|
|
7
|
+
with or without modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above
|
|
10
|
+
copyright notice, this list of conditions and the
|
|
11
|
+
following disclaimer.
|
|
12
|
+
|
|
13
|
+
* Neither the name of yap.TV nor the names of its
|
|
14
|
+
contributors may be used to endorse or promote products
|
|
15
|
+
derived from this software without specific prior
|
|
16
|
+
written permission of yap.TV Inc.
|
|
17
|
+
|
|
18
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
YapDatabase
|
|
2
|
+
===========
|
|
3
|
+
|
|
4
|
+
YapDatabase is a "**key/value store and MUCH MORE**" built atop sqlite for iOS & Mac.
|
|
5
|
+
It has the following features:
|
|
6
|
+
|
|
7
|
+
* **Concurrency**. You can read from the database while another thread is simultaneously making modifications to the database. So you never have to worry about blocking the main thread, and you can easily write to the database on a background thread. And, of course, you can read from the database on multiple threads simultaneously.
|
|
8
|
+
|
|
9
|
+
* **Built-In Caching**. A configurable object cache is built-in. Of course sqlite has caching too. But it's caching raw serialized bytes, and we're dealing with objects. So having a built-in cache means you can skip the deserialization process, and get your objects much faster.
|
|
10
|
+
|
|
11
|
+
* **Collections**. Sometimes a single key isn't enough. Sometimes a collection & key is better. No worries. We've got a database for that.
|
|
12
|
+
|
|
13
|
+
* **Metadata**. Ever wanted to store extra data along with your object? Like maybe a timestamp of when it was downloaded. Or a fully separate but related object? You're in luck. Metadata support comes standard. Along with its own separate configurable cache too!
|
|
14
|
+
|
|
15
|
+
* **Views**. Need to filter, group & sort your data? No problem. YapDatabase comes with Views. And you don't even need to write esoteric SQL queries. Views work using blocks and Objective-C code. Plus they automatically update themselves, and they make animating tables really easy.
|
|
16
|
+
|
|
17
|
+
* **Secondary Indexing**. Speed up your queries by indexing important properties. And then use SQL style queries to quickly find your items.
|
|
18
|
+
|
|
19
|
+
* **Full Text Search**. Built atop sqlite's FTS module (contributed by google), you can add extremely speedy searching to your app with minimal effort.
|
|
20
|
+
|
|
21
|
+
* **Extensions**. More than just a key/value store, YapDatabase comes with an extensions architecture built-in. You can even create your own extensions.
|
|
22
|
+
|
|
23
|
+
* **Performance**. Fetch thousands of objects on the main thread without dropping a frame.
|
|
24
|
+
|
|
25
|
+
* **Objective-C**. A simple to use Objective-C API means you'll be up and running in no time.
|
|
26
|
+
|
|
27
|
+
<br/>
|
|
28
|
+
|
|
29
|
+
**[See what the API looks like in "hello world" for YapDatabase](https://github.com/yaptv/YapDatabase/wiki/Hello-World)**<br/>
|
|
30
|
+
**[Learn more by visiting the wiki](https://github.com/yaptv/YapDatabase/wiki)**<br/>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#import "YapDatabaseFilteredView.h"
|
|
2
|
+
#import "YapDatabaseFilteredViewConnection.h"
|
|
3
|
+
#import "YapDatabaseFilteredViewTransaction.h"
|
|
4
|
+
|
|
5
|
+
#import "YapDatabaseViewPrivate.h"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@interface YapDatabaseFilteredView () {
|
|
9
|
+
@public
|
|
10
|
+
|
|
11
|
+
NSString *parentViewName;
|
|
12
|
+
|
|
13
|
+
YapDatabaseViewFilteringBlock filteringBlock;
|
|
14
|
+
YapDatabaseViewBlockType filteringBlockType;
|
|
15
|
+
|
|
16
|
+
NSString *tag;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@end
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
#import "YapDatabaseView.h"
|
|
4
|
+
#import "YapDatabaseFilteredViewConnection.h"
|
|
5
|
+
#import "YapDatabaseFilteredViewTransaction.h"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
#ifndef YapDatabaseViewFilteringBlockDefined
|
|
9
|
+
#define YapDatabaseViewFilteringBlockDefined 1
|
|
10
|
+
|
|
11
|
+
typedef id YapDatabaseViewFilteringBlock; // One of the YapDatabaseViewGroupingX types below.
|
|
12
|
+
|
|
13
|
+
typedef BOOL (^YapDatabaseViewFilteringWithKeyBlock) \
|
|
14
|
+
(NSString *group, NSString *collection, NSString *key);
|
|
15
|
+
typedef BOOL (^YapDatabaseViewFilteringWithObjectBlock) \
|
|
16
|
+
(NSString *group, NSString *collection, NSString *key, id object);
|
|
17
|
+
typedef BOOL (^YapDatabaseViewFilteringWithMetadataBlock)\
|
|
18
|
+
(NSString *group, NSString *collection, NSString *key, id metadata);
|
|
19
|
+
typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
|
|
20
|
+
(NSString *group, NSString *collection, NSString *key, id object, id metadata);
|
|
21
|
+
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
@interface YapDatabaseFilteredView : YapDatabaseView
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @param parentViewName
|
|
28
|
+
*
|
|
29
|
+
* The parentViewName must be the registered name of a YapDatabaseView or
|
|
30
|
+
* YapDatabaseFilteredView extension.
|
|
31
|
+
* That is, you must first register the parentView, and then use that registered name here.
|
|
32
|
+
*
|
|
33
|
+
* @param filteringBlock
|
|
34
|
+
*
|
|
35
|
+
* The filteringBlock type is one of the following typedefs:
|
|
36
|
+
* - YapDatabaseViewFilteringWithKeyBlock
|
|
37
|
+
* - YapDatabaseViewFilteringWithObjectBlock
|
|
38
|
+
* - YapDatabaseViewFilteringWithMetadataBlock
|
|
39
|
+
* - YapDatabaseViewFilteringWithRowBlock
|
|
40
|
+
* It allows you to filter items from this view that exist in the parent view.
|
|
41
|
+
* You should pick a block type that requires the minimum number of parameters that you need.
|
|
42
|
+
*
|
|
43
|
+
* @param filteringBlockType
|
|
44
|
+
*
|
|
45
|
+
* This parameter identifies the type of filtering block being used.
|
|
46
|
+
* It must be one of the following (and must match the filteringBlock being passed):
|
|
47
|
+
* - YapDatabaseViewBlockTypeWithKey
|
|
48
|
+
* - YapDatabaseViewBlockTypeWithObject
|
|
49
|
+
* - YapDatabaseViewBlockTypeWithMetadata
|
|
50
|
+
* - YapDatabaseViewBlockTypeWithRow
|
|
51
|
+
*
|
|
52
|
+
* @param tag
|
|
53
|
+
*
|
|
54
|
+
* The filteringBlock may be changed after the filteredView is created (see YapDatabaseFilteredViewTransaction).
|
|
55
|
+
* This is often in association with user events.
|
|
56
|
+
* The tag helps to identify the filteringBlock being used.
|
|
57
|
+
* During initialization of the view, the view will compare the passed tag to what it has stored from a previous
|
|
58
|
+
* app session. If the tag matches, then the filteredView is already setup. Otherwise the view will automatically
|
|
59
|
+
* flush its tables, and re-populate itself.
|
|
60
|
+
*
|
|
61
|
+
* @param options
|
|
62
|
+
*
|
|
63
|
+
* The options allow you to specify things like creating an IN-MEMORY-ONLY VIEW (non persistent).
|
|
64
|
+
**/
|
|
65
|
+
|
|
66
|
+
- (id)initWithParentViewName:(NSString *)viewName
|
|
67
|
+
filteringBlock:(YapDatabaseViewFilteringBlock)filteringBlock
|
|
68
|
+
filteringBlockType:(YapDatabaseViewBlockType)filteringBlockType;
|
|
69
|
+
|
|
70
|
+
- (id)initWithParentViewName:(NSString *)viewName
|
|
71
|
+
filteringBlock:(YapDatabaseViewFilteringBlock)filteringBlock
|
|
72
|
+
filteringBlockType:(YapDatabaseViewBlockType)filteringBlockType
|
|
73
|
+
tag:(NSString *)tag;
|
|
74
|
+
|
|
75
|
+
- (id)initWithParentViewName:(NSString *)viewName
|
|
76
|
+
filteringBlock:(YapDatabaseViewFilteringBlock)filteringBlock
|
|
77
|
+
filteringBlockType:(YapDatabaseViewBlockType)filteringBlockType
|
|
78
|
+
tag:(NSString *)tag
|
|
79
|
+
options:(YapDatabaseViewOptions *)options;
|
|
80
|
+
|
|
81
|
+
@property (nonatomic, strong, readonly) NSString *parentViewName;
|
|
82
|
+
|
|
83
|
+
@property (nonatomic, strong, readonly) YapDatabaseViewFilteringBlock filteringBlock;
|
|
84
|
+
@property (nonatomic, assign, readonly) YapDatabaseViewBlockType filteringBlockType;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* The tag assists you in updating the filteringBlock.
|
|
88
|
+
*
|
|
89
|
+
* Whenever you change the filteringBlock, just specify a tag to associate with the block.
|
|
90
|
+
* The tag can help you to identify the filtering criteria, or perhaps be used as a versioning scheme.
|
|
91
|
+
*
|
|
92
|
+
* Here's how it works:
|
|
93
|
+
* The very first time you create the filteredView, it will populate itself from the parentView + filteringBlock.
|
|
94
|
+
* On subsequent app launches, when you re-register the filteredView, it will check the passed tag with
|
|
95
|
+
* the tag it has stored from the previous app session. If the tags match then the filteredView knows it doesn't
|
|
96
|
+
* have to do anything. (It's already setup from last app session.) However, if the tags don't match, then
|
|
97
|
+
* the filteredView will re-populate itself.
|
|
98
|
+
*
|
|
99
|
+
* It works the same way if you change the filteringBlock on-the-fly. (See setFilteringBlock:filteringBlockType:tag:)
|
|
100
|
+
**/
|
|
101
|
+
@property (nonatomic, copy, readonly) NSString *tag;
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* The options allow you to specify things like creating an IN-MEMORY-ONLY VIEW (non persistent).
|
|
105
|
+
**/
|
|
106
|
+
@property (nonatomic, copy, readonly) YapDatabaseViewOptions *options;
|
|
107
|
+
|
|
108
|
+
@end
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
#import "YapDatabaseFilteredView.h"
|
|
2
|
+
#import "YapDatabaseFilteredViewPrivate.h"
|
|
3
|
+
#import "YapDatabaseExtensionPrivate.h"
|
|
4
|
+
#import "YapDatabaseLogging.h"
|
|
5
|
+
|
|
6
|
+
#if ! __has_feature(objc_arc)
|
|
7
|
+
#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
|
|
8
|
+
#endif
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Define log level for this file: OFF, ERROR, WARN, INFO, VERBOSE
|
|
12
|
+
* See YapDatabaseLogging.h for more information.
|
|
13
|
+
**/
|
|
14
|
+
#if DEBUG
|
|
15
|
+
static const int ydbLogLevel = YDB_LOG_LEVEL_WARN;
|
|
16
|
+
#else
|
|
17
|
+
static const int ydbLogLevel = YDB_LOG_LEVEL_WARN;
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@implementation YapDatabaseFilteredView
|
|
22
|
+
|
|
23
|
+
+ (NSArray *)previousClassNames
|
|
24
|
+
{
|
|
25
|
+
return @[ @"YapCollectionsDatabaseSecondaryIndex" ];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
#pragma mark Invalid
|
|
29
|
+
|
|
30
|
+
- (id)initWithGroupingBlock:(YapDatabaseViewGroupingBlock)inGroupingBlock
|
|
31
|
+
groupingBlockType:(YapDatabaseViewBlockType)inGroupingBlockType
|
|
32
|
+
sortingBlock:(YapDatabaseViewSortingBlock)inSortingBlock
|
|
33
|
+
sortingBlockType:(YapDatabaseViewBlockType)inSortingBlockType
|
|
34
|
+
{
|
|
35
|
+
return [self initWithGroupingBlock:inGroupingBlock
|
|
36
|
+
groupingBlockType:inGroupingBlockType
|
|
37
|
+
sortingBlock:inSortingBlock
|
|
38
|
+
sortingBlockType:inSortingBlockType
|
|
39
|
+
version:0
|
|
40
|
+
options:nil];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
- (id)initWithGroupingBlock:(YapDatabaseViewGroupingBlock)inGroupingBlock
|
|
44
|
+
groupingBlockType:(YapDatabaseViewBlockType)inGroupingBlockType
|
|
45
|
+
sortingBlock:(YapDatabaseViewSortingBlock)inSortingBlock
|
|
46
|
+
sortingBlockType:(YapDatabaseViewBlockType)inSortingBlockType
|
|
47
|
+
version:(int)inVersion
|
|
48
|
+
{
|
|
49
|
+
return [self initWithGroupingBlock:inGroupingBlock
|
|
50
|
+
groupingBlockType:inGroupingBlockType
|
|
51
|
+
sortingBlock:inSortingBlock
|
|
52
|
+
sortingBlockType:inSortingBlockType
|
|
53
|
+
version:inVersion
|
|
54
|
+
options:nil];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
- (id)initWithGroupingBlock:(YapDatabaseViewGroupingBlock)inGroupingBlock
|
|
58
|
+
groupingBlockType:(YapDatabaseViewBlockType)inGroupingBlockType
|
|
59
|
+
sortingBlock:(YapDatabaseViewSortingBlock)inSortingBlock
|
|
60
|
+
sortingBlockType:(YapDatabaseViewBlockType)inSortingBlockType
|
|
61
|
+
version:(int)inVersion
|
|
62
|
+
options:(YapDatabaseViewOptions *)inOptions
|
|
63
|
+
{
|
|
64
|
+
// Todo: Throw exception
|
|
65
|
+
return nil;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
69
|
+
#pragma mark Instance
|
|
70
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
71
|
+
|
|
72
|
+
@synthesize parentViewName = parentViewName;
|
|
73
|
+
|
|
74
|
+
@synthesize filteringBlock = filteringBlock;
|
|
75
|
+
@synthesize filteringBlockType = filteringBlockType;
|
|
76
|
+
|
|
77
|
+
@synthesize tag = tag;
|
|
78
|
+
|
|
79
|
+
- (id)initWithParentViewName:(NSString *)inParentViewName
|
|
80
|
+
filteringBlock:(YapDatabaseViewFilteringBlock)inFilteringBlock
|
|
81
|
+
filteringBlockType:(YapDatabaseViewBlockType)inFilteringBlockType
|
|
82
|
+
{
|
|
83
|
+
return [self initWithParentViewName:inParentViewName
|
|
84
|
+
filteringBlock:inFilteringBlock
|
|
85
|
+
filteringBlockType:inFilteringBlockType
|
|
86
|
+
tag:nil
|
|
87
|
+
options:nil];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
- (id)initWithParentViewName:(NSString *)inParentViewName
|
|
91
|
+
filteringBlock:(YapDatabaseViewFilteringBlock)inFilteringBlock
|
|
92
|
+
filteringBlockType:(YapDatabaseViewBlockType)inFilteringBlockType
|
|
93
|
+
tag:(NSString *)inTag
|
|
94
|
+
{
|
|
95
|
+
return [self initWithParentViewName:inParentViewName
|
|
96
|
+
filteringBlock:inFilteringBlock
|
|
97
|
+
filteringBlockType:inFilteringBlockType
|
|
98
|
+
tag:inTag
|
|
99
|
+
options:nil];
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
- (id)initWithParentViewName:(NSString *)inParentViewName
|
|
103
|
+
filteringBlock:(YapDatabaseViewFilteringBlock)inFilteringBlock
|
|
104
|
+
filteringBlockType:(YapDatabaseViewBlockType)inFilteringBlockType
|
|
105
|
+
tag:(NSString *)inTag
|
|
106
|
+
options:(YapDatabaseViewOptions *)inOptions
|
|
107
|
+
{
|
|
108
|
+
NSAssert(inParentViewName != nil, @"Invalid parentViewName");
|
|
109
|
+
NSAssert(inFilteringBlock != NULL, @"Invalid filteringBlock");
|
|
110
|
+
|
|
111
|
+
NSAssert(inFilteringBlockType == YapDatabaseViewBlockTypeWithKey ||
|
|
112
|
+
inFilteringBlockType == YapDatabaseViewBlockTypeWithObject ||
|
|
113
|
+
inFilteringBlockType == YapDatabaseViewBlockTypeWithMetadata ||
|
|
114
|
+
inFilteringBlockType == YapDatabaseViewBlockTypeWithRow,
|
|
115
|
+
@"Invalid filteringBlockType");
|
|
116
|
+
|
|
117
|
+
if ((self = [super init]))
|
|
118
|
+
{
|
|
119
|
+
parentViewName = [inParentViewName copy];
|
|
120
|
+
|
|
121
|
+
filteringBlock = inFilteringBlock;
|
|
122
|
+
filteringBlockType = inFilteringBlockType;
|
|
123
|
+
|
|
124
|
+
version = 0; // version isn't used
|
|
125
|
+
|
|
126
|
+
if (inTag)
|
|
127
|
+
tag = [inTag copy];
|
|
128
|
+
else
|
|
129
|
+
tag = @"";
|
|
130
|
+
|
|
131
|
+
options = inOptions ? [inOptions copy] : [[YapDatabaseViewOptions alloc] init];
|
|
132
|
+
}
|
|
133
|
+
return self;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
137
|
+
#pragma mark Registration
|
|
138
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
139
|
+
|
|
140
|
+
- (BOOL)supportsDatabase:(YapDatabase *)database withRegisteredExtensions:(NSDictionary *)registeredExtensions
|
|
141
|
+
{
|
|
142
|
+
if (![super supportsDatabase:database withRegisteredExtensions:registeredExtensions])
|
|
143
|
+
return NO;
|
|
144
|
+
|
|
145
|
+
YapDatabaseExtension *ext = [registeredExtensions objectForKey:parentViewName];
|
|
146
|
+
if (ext == nil)
|
|
147
|
+
{
|
|
148
|
+
YDBLogWarn(@"The specified parentViewName (%@) isn't registered", parentViewName);
|
|
149
|
+
return NO;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (![ext isKindOfClass:[YapDatabaseView class]])
|
|
153
|
+
{
|
|
154
|
+
YDBLogWarn(@"The specified parentViewName (%@) isn't a view", parentViewName);
|
|
155
|
+
return NO;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return YES;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
- (NSSet *)dependencies
|
|
162
|
+
{
|
|
163
|
+
return [NSSet setWithObject:parentViewName];
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
167
|
+
#pragma mark Connections
|
|
168
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
169
|
+
|
|
170
|
+
- (YapDatabaseExtensionConnection *)newConnection:(YapDatabaseConnection *)databaseConnection
|
|
171
|
+
{
|
|
172
|
+
return [[YapDatabaseFilteredViewConnection alloc] initWithView:self databaseConnection:databaseConnection];
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
#import "YapDatabaseViewConnection.h"
|
|
3
|
+
|
|
4
|
+
@class YapDatabaseFilteredView;
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@interface YapDatabaseFilteredViewConnection : YapDatabaseViewConnection
|
|
8
|
+
|
|
9
|
+
// Returns properly typed parent view instance
|
|
10
|
+
@property (nonatomic, strong, readonly) YapDatabaseFilteredView *filteredView;
|
|
11
|
+
|
|
12
|
+
@end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#import "YapDatabaseFilteredViewConnection.h"
|
|
2
|
+
#import "YapDatabaseFilteredViewPrivate.h"
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
@implementation YapDatabaseFilteredViewConnection
|
|
6
|
+
|
|
7
|
+
- (YapDatabaseFilteredView *)filteredView
|
|
8
|
+
{
|
|
9
|
+
return (YapDatabaseFilteredView *)view;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
13
|
+
#pragma mark Transactions
|
|
14
|
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Required override method from YapDatabaseExtensionConnection.
|
|
18
|
+
**/
|
|
19
|
+
- (id)newReadTransaction:(YapDatabaseReadTransaction *)databaseTransaction
|
|
20
|
+
{
|
|
21
|
+
YapDatabaseFilteredViewTransaction *filteredViewTransaction =
|
|
22
|
+
[[YapDatabaseFilteredViewTransaction alloc] initWithViewConnection:self
|
|
23
|
+
databaseTransaction:databaseTransaction];
|
|
24
|
+
|
|
25
|
+
return filteredViewTransaction;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Required override method from YapDatabaseExtensionConnection.
|
|
30
|
+
**/
|
|
31
|
+
- (id)newReadWriteTransaction:(YapDatabaseReadWriteTransaction *)databaseTransaction
|
|
32
|
+
{
|
|
33
|
+
YapDatabaseFilteredViewTransaction *filteredViewTransaction =
|
|
34
|
+
[[YapDatabaseFilteredViewTransaction alloc] initWithViewConnection:self
|
|
35
|
+
databaseTransaction:databaseTransaction];
|
|
36
|
+
|
|
37
|
+
[self prepareForReadWriteTransaction];
|
|
38
|
+
return filteredViewTransaction;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#import <Foundation/Foundation.h>
|
|
2
|
+
|
|
3
|
+
#import "YapDatabaseViewTransaction.h"
|
|
4
|
+
#import "YapDatabaseFilteredView.h"
|
|
5
|
+
|
|
6
|
+
#ifndef YapDatabaseViewFilteringBlockDefined
|
|
7
|
+
#define YapDatabaseViewFilteringBlockDefined 1
|
|
8
|
+
|
|
9
|
+
typedef id YapDatabaseViewFilteringBlock; // One of the YapDatabaseViewGroupingX types below.
|
|
10
|
+
|
|
11
|
+
typedef BOOL (^YapDatabaseViewFilteringWithKeyBlock) \
|
|
12
|
+
(NSString *group, NSString *collection, NSString *key);
|
|
13
|
+
typedef BOOL (^YapDatabaseViewFilteringWithObjectBlock) \
|
|
14
|
+
(NSString *group, NSString *collection, NSString *key, id object);
|
|
15
|
+
typedef BOOL (^YapDatabaseViewFilteringWithMetadataBlock)\
|
|
16
|
+
(NSString *group, NSString *collection, NSString *key, id metadata);
|
|
17
|
+
typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
|
|
18
|
+
(NSString *group, NSString *collection, NSString *key, id object, id metadata);
|
|
19
|
+
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@interface YapDatabaseFilteredViewTransaction : YapDatabaseViewTransaction
|
|
24
|
+
|
|
25
|
+
// This class extends YapDatabaseViewTransaction.
|
|
26
|
+
//
|
|
27
|
+
// Please see YapDatabaseViewTransaction.h
|
|
28
|
+
|
|
29
|
+
@end
|
|
30
|
+
|
|
31
|
+
#pragma mark -
|
|
32
|
+
|
|
33
|
+
@interface YapDatabaseFilteredViewTransaction (ReadWrite)
|
|
34
|
+
|
|
35
|
+
- (void)setFilteringBlock:(YapDatabaseViewFilteringBlock)filteringBlock
|
|
36
|
+
filteringBlockType:(YapDatabaseViewBlockType)filteringBlockType
|
|
37
|
+
tag:(NSString *)tag;
|
|
38
|
+
|
|
39
|
+
@end
|