motion-yapper 0.0.3 → 0.1.0
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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +3 -1
- data/lib/yapper.rb +3 -3
- data/lib/yapper/db.rb +61 -4
- data/lib/yapper/document/persistence.rb +4 -0
- data/lib/yapper/document/selection.rb +13 -0
- data/lib/yapper/version.rb +1 -1
- data/motion-yapper.gemspec +1 -1
- data/spec/integration/search_spec.rb +111 -0
- data/vendor/Podfile.lock +11 -7
- data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.bridgesupport +16 -2
- data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.h +10 -7
- data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.m +20 -2
- metadata +19 -297
- data/vendor/Pods/.build/libPods-CocoaLumberjack.a +0 -0
- data/vendor/Pods/.build/libPods-NSData+MD5Digest.a +0 -0
- data/vendor/Pods/.build/libPods-YapDatabase.a +0 -0
- data/vendor/Pods/.build/libPods.a +0 -0
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDASLLogger.h +0 -41
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDAbstractDatabaseLogger.h +0 -102
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDContextFilterLogFormatter.h +0 -63
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDDispatchQueueLogFormatter.h +0 -128
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDFileLogger.h +0 -369
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog+LOGV.h +0 -99
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog.h +0 -634
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDMultiFormatter.h +0 -30
- data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDTTYLogger.h +0 -181
- data/vendor/Pods/BuildHeaders/NSData+MD5Digest/NSData+MD5Digest.h +0 -18
- data/vendor/Pods/BuildHeaders/YapDatabase/NSDictionary+YapDatabase.h +0 -8
- data/vendor/Pods/BuildHeaders/YapDatabase/YapCache.h +0 -91
- data/vendor/Pods/BuildHeaders/YapDatabase/YapCollectionKey.h +0 -23
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabase.h +0 -547
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnection.h +0 -449
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnectionState.h +0 -29
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseDefaults.h +0 -37
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtension.h +0 -15
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionConnection.h +0 -11
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionPrivate.h +0 -444
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionTransaction.h +0 -11
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredView.h +0 -81
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewConnection.h +0 -12
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewPrivate.h +0 -17
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTransaction.h +0 -39
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTypes.h +0 -32
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearch.h +0 -89
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchConnection.h +0 -32
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchPrivate.h +0 -77
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +0 -79
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchTransaction.h +0 -68
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseLogging.h +0 -158
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseManager.h +0 -17
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabasePrivate.h +0 -446
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseQuery.h +0 -42
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationship.h +0 -35
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipConnection.h +0 -29
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdge.h +0 -163
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdgePrivate.h +0 -79
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipNode.h +0 -99
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipOptions.h +0 -59
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipPrivate.h +0 -125
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipTransaction.h +0 -384
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndex.h +0 -149
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexConnection.h +0 -33
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +0 -83
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetup.h +0 -33
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetupPrivate.h +0 -18
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +0 -58
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseStatement.h +0 -13
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseString.h +0 -121
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseTransaction.h +0 -651
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseView.h +0 -127
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChange.h +0 -272
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChangePrivate.h +0 -94
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewConnection.h +0 -116
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappings.h +0 -842
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappingsPrivate.h +0 -72
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewOptions.h +0 -63
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPage.h +0 -36
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPageMetadata.h +0 -27
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPrivate.h +0 -170
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptions.h +0 -330
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +0 -17
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTransaction.h +0 -498
- data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTypes.h +0 -99
- data/vendor/Pods/BuildHeaders/YapDatabase/YapMemoryTable.h +0 -74
- data/vendor/Pods/BuildHeaders/YapDatabase/YapNull.h +0 -17
- data/vendor/Pods/BuildHeaders/YapDatabase/YapSet.h +0 -41
- data/vendor/Pods/BuildHeaders/YapDatabase/YapTouch.h +0 -15
- data/vendor/Pods/CocoaLumberjack/LICENSE.txt +0 -18
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h +0 -41
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m +0 -100
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h +0 -102
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m +0 -727
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h +0 -369
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m +0 -1539
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog+LOGV.h +0 -99
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.h +0 -634
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.m +0 -1208
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h +0 -181
- data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m +0 -1520
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.h +0 -63
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.m +0 -191
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.h +0 -128
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.m +0 -253
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.h +0 -30
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.m +0 -127
- data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/README.txt +0 -7
- data/vendor/Pods/CocoaLumberjack/README.markdown +0 -74
- data/vendor/Pods/Headers/CocoaLumberjack/DDASLLogger.h +0 -41
- data/vendor/Pods/Headers/CocoaLumberjack/DDAbstractDatabaseLogger.h +0 -102
- data/vendor/Pods/Headers/CocoaLumberjack/DDContextFilterLogFormatter.h +0 -63
- data/vendor/Pods/Headers/CocoaLumberjack/DDDispatchQueueLogFormatter.h +0 -128
- data/vendor/Pods/Headers/CocoaLumberjack/DDFileLogger.h +0 -369
- data/vendor/Pods/Headers/CocoaLumberjack/DDLog+LOGV.h +0 -99
- data/vendor/Pods/Headers/CocoaLumberjack/DDLog.h +0 -634
- data/vendor/Pods/Headers/CocoaLumberjack/DDMultiFormatter.h +0 -30
- data/vendor/Pods/Headers/CocoaLumberjack/DDTTYLogger.h +0 -181
- data/vendor/Pods/Headers/NSData+MD5Digest/NSData+MD5Digest.h +0 -18
- data/vendor/Pods/Headers/YapDatabase/YapCollectionKey.h +0 -23
- data/vendor/Pods/Headers/YapDatabase/YapDatabase.h +0 -547
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnection.h +0 -449
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtension.h +0 -15
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionConnection.h +0 -11
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionTransaction.h +0 -11
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredView.h +0 -81
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewConnection.h +0 -12
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTransaction.h +0 -39
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTypes.h +0 -32
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearch.h +0 -89
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchConnection.h +0 -32
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +0 -79
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchTransaction.h +0 -68
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseQuery.h +0 -42
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationship.h +0 -35
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipConnection.h +0 -29
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipEdge.h +0 -163
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipNode.h +0 -99
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipOptions.h +0 -59
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipTransaction.h +0 -384
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndex.h +0 -149
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexConnection.h +0 -33
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexSetup.h +0 -33
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +0 -58
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseTransaction.h +0 -651
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseView.h +0 -127
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChange.h +0 -272
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewConnection.h +0 -116
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappings.h +0 -842
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewOptions.h +0 -63
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptions.h +0 -330
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTransaction.h +0 -498
- data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTypes.h +0 -99
- data/vendor/Pods/Headers/YapDatabase/YapSet.h +0 -41
- data/vendor/Pods/Headers/____Pods-CocoaLumberjack-prefix.h +0 -7
- data/vendor/Pods/Headers/____Pods-NSData+MD5Digest-prefix.h +0 -5
- data/vendor/Pods/Headers/____Pods-YapDatabase-prefix.h +0 -5
- data/vendor/Pods/Headers/____Pods-environment.h +0 -38
- data/vendor/Pods/Manifest.lock +0 -22
- data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.h +0 -18
- data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.m +0 -39
- data/vendor/Pods/NSData+MD5Digest/README.md +0 -11
- data/vendor/Pods/Pods-CocoaLumberjack-Private.xcconfig +0 -5
- data/vendor/Pods/Pods-CocoaLumberjack-dummy.m +0 -5
- data/vendor/Pods/Pods-CocoaLumberjack-prefix.pch +0 -7
- data/vendor/Pods/Pods-CocoaLumberjack.xcconfig +0 -0
- data/vendor/Pods/Pods-NSData+MD5Digest-Private.xcconfig +0 -5
- data/vendor/Pods/Pods-NSData+MD5Digest-dummy.m +0 -5
- data/vendor/Pods/Pods-NSData+MD5Digest-prefix.pch +0 -5
- data/vendor/Pods/Pods-NSData+MD5Digest.xcconfig +0 -0
- data/vendor/Pods/Pods-YapDatabase-Private.xcconfig +0 -5
- data/vendor/Pods/Pods-YapDatabase-dummy.m +0 -5
- data/vendor/Pods/Pods-YapDatabase-prefix.pch +0 -5
- data/vendor/Pods/Pods-YapDatabase.xcconfig +0 -1
- data/vendor/Pods/Pods-acknowledgements.markdown +0 -59
- data/vendor/Pods/Pods-acknowledgements.plist +0 -97
- data/vendor/Pods/Pods-dummy.m +0 -5
- data/vendor/Pods/Pods-environment.h +0 -38
- data/vendor/Pods/Pods-resources.sh +0 -68
- data/vendor/Pods/Pods.xcconfig +0 -5
- data/vendor/Pods/Pods.xcodeproj/project.pbxproj +0 -4807
- data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-CocoaLumberjack.xcscheme +0 -59
- data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-NSData+MD5Digest.xcscheme +0 -59
- data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-YapDatabase.xcscheme +0 -59
- data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods.xcscheme +0 -59
- data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/xcschememanagement.plist +0 -31
- data/vendor/Pods/YapDatabase/LICENSE.txt +0 -18
- data/vendor/Pods/YapDatabase/README.md +0 -32
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h +0 -17
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h +0 -81
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m +0 -159
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h +0 -12
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m +0 -41
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h +0 -39
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m +0 -1235
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h +0 -32
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h +0 -77
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h +0 -89
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m +0 -146
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h +0 -32
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m +0 -298
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h +0 -79
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m +0 -95
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h +0 -68
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m +0 -1403
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h +0 -444
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.h +0 -15
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.m +0 -83
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h +0 -11
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m +0 -46
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h +0 -11
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m +0 -204
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h +0 -79
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h +0 -125
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h +0 -35
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m +0 -129
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h +0 -29
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m +0 -802
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h +0 -163
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m +0 -408
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h +0 -99
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h +0 -59
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m +0 -29
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h +0 -384
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m +0 -5254
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h +0 -83
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexSetupPrivate.h +0 -18
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h +0 -149
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m +0 -161
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h +0 -33
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m +0 -331
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h +0 -33
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m +0 -245
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h +0 -58
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m +0 -1269
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h +0 -94
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h +0 -72
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h +0 -36
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm +0 -296
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h +0 -27
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m +0 -28
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h +0 -170
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h +0 -17
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h +0 -272
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m +0 -2500
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h +0 -842
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m +0 -1714
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h +0 -330
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m +0 -141
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.h +0 -127
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.m +0 -194
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.h +0 -116
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.m +0 -888
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.h +0 -63
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.m +0 -27
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h +0 -498
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m +0 -4986
- data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTypes.h +0 -99
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.h +0 -8
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.m +0 -19
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.h +0 -91
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.m +0 -465
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.h +0 -29
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.m +0 -48
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.h +0 -37
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.m +0 -83
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.h +0 -158
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.m +0 -73
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.h +0 -17
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.m +0 -56
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabasePrivate.h +0 -446
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.h +0 -13
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.m +0 -26
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseString.h +0 -121
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.h +0 -74
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.m +0 -603
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.h +0 -17
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.m +0 -35
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.h +0 -15
- data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.m +0 -31
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.h +0 -23
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.m +0 -199
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.h +0 -42
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.m +0 -96
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.h +0 -41
- data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.m +0 -82
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.h +0 -547
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.m +0 -2013
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.h +0 -449
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.m +0 -4046
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.h +0 -651
- data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.m +0 -5602
- data/vendor/Pods/build-iPhoneSimulator/Pods.bridgesupport +0 -3172
- data/vendor/Pods/build-iPhoneSimulator/libPods.a +0 -0
|
@@ -1,727 +0,0 @@
|
|
|
1
|
-
#import "DDAbstractDatabaseLogger.h"
|
|
2
|
-
#import <math.h>
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Welcome to Cocoa Lumberjack!
|
|
6
|
-
*
|
|
7
|
-
* The project page has a wealth of documentation if you have any questions.
|
|
8
|
-
* https://github.com/CocoaLumberjack/CocoaLumberjack
|
|
9
|
-
*
|
|
10
|
-
* If you're new to the project you may wish to read the "Getting Started" wiki.
|
|
11
|
-
* https://github.com/CocoaLumberjack/CocoaLumberjack/wiki/GettingStarted
|
|
12
|
-
**/
|
|
13
|
-
|
|
14
|
-
#if ! __has_feature(objc_arc)
|
|
15
|
-
#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
|
|
16
|
-
#endif
|
|
17
|
-
|
|
18
|
-
@interface DDAbstractDatabaseLogger ()
|
|
19
|
-
- (void)destroySaveTimer;
|
|
20
|
-
- (void)destroyDeleteTimer;
|
|
21
|
-
@end
|
|
22
|
-
|
|
23
|
-
#pragma mark -
|
|
24
|
-
|
|
25
|
-
@implementation DDAbstractDatabaseLogger
|
|
26
|
-
|
|
27
|
-
- (id)init
|
|
28
|
-
{
|
|
29
|
-
if ((self = [super init]))
|
|
30
|
-
{
|
|
31
|
-
saveThreshold = 500;
|
|
32
|
-
saveInterval = 60; // 60 seconds
|
|
33
|
-
maxAge = (60 * 60 * 24 * 7); // 7 days
|
|
34
|
-
deleteInterval = (60 * 5); // 5 minutes
|
|
35
|
-
}
|
|
36
|
-
return self;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
- (void)dealloc
|
|
40
|
-
{
|
|
41
|
-
[self destroySaveTimer];
|
|
42
|
-
[self destroyDeleteTimer];
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
47
|
-
#pragma mark Override Me
|
|
48
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
49
|
-
|
|
50
|
-
- (BOOL)db_log:(DDLogMessage *)logMessage
|
|
51
|
-
{
|
|
52
|
-
// Override me and add your implementation.
|
|
53
|
-
//
|
|
54
|
-
// Return YES if an item was added to the buffer.
|
|
55
|
-
// Return NO if the logMessage was ignored.
|
|
56
|
-
|
|
57
|
-
return NO;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
- (void)db_save
|
|
61
|
-
{
|
|
62
|
-
// Override me and add your implementation.
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
- (void)db_delete
|
|
66
|
-
{
|
|
67
|
-
// Override me and add your implementation.
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
- (void)db_saveAndDelete
|
|
71
|
-
{
|
|
72
|
-
// Override me and add your implementation.
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
76
|
-
#pragma mark Private API
|
|
77
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
78
|
-
|
|
79
|
-
- (void)performSaveAndSuspendSaveTimer
|
|
80
|
-
{
|
|
81
|
-
if (unsavedCount > 0)
|
|
82
|
-
{
|
|
83
|
-
if (deleteOnEverySave)
|
|
84
|
-
[self db_saveAndDelete];
|
|
85
|
-
else
|
|
86
|
-
[self db_save];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
unsavedCount = 0;
|
|
90
|
-
unsavedTime = 0;
|
|
91
|
-
|
|
92
|
-
if (saveTimer && !saveTimerSuspended)
|
|
93
|
-
{
|
|
94
|
-
dispatch_suspend(saveTimer);
|
|
95
|
-
saveTimerSuspended = YES;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
- (void)performDelete
|
|
100
|
-
{
|
|
101
|
-
if (maxAge > 0.0)
|
|
102
|
-
{
|
|
103
|
-
[self db_delete];
|
|
104
|
-
|
|
105
|
-
lastDeleteTime = dispatch_time(DISPATCH_TIME_NOW, 0);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
110
|
-
#pragma mark Timers
|
|
111
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
112
|
-
|
|
113
|
-
- (void)destroySaveTimer
|
|
114
|
-
{
|
|
115
|
-
if (saveTimer)
|
|
116
|
-
{
|
|
117
|
-
dispatch_source_cancel(saveTimer);
|
|
118
|
-
if (saveTimerSuspended)
|
|
119
|
-
{
|
|
120
|
-
// Must resume a timer before releasing it (or it will crash)
|
|
121
|
-
dispatch_resume(saveTimer);
|
|
122
|
-
saveTimerSuspended = NO;
|
|
123
|
-
}
|
|
124
|
-
#if !OS_OBJECT_USE_OBJC
|
|
125
|
-
dispatch_release(saveTimer);
|
|
126
|
-
#endif
|
|
127
|
-
saveTimer = NULL;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
- (void)updateAndResumeSaveTimer
|
|
132
|
-
{
|
|
133
|
-
if ((saveTimer != NULL) && (saveInterval > 0.0) && (unsavedTime > 0.0))
|
|
134
|
-
{
|
|
135
|
-
uint64_t interval = (uint64_t)(saveInterval * NSEC_PER_SEC);
|
|
136
|
-
dispatch_time_t startTime = dispatch_time(unsavedTime, interval);
|
|
137
|
-
|
|
138
|
-
dispatch_source_set_timer(saveTimer, startTime, interval, 1.0);
|
|
139
|
-
|
|
140
|
-
if (saveTimerSuspended)
|
|
141
|
-
{
|
|
142
|
-
dispatch_resume(saveTimer);
|
|
143
|
-
saveTimerSuspended = NO;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
- (void)createSuspendedSaveTimer
|
|
149
|
-
{
|
|
150
|
-
if ((saveTimer == NULL) && (saveInterval > 0.0))
|
|
151
|
-
{
|
|
152
|
-
saveTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue);
|
|
153
|
-
|
|
154
|
-
dispatch_source_set_event_handler(saveTimer, ^{ @autoreleasepool {
|
|
155
|
-
|
|
156
|
-
[self performSaveAndSuspendSaveTimer];
|
|
157
|
-
|
|
158
|
-
}});
|
|
159
|
-
|
|
160
|
-
saveTimerSuspended = YES;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
- (void)destroyDeleteTimer
|
|
165
|
-
{
|
|
166
|
-
if (deleteTimer)
|
|
167
|
-
{
|
|
168
|
-
dispatch_source_cancel(deleteTimer);
|
|
169
|
-
#if !OS_OBJECT_USE_OBJC
|
|
170
|
-
dispatch_release(deleteTimer);
|
|
171
|
-
#endif
|
|
172
|
-
deleteTimer = NULL;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
- (void)updateDeleteTimer
|
|
177
|
-
{
|
|
178
|
-
if ((deleteTimer != NULL) && (deleteInterval > 0.0) && (maxAge > 0.0))
|
|
179
|
-
{
|
|
180
|
-
uint64_t interval = (uint64_t)(deleteInterval * NSEC_PER_SEC);
|
|
181
|
-
dispatch_time_t startTime;
|
|
182
|
-
|
|
183
|
-
if (lastDeleteTime > 0)
|
|
184
|
-
startTime = dispatch_time(lastDeleteTime, interval);
|
|
185
|
-
else
|
|
186
|
-
startTime = dispatch_time(DISPATCH_TIME_NOW, interval);
|
|
187
|
-
|
|
188
|
-
dispatch_source_set_timer(deleteTimer, startTime, interval, 1.0);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
- (void)createAndStartDeleteTimer
|
|
193
|
-
{
|
|
194
|
-
if ((deleteTimer == NULL) && (deleteInterval > 0.0) && (maxAge > 0.0))
|
|
195
|
-
{
|
|
196
|
-
deleteTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerQueue);
|
|
197
|
-
|
|
198
|
-
if (deleteTimer != NULL) {
|
|
199
|
-
dispatch_source_set_event_handler(deleteTimer, ^{ @autoreleasepool {
|
|
200
|
-
|
|
201
|
-
[self performDelete];
|
|
202
|
-
|
|
203
|
-
}});
|
|
204
|
-
|
|
205
|
-
[self updateDeleteTimer];
|
|
206
|
-
|
|
207
|
-
if (deleteTimer != NULL) dispatch_resume(deleteTimer);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
213
|
-
#pragma mark Configuration
|
|
214
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
215
|
-
|
|
216
|
-
- (NSUInteger)saveThreshold
|
|
217
|
-
{
|
|
218
|
-
// The design of this method is taken from the DDAbstractLogger implementation.
|
|
219
|
-
// For extensive documentation please refer to the DDAbstractLogger implementation.
|
|
220
|
-
|
|
221
|
-
// Note: The internal implementation MUST access the colorsEnabled variable directly,
|
|
222
|
-
// This method is designed explicitly for external access.
|
|
223
|
-
//
|
|
224
|
-
// Using "self." syntax to go through this method will cause immediate deadlock.
|
|
225
|
-
// This is the intended result. Fix it by accessing the ivar directly.
|
|
226
|
-
// Great strides have been take to ensure this is safe to do. Plus it's MUCH faster.
|
|
227
|
-
|
|
228
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
229
|
-
NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax.");
|
|
230
|
-
|
|
231
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
232
|
-
|
|
233
|
-
__block NSUInteger result;
|
|
234
|
-
|
|
235
|
-
dispatch_sync(globalLoggingQueue, ^{
|
|
236
|
-
dispatch_sync(loggerQueue, ^{
|
|
237
|
-
result = saveThreshold;
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
return result;
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
- (void)setSaveThreshold:(NSUInteger)threshold
|
|
245
|
-
{
|
|
246
|
-
dispatch_block_t block = ^{ @autoreleasepool {
|
|
247
|
-
|
|
248
|
-
if (saveThreshold != threshold)
|
|
249
|
-
{
|
|
250
|
-
saveThreshold = threshold;
|
|
251
|
-
|
|
252
|
-
// Since the saveThreshold has changed,
|
|
253
|
-
// we check to see if the current unsavedCount has surpassed the new threshold.
|
|
254
|
-
//
|
|
255
|
-
// If it has, we immediately save the log.
|
|
256
|
-
|
|
257
|
-
if ((unsavedCount >= saveThreshold) && (saveThreshold > 0))
|
|
258
|
-
{
|
|
259
|
-
[self performSaveAndSuspendSaveTimer];
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
}};
|
|
263
|
-
|
|
264
|
-
// The design of the setter logic below is taken from the DDAbstractLogger implementation.
|
|
265
|
-
// For documentation please refer to the DDAbstractLogger implementation.
|
|
266
|
-
|
|
267
|
-
if ([self isOnInternalLoggerQueue])
|
|
268
|
-
{
|
|
269
|
-
block();
|
|
270
|
-
}
|
|
271
|
-
else
|
|
272
|
-
{
|
|
273
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
274
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
275
|
-
|
|
276
|
-
dispatch_async(globalLoggingQueue, ^{
|
|
277
|
-
dispatch_async(loggerQueue, block);
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
- (NSTimeInterval)saveInterval
|
|
283
|
-
{
|
|
284
|
-
// The design of this method is taken from the DDAbstractLogger implementation.
|
|
285
|
-
// For extensive documentation please refer to the DDAbstractLogger implementation.
|
|
286
|
-
|
|
287
|
-
// Note: The internal implementation MUST access the colorsEnabled variable directly,
|
|
288
|
-
// This method is designed explicitly for external access.
|
|
289
|
-
//
|
|
290
|
-
// Using "self." syntax to go through this method will cause immediate deadlock.
|
|
291
|
-
// This is the intended result. Fix it by accessing the ivar directly.
|
|
292
|
-
// Great strides have been take to ensure this is safe to do. Plus it's MUCH faster.
|
|
293
|
-
|
|
294
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
295
|
-
NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax.");
|
|
296
|
-
|
|
297
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
298
|
-
|
|
299
|
-
__block NSTimeInterval result;
|
|
300
|
-
|
|
301
|
-
dispatch_sync(globalLoggingQueue, ^{
|
|
302
|
-
dispatch_sync(loggerQueue, ^{
|
|
303
|
-
result = saveInterval;
|
|
304
|
-
});
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
return result;
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
- (void)setSaveInterval:(NSTimeInterval)interval
|
|
311
|
-
{
|
|
312
|
-
dispatch_block_t block = ^{ @autoreleasepool {
|
|
313
|
-
|
|
314
|
-
// C99 recommended floating point comparison macro
|
|
315
|
-
// Read: isLessThanOrGreaterThan(floatA, floatB)
|
|
316
|
-
|
|
317
|
-
if (/* saveInterval != interval */ islessgreater(saveInterval, interval))
|
|
318
|
-
{
|
|
319
|
-
saveInterval = interval;
|
|
320
|
-
|
|
321
|
-
// There are several cases we need to handle here.
|
|
322
|
-
//
|
|
323
|
-
// 1. If the saveInterval was previously enabled and it just got disabled,
|
|
324
|
-
// then we need to stop the saveTimer. (And we might as well release it.)
|
|
325
|
-
//
|
|
326
|
-
// 2. If the saveInterval was previously disabled and it just got enabled,
|
|
327
|
-
// then we need to setup the saveTimer. (Plus we might need to do an immediate save.)
|
|
328
|
-
//
|
|
329
|
-
// 3. If the saveInterval increased, then we need to reset the timer so that it fires at the later date.
|
|
330
|
-
//
|
|
331
|
-
// 4. If the saveInterval decreased, then we need to reset the timer so that it fires at an earlier date.
|
|
332
|
-
// (Plus we might need to do an immediate save.)
|
|
333
|
-
|
|
334
|
-
if (saveInterval > 0.0)
|
|
335
|
-
{
|
|
336
|
-
if (saveTimer == NULL)
|
|
337
|
-
{
|
|
338
|
-
// Handles #2
|
|
339
|
-
//
|
|
340
|
-
// Since the saveTimer uses the unsavedTime to calculate it's first fireDate,
|
|
341
|
-
// if a save is needed the timer will fire immediately.
|
|
342
|
-
|
|
343
|
-
[self createSuspendedSaveTimer];
|
|
344
|
-
[self updateAndResumeSaveTimer];
|
|
345
|
-
}
|
|
346
|
-
else
|
|
347
|
-
{
|
|
348
|
-
// Handles #3
|
|
349
|
-
// Handles #4
|
|
350
|
-
//
|
|
351
|
-
// Since the saveTimer uses the unsavedTime to calculate it's first fireDate,
|
|
352
|
-
// if a save is needed the timer will fire immediately.
|
|
353
|
-
|
|
354
|
-
[self updateAndResumeSaveTimer];
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
else if (saveTimer)
|
|
358
|
-
{
|
|
359
|
-
// Handles #1
|
|
360
|
-
|
|
361
|
-
[self destroySaveTimer];
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
}};
|
|
365
|
-
|
|
366
|
-
// The design of the setter logic below is taken from the DDAbstractLogger implementation.
|
|
367
|
-
// For documentation please refer to the DDAbstractLogger implementation.
|
|
368
|
-
|
|
369
|
-
if ([self isOnInternalLoggerQueue])
|
|
370
|
-
{
|
|
371
|
-
block();
|
|
372
|
-
}
|
|
373
|
-
else
|
|
374
|
-
{
|
|
375
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
376
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
377
|
-
|
|
378
|
-
dispatch_async(globalLoggingQueue, ^{
|
|
379
|
-
dispatch_async(loggerQueue, block);
|
|
380
|
-
});
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
- (NSTimeInterval)maxAge
|
|
385
|
-
{
|
|
386
|
-
// The design of this method is taken from the DDAbstractLogger implementation.
|
|
387
|
-
// For extensive documentation please refer to the DDAbstractLogger implementation.
|
|
388
|
-
|
|
389
|
-
// Note: The internal implementation MUST access the colorsEnabled variable directly,
|
|
390
|
-
// This method is designed explicitly for external access.
|
|
391
|
-
//
|
|
392
|
-
// Using "self." syntax to go through this method will cause immediate deadlock.
|
|
393
|
-
// This is the intended result. Fix it by accessing the ivar directly.
|
|
394
|
-
// Great strides have been take to ensure this is safe to do. Plus it's MUCH faster.
|
|
395
|
-
|
|
396
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
397
|
-
NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax.");
|
|
398
|
-
|
|
399
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
400
|
-
|
|
401
|
-
__block NSTimeInterval result;
|
|
402
|
-
|
|
403
|
-
dispatch_sync(globalLoggingQueue, ^{
|
|
404
|
-
dispatch_sync(loggerQueue, ^{
|
|
405
|
-
result = maxAge;
|
|
406
|
-
});
|
|
407
|
-
});
|
|
408
|
-
|
|
409
|
-
return result;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
- (void)setMaxAge:(NSTimeInterval)interval
|
|
413
|
-
{
|
|
414
|
-
dispatch_block_t block = ^{ @autoreleasepool {
|
|
415
|
-
|
|
416
|
-
// C99 recommended floating point comparison macro
|
|
417
|
-
// Read: isLessThanOrGreaterThan(floatA, floatB)
|
|
418
|
-
|
|
419
|
-
if (/* maxAge != interval */ islessgreater(maxAge, interval))
|
|
420
|
-
{
|
|
421
|
-
NSTimeInterval oldMaxAge = maxAge;
|
|
422
|
-
NSTimeInterval newMaxAge = interval;
|
|
423
|
-
|
|
424
|
-
maxAge = interval;
|
|
425
|
-
|
|
426
|
-
// There are several cases we need to handle here.
|
|
427
|
-
//
|
|
428
|
-
// 1. If the maxAge was previously enabled and it just got disabled,
|
|
429
|
-
// then we need to stop the deleteTimer. (And we might as well release it.)
|
|
430
|
-
//
|
|
431
|
-
// 2. If the maxAge was previously disabled and it just got enabled,
|
|
432
|
-
// then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.)
|
|
433
|
-
//
|
|
434
|
-
// 3. If the maxAge was increased,
|
|
435
|
-
// then we don't need to do anything.
|
|
436
|
-
//
|
|
437
|
-
// 4. If the maxAge was decreased,
|
|
438
|
-
// then we should do an immediate delete.
|
|
439
|
-
|
|
440
|
-
BOOL shouldDeleteNow = NO;
|
|
441
|
-
|
|
442
|
-
if (oldMaxAge > 0.0)
|
|
443
|
-
{
|
|
444
|
-
if (newMaxAge <= 0.0)
|
|
445
|
-
{
|
|
446
|
-
// Handles #1
|
|
447
|
-
|
|
448
|
-
[self destroyDeleteTimer];
|
|
449
|
-
}
|
|
450
|
-
else if (oldMaxAge > newMaxAge)
|
|
451
|
-
{
|
|
452
|
-
// Handles #4
|
|
453
|
-
shouldDeleteNow = YES;
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
|
-
else if (newMaxAge > 0.0)
|
|
457
|
-
{
|
|
458
|
-
// Handles #2
|
|
459
|
-
shouldDeleteNow = YES;
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
if (shouldDeleteNow)
|
|
463
|
-
{
|
|
464
|
-
[self performDelete];
|
|
465
|
-
|
|
466
|
-
if (deleteTimer)
|
|
467
|
-
[self updateDeleteTimer];
|
|
468
|
-
else
|
|
469
|
-
[self createAndStartDeleteTimer];
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
}};
|
|
473
|
-
|
|
474
|
-
// The design of the setter logic below is taken from the DDAbstractLogger implementation.
|
|
475
|
-
// For documentation please refer to the DDAbstractLogger implementation.
|
|
476
|
-
|
|
477
|
-
if ([self isOnInternalLoggerQueue])
|
|
478
|
-
{
|
|
479
|
-
block();
|
|
480
|
-
}
|
|
481
|
-
else
|
|
482
|
-
{
|
|
483
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
484
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
485
|
-
|
|
486
|
-
dispatch_async(globalLoggingQueue, ^{
|
|
487
|
-
dispatch_async(loggerQueue, block);
|
|
488
|
-
});
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
|
|
492
|
-
- (NSTimeInterval)deleteInterval
|
|
493
|
-
{
|
|
494
|
-
// The design of this method is taken from the DDAbstractLogger implementation.
|
|
495
|
-
// For extensive documentation please refer to the DDAbstractLogger implementation.
|
|
496
|
-
|
|
497
|
-
// Note: The internal implementation MUST access the colorsEnabled variable directly,
|
|
498
|
-
// This method is designed explicitly for external access.
|
|
499
|
-
//
|
|
500
|
-
// Using "self." syntax to go through this method will cause immediate deadlock.
|
|
501
|
-
// This is the intended result. Fix it by accessing the ivar directly.
|
|
502
|
-
// Great strides have been take to ensure this is safe to do. Plus it's MUCH faster.
|
|
503
|
-
|
|
504
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
505
|
-
NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax.");
|
|
506
|
-
|
|
507
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
508
|
-
|
|
509
|
-
__block NSTimeInterval result;
|
|
510
|
-
|
|
511
|
-
dispatch_sync(globalLoggingQueue, ^{
|
|
512
|
-
dispatch_sync(loggerQueue, ^{
|
|
513
|
-
result = deleteInterval;
|
|
514
|
-
});
|
|
515
|
-
});
|
|
516
|
-
|
|
517
|
-
return result;
|
|
518
|
-
}
|
|
519
|
-
|
|
520
|
-
- (void)setDeleteInterval:(NSTimeInterval)interval
|
|
521
|
-
{
|
|
522
|
-
dispatch_block_t block = ^{ @autoreleasepool {
|
|
523
|
-
|
|
524
|
-
// C99 recommended floating point comparison macro
|
|
525
|
-
// Read: isLessThanOrGreaterThan(floatA, floatB)
|
|
526
|
-
|
|
527
|
-
if (/* deleteInterval != interval */ islessgreater(deleteInterval, interval))
|
|
528
|
-
{
|
|
529
|
-
deleteInterval = interval;
|
|
530
|
-
|
|
531
|
-
// There are several cases we need to handle here.
|
|
532
|
-
//
|
|
533
|
-
// 1. If the deleteInterval was previously enabled and it just got disabled,
|
|
534
|
-
// then we need to stop the deleteTimer. (And we might as well release it.)
|
|
535
|
-
//
|
|
536
|
-
// 2. If the deleteInterval was previously disabled and it just got enabled,
|
|
537
|
-
// then we need to setup the deleteTimer. (Plus we might need to do an immediate delete.)
|
|
538
|
-
//
|
|
539
|
-
// 3. If the deleteInterval increased, then we need to reset the timer so that it fires at the later date.
|
|
540
|
-
//
|
|
541
|
-
// 4. If the deleteInterval decreased, then we need to reset the timer so that it fires at an earlier date.
|
|
542
|
-
// (Plus we might need to do an immediate delete.)
|
|
543
|
-
|
|
544
|
-
if (deleteInterval > 0.0)
|
|
545
|
-
{
|
|
546
|
-
if (deleteTimer == NULL)
|
|
547
|
-
{
|
|
548
|
-
// Handles #2
|
|
549
|
-
//
|
|
550
|
-
// Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate,
|
|
551
|
-
// if a delete is needed the timer will fire immediately.
|
|
552
|
-
|
|
553
|
-
[self createAndStartDeleteTimer];
|
|
554
|
-
}
|
|
555
|
-
else
|
|
556
|
-
{
|
|
557
|
-
// Handles #3
|
|
558
|
-
// Handles #4
|
|
559
|
-
//
|
|
560
|
-
// Since the deleteTimer uses the lastDeleteTime to calculate it's first fireDate,
|
|
561
|
-
// if a save is needed the timer will fire immediately.
|
|
562
|
-
|
|
563
|
-
[self updateDeleteTimer];
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
else if (deleteTimer)
|
|
567
|
-
{
|
|
568
|
-
// Handles #1
|
|
569
|
-
|
|
570
|
-
[self destroyDeleteTimer];
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
}};
|
|
574
|
-
|
|
575
|
-
// The design of the setter logic below is taken from the DDAbstractLogger implementation.
|
|
576
|
-
// For documentation please refer to the DDAbstractLogger implementation.
|
|
577
|
-
|
|
578
|
-
if ([self isOnInternalLoggerQueue])
|
|
579
|
-
{
|
|
580
|
-
block();
|
|
581
|
-
}
|
|
582
|
-
else
|
|
583
|
-
{
|
|
584
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
585
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
586
|
-
|
|
587
|
-
dispatch_async(globalLoggingQueue, ^{
|
|
588
|
-
dispatch_async(loggerQueue, block);
|
|
589
|
-
});
|
|
590
|
-
}
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
- (BOOL)deleteOnEverySave
|
|
594
|
-
{
|
|
595
|
-
// The design of this method is taken from the DDAbstractLogger implementation.
|
|
596
|
-
// For extensive documentation please refer to the DDAbstractLogger implementation.
|
|
597
|
-
|
|
598
|
-
// Note: The internal implementation MUST access the colorsEnabled variable directly,
|
|
599
|
-
// This method is designed explicitly for external access.
|
|
600
|
-
//
|
|
601
|
-
// Using "self." syntax to go through this method will cause immediate deadlock.
|
|
602
|
-
// This is the intended result. Fix it by accessing the ivar directly.
|
|
603
|
-
// Great strides have been take to ensure this is safe to do. Plus it's MUCH faster.
|
|
604
|
-
|
|
605
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
606
|
-
NSAssert(![self isOnInternalLoggerQueue], @"MUST access ivar directly, NOT via self.* syntax.");
|
|
607
|
-
|
|
608
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
609
|
-
|
|
610
|
-
__block BOOL result;
|
|
611
|
-
|
|
612
|
-
dispatch_sync(globalLoggingQueue, ^{
|
|
613
|
-
dispatch_sync(loggerQueue, ^{
|
|
614
|
-
result = deleteOnEverySave;
|
|
615
|
-
});
|
|
616
|
-
});
|
|
617
|
-
|
|
618
|
-
return result;
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
- (void)setDeleteOnEverySave:(BOOL)flag
|
|
622
|
-
{
|
|
623
|
-
dispatch_block_t block = ^{
|
|
624
|
-
|
|
625
|
-
deleteOnEverySave = flag;
|
|
626
|
-
};
|
|
627
|
-
|
|
628
|
-
// The design of the setter logic below is taken from the DDAbstractLogger implementation.
|
|
629
|
-
// For documentation please refer to the DDAbstractLogger implementation.
|
|
630
|
-
|
|
631
|
-
if ([self isOnInternalLoggerQueue])
|
|
632
|
-
{
|
|
633
|
-
block();
|
|
634
|
-
}
|
|
635
|
-
else
|
|
636
|
-
{
|
|
637
|
-
dispatch_queue_t globalLoggingQueue = [DDLog loggingQueue];
|
|
638
|
-
NSAssert(![self isOnGlobalLoggingQueue], @"Core architecture requirement failure");
|
|
639
|
-
|
|
640
|
-
dispatch_async(globalLoggingQueue, ^{
|
|
641
|
-
dispatch_async(loggerQueue, block);
|
|
642
|
-
});
|
|
643
|
-
}
|
|
644
|
-
}
|
|
645
|
-
|
|
646
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
647
|
-
#pragma mark Public API
|
|
648
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
649
|
-
|
|
650
|
-
- (void)savePendingLogEntries
|
|
651
|
-
{
|
|
652
|
-
dispatch_block_t block = ^{ @autoreleasepool {
|
|
653
|
-
|
|
654
|
-
[self performSaveAndSuspendSaveTimer];
|
|
655
|
-
}};
|
|
656
|
-
|
|
657
|
-
if ([self isOnInternalLoggerQueue])
|
|
658
|
-
block();
|
|
659
|
-
else
|
|
660
|
-
dispatch_async(loggerQueue, block);
|
|
661
|
-
}
|
|
662
|
-
|
|
663
|
-
- (void)deleteOldLogEntries
|
|
664
|
-
{
|
|
665
|
-
dispatch_block_t block = ^{ @autoreleasepool {
|
|
666
|
-
|
|
667
|
-
[self performDelete];
|
|
668
|
-
}};
|
|
669
|
-
|
|
670
|
-
if ([self isOnInternalLoggerQueue])
|
|
671
|
-
block();
|
|
672
|
-
else
|
|
673
|
-
dispatch_async(loggerQueue, block);
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
677
|
-
#pragma mark DDLogger
|
|
678
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
679
|
-
|
|
680
|
-
- (void)didAddLogger
|
|
681
|
-
{
|
|
682
|
-
// If you override me be sure to invoke [super didAddLogger];
|
|
683
|
-
|
|
684
|
-
[self createSuspendedSaveTimer];
|
|
685
|
-
|
|
686
|
-
[self createAndStartDeleteTimer];
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
- (void)willRemoveLogger
|
|
690
|
-
{
|
|
691
|
-
// If you override me be sure to invoke [super willRemoveLogger];
|
|
692
|
-
|
|
693
|
-
[self performSaveAndSuspendSaveTimer];
|
|
694
|
-
|
|
695
|
-
[self destroySaveTimer];
|
|
696
|
-
[self destroyDeleteTimer];
|
|
697
|
-
}
|
|
698
|
-
|
|
699
|
-
- (void)logMessage:(DDLogMessage *)logMessage
|
|
700
|
-
{
|
|
701
|
-
if ([self db_log:logMessage])
|
|
702
|
-
{
|
|
703
|
-
BOOL firstUnsavedEntry = (++unsavedCount == 1);
|
|
704
|
-
|
|
705
|
-
if ((unsavedCount >= saveThreshold) && (saveThreshold > 0))
|
|
706
|
-
{
|
|
707
|
-
[self performSaveAndSuspendSaveTimer];
|
|
708
|
-
}
|
|
709
|
-
else if (firstUnsavedEntry)
|
|
710
|
-
{
|
|
711
|
-
unsavedTime = dispatch_time(DISPATCH_TIME_NOW, 0);
|
|
712
|
-
[self updateAndResumeSaveTimer];
|
|
713
|
-
}
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
|
-
|
|
717
|
-
- (void)flush
|
|
718
|
-
{
|
|
719
|
-
// This method is invoked by DDLog's flushLog method.
|
|
720
|
-
//
|
|
721
|
-
// It is called automatically when the application quits,
|
|
722
|
-
// or if the developer invokes DDLog's flushLog method prior to crashing or something.
|
|
723
|
-
|
|
724
|
-
[self performSaveAndSuspendSaveTimer];
|
|
725
|
-
}
|
|
726
|
-
|
|
727
|
-
@end
|