motion-yapper 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (294) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +3 -1
  4. data/lib/yapper.rb +3 -3
  5. data/lib/yapper/db.rb +61 -4
  6. data/lib/yapper/document/persistence.rb +4 -0
  7. data/lib/yapper/document/selection.rb +13 -0
  8. data/lib/yapper/version.rb +1 -1
  9. data/motion-yapper.gemspec +1 -1
  10. data/spec/integration/search_spec.rb +111 -0
  11. data/vendor/Podfile.lock +11 -7
  12. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.bridgesupport +16 -2
  13. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.h +10 -7
  14. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.m +20 -2
  15. metadata +19 -297
  16. data/vendor/Pods/.build/libPods-CocoaLumberjack.a +0 -0
  17. data/vendor/Pods/.build/libPods-NSData+MD5Digest.a +0 -0
  18. data/vendor/Pods/.build/libPods-YapDatabase.a +0 -0
  19. data/vendor/Pods/.build/libPods.a +0 -0
  20. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDASLLogger.h +0 -41
  21. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDAbstractDatabaseLogger.h +0 -102
  22. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDContextFilterLogFormatter.h +0 -63
  23. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDDispatchQueueLogFormatter.h +0 -128
  24. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDFileLogger.h +0 -369
  25. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog+LOGV.h +0 -99
  26. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog.h +0 -634
  27. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDMultiFormatter.h +0 -30
  28. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDTTYLogger.h +0 -181
  29. data/vendor/Pods/BuildHeaders/NSData+MD5Digest/NSData+MD5Digest.h +0 -18
  30. data/vendor/Pods/BuildHeaders/YapDatabase/NSDictionary+YapDatabase.h +0 -8
  31. data/vendor/Pods/BuildHeaders/YapDatabase/YapCache.h +0 -91
  32. data/vendor/Pods/BuildHeaders/YapDatabase/YapCollectionKey.h +0 -23
  33. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabase.h +0 -547
  34. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnection.h +0 -449
  35. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnectionState.h +0 -29
  36. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseDefaults.h +0 -37
  37. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtension.h +0 -15
  38. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionConnection.h +0 -11
  39. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionPrivate.h +0 -444
  40. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionTransaction.h +0 -11
  41. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredView.h +0 -81
  42. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewConnection.h +0 -12
  43. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewPrivate.h +0 -17
  44. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTransaction.h +0 -39
  45. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTypes.h +0 -32
  46. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearch.h +0 -89
  47. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchConnection.h +0 -32
  48. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchPrivate.h +0 -77
  49. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +0 -79
  50. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchTransaction.h +0 -68
  51. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseLogging.h +0 -158
  52. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseManager.h +0 -17
  53. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabasePrivate.h +0 -446
  54. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseQuery.h +0 -42
  55. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationship.h +0 -35
  56. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipConnection.h +0 -29
  57. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdge.h +0 -163
  58. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdgePrivate.h +0 -79
  59. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipNode.h +0 -99
  60. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipOptions.h +0 -59
  61. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipPrivate.h +0 -125
  62. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipTransaction.h +0 -384
  63. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndex.h +0 -149
  64. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexConnection.h +0 -33
  65. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +0 -83
  66. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetup.h +0 -33
  67. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetupPrivate.h +0 -18
  68. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +0 -58
  69. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseStatement.h +0 -13
  70. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseString.h +0 -121
  71. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseTransaction.h +0 -651
  72. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseView.h +0 -127
  73. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChange.h +0 -272
  74. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChangePrivate.h +0 -94
  75. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewConnection.h +0 -116
  76. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappings.h +0 -842
  77. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappingsPrivate.h +0 -72
  78. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewOptions.h +0 -63
  79. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPage.h +0 -36
  80. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPageMetadata.h +0 -27
  81. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPrivate.h +0 -170
  82. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptions.h +0 -330
  83. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +0 -17
  84. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTransaction.h +0 -498
  85. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTypes.h +0 -99
  86. data/vendor/Pods/BuildHeaders/YapDatabase/YapMemoryTable.h +0 -74
  87. data/vendor/Pods/BuildHeaders/YapDatabase/YapNull.h +0 -17
  88. data/vendor/Pods/BuildHeaders/YapDatabase/YapSet.h +0 -41
  89. data/vendor/Pods/BuildHeaders/YapDatabase/YapTouch.h +0 -15
  90. data/vendor/Pods/CocoaLumberjack/LICENSE.txt +0 -18
  91. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h +0 -41
  92. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m +0 -100
  93. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h +0 -102
  94. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m +0 -727
  95. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h +0 -369
  96. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m +0 -1539
  97. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog+LOGV.h +0 -99
  98. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.h +0 -634
  99. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.m +0 -1208
  100. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h +0 -181
  101. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m +0 -1520
  102. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.h +0 -63
  103. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.m +0 -191
  104. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.h +0 -128
  105. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.m +0 -253
  106. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.h +0 -30
  107. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.m +0 -127
  108. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/README.txt +0 -7
  109. data/vendor/Pods/CocoaLumberjack/README.markdown +0 -74
  110. data/vendor/Pods/Headers/CocoaLumberjack/DDASLLogger.h +0 -41
  111. data/vendor/Pods/Headers/CocoaLumberjack/DDAbstractDatabaseLogger.h +0 -102
  112. data/vendor/Pods/Headers/CocoaLumberjack/DDContextFilterLogFormatter.h +0 -63
  113. data/vendor/Pods/Headers/CocoaLumberjack/DDDispatchQueueLogFormatter.h +0 -128
  114. data/vendor/Pods/Headers/CocoaLumberjack/DDFileLogger.h +0 -369
  115. data/vendor/Pods/Headers/CocoaLumberjack/DDLog+LOGV.h +0 -99
  116. data/vendor/Pods/Headers/CocoaLumberjack/DDLog.h +0 -634
  117. data/vendor/Pods/Headers/CocoaLumberjack/DDMultiFormatter.h +0 -30
  118. data/vendor/Pods/Headers/CocoaLumberjack/DDTTYLogger.h +0 -181
  119. data/vendor/Pods/Headers/NSData+MD5Digest/NSData+MD5Digest.h +0 -18
  120. data/vendor/Pods/Headers/YapDatabase/YapCollectionKey.h +0 -23
  121. data/vendor/Pods/Headers/YapDatabase/YapDatabase.h +0 -547
  122. data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnection.h +0 -449
  123. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtension.h +0 -15
  124. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionConnection.h +0 -11
  125. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionTransaction.h +0 -11
  126. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredView.h +0 -81
  127. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewConnection.h +0 -12
  128. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTransaction.h +0 -39
  129. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTypes.h +0 -32
  130. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearch.h +0 -89
  131. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchConnection.h +0 -32
  132. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +0 -79
  133. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchTransaction.h +0 -68
  134. data/vendor/Pods/Headers/YapDatabase/YapDatabaseQuery.h +0 -42
  135. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationship.h +0 -35
  136. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipConnection.h +0 -29
  137. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipEdge.h +0 -163
  138. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipNode.h +0 -99
  139. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipOptions.h +0 -59
  140. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipTransaction.h +0 -384
  141. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndex.h +0 -149
  142. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexConnection.h +0 -33
  143. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexSetup.h +0 -33
  144. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +0 -58
  145. data/vendor/Pods/Headers/YapDatabase/YapDatabaseTransaction.h +0 -651
  146. data/vendor/Pods/Headers/YapDatabase/YapDatabaseView.h +0 -127
  147. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChange.h +0 -272
  148. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewConnection.h +0 -116
  149. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappings.h +0 -842
  150. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewOptions.h +0 -63
  151. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptions.h +0 -330
  152. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTransaction.h +0 -498
  153. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTypes.h +0 -99
  154. data/vendor/Pods/Headers/YapDatabase/YapSet.h +0 -41
  155. data/vendor/Pods/Headers/____Pods-CocoaLumberjack-prefix.h +0 -7
  156. data/vendor/Pods/Headers/____Pods-NSData+MD5Digest-prefix.h +0 -5
  157. data/vendor/Pods/Headers/____Pods-YapDatabase-prefix.h +0 -5
  158. data/vendor/Pods/Headers/____Pods-environment.h +0 -38
  159. data/vendor/Pods/Manifest.lock +0 -22
  160. data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.h +0 -18
  161. data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.m +0 -39
  162. data/vendor/Pods/NSData+MD5Digest/README.md +0 -11
  163. data/vendor/Pods/Pods-CocoaLumberjack-Private.xcconfig +0 -5
  164. data/vendor/Pods/Pods-CocoaLumberjack-dummy.m +0 -5
  165. data/vendor/Pods/Pods-CocoaLumberjack-prefix.pch +0 -7
  166. data/vendor/Pods/Pods-CocoaLumberjack.xcconfig +0 -0
  167. data/vendor/Pods/Pods-NSData+MD5Digest-Private.xcconfig +0 -5
  168. data/vendor/Pods/Pods-NSData+MD5Digest-dummy.m +0 -5
  169. data/vendor/Pods/Pods-NSData+MD5Digest-prefix.pch +0 -5
  170. data/vendor/Pods/Pods-NSData+MD5Digest.xcconfig +0 -0
  171. data/vendor/Pods/Pods-YapDatabase-Private.xcconfig +0 -5
  172. data/vendor/Pods/Pods-YapDatabase-dummy.m +0 -5
  173. data/vendor/Pods/Pods-YapDatabase-prefix.pch +0 -5
  174. data/vendor/Pods/Pods-YapDatabase.xcconfig +0 -1
  175. data/vendor/Pods/Pods-acknowledgements.markdown +0 -59
  176. data/vendor/Pods/Pods-acknowledgements.plist +0 -97
  177. data/vendor/Pods/Pods-dummy.m +0 -5
  178. data/vendor/Pods/Pods-environment.h +0 -38
  179. data/vendor/Pods/Pods-resources.sh +0 -68
  180. data/vendor/Pods/Pods.xcconfig +0 -5
  181. data/vendor/Pods/Pods.xcodeproj/project.pbxproj +0 -4807
  182. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-CocoaLumberjack.xcscheme +0 -59
  183. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-NSData+MD5Digest.xcscheme +0 -59
  184. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-YapDatabase.xcscheme +0 -59
  185. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods.xcscheme +0 -59
  186. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/xcschememanagement.plist +0 -31
  187. data/vendor/Pods/YapDatabase/LICENSE.txt +0 -18
  188. data/vendor/Pods/YapDatabase/README.md +0 -32
  189. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h +0 -17
  190. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h +0 -81
  191. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m +0 -159
  192. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h +0 -12
  193. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m +0 -41
  194. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h +0 -39
  195. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m +0 -1235
  196. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h +0 -32
  197. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h +0 -77
  198. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h +0 -89
  199. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m +0 -146
  200. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h +0 -32
  201. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m +0 -298
  202. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h +0 -79
  203. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m +0 -95
  204. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h +0 -68
  205. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m +0 -1403
  206. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h +0 -444
  207. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.h +0 -15
  208. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.m +0 -83
  209. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h +0 -11
  210. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m +0 -46
  211. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h +0 -11
  212. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m +0 -204
  213. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h +0 -79
  214. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h +0 -125
  215. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h +0 -35
  216. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m +0 -129
  217. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h +0 -29
  218. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m +0 -802
  219. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h +0 -163
  220. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m +0 -408
  221. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h +0 -99
  222. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h +0 -59
  223. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m +0 -29
  224. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h +0 -384
  225. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m +0 -5254
  226. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h +0 -83
  227. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexSetupPrivate.h +0 -18
  228. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h +0 -149
  229. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m +0 -161
  230. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h +0 -33
  231. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m +0 -331
  232. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h +0 -33
  233. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m +0 -245
  234. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h +0 -58
  235. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m +0 -1269
  236. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h +0 -94
  237. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h +0 -72
  238. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h +0 -36
  239. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm +0 -296
  240. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h +0 -27
  241. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m +0 -28
  242. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h +0 -170
  243. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h +0 -17
  244. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h +0 -272
  245. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m +0 -2500
  246. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h +0 -842
  247. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m +0 -1714
  248. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h +0 -330
  249. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m +0 -141
  250. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.h +0 -127
  251. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.m +0 -194
  252. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.h +0 -116
  253. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.m +0 -888
  254. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.h +0 -63
  255. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.m +0 -27
  256. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h +0 -498
  257. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m +0 -4986
  258. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTypes.h +0 -99
  259. data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.h +0 -8
  260. data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.m +0 -19
  261. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.h +0 -91
  262. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.m +0 -465
  263. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.h +0 -29
  264. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.m +0 -48
  265. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.h +0 -37
  266. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.m +0 -83
  267. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.h +0 -158
  268. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.m +0 -73
  269. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.h +0 -17
  270. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.m +0 -56
  271. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabasePrivate.h +0 -446
  272. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.h +0 -13
  273. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.m +0 -26
  274. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseString.h +0 -121
  275. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.h +0 -74
  276. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.m +0 -603
  277. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.h +0 -17
  278. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.m +0 -35
  279. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.h +0 -15
  280. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.m +0 -31
  281. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.h +0 -23
  282. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.m +0 -199
  283. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.h +0 -42
  284. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.m +0 -96
  285. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.h +0 -41
  286. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.m +0 -82
  287. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.h +0 -547
  288. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.m +0 -2013
  289. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.h +0 -449
  290. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.m +0 -4046
  291. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.h +0 -651
  292. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.m +0 -5602
  293. data/vendor/Pods/build-iPhoneSimulator/Pods.bridgesupport +0 -3172
  294. 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