motion-yapper 0.0.1 → 0.0.2

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.
Files changed (296) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/.travis.yml +2 -0
  4. data/Gemfile +1 -0
  5. data/README.md +1 -1
  6. data/Rakefile +1 -1
  7. data/lib/motion-yapper.rb +1 -0
  8. data/lib/yapper.rb +3 -5
  9. data/lib/yapper/config.rb +2 -0
  10. data/lib/yapper/db.rb +105 -40
  11. data/lib/yapper/document.rb +7 -4
  12. data/lib/yapper/document/callbacks.rb +0 -7
  13. data/lib/yapper/document/{persistance.rb → persistence.rb} +27 -21
  14. data/lib/yapper/document/relation.rb +29 -22
  15. data/lib/yapper/document/selection.rb +122 -54
  16. data/lib/yapper/extensions.rb +12 -24
  17. data/lib/yapper/settings.rb +43 -0
  18. data/lib/yapper/timestamps.rb +2 -0
  19. data/lib/yapper/version.rb +1 -1
  20. data/{yapper.gemspec → motion-yapper.gemspec} +0 -0
  21. data/spec/integration/{where_spec.rb → criteria_spec.rb} +78 -10
  22. data/spec/integration/db_spec.rb +70 -0
  23. data/spec/integration/defaults_spec.rb +37 -0
  24. data/spec/integration/extensions_spec.rb +14 -0
  25. data/spec/integration/{persistance_spec.rb → persistence_spec.rb} +0 -0
  26. data/spec/integration/relation_spec.rb +4 -4
  27. data/vendor/Podfile.lock +9 -11
  28. data/vendor/Pods/.build/libPods-CocoaLumberjack.a +0 -0
  29. data/vendor/Pods/.build/libPods-NSData+MD5Digest.a +0 -0
  30. data/vendor/Pods/.build/libPods-YapDatabase.a +0 -0
  31. data/vendor/Pods/.build/libPods.a +0 -0
  32. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDASLLogger.h +4 -4
  33. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDAbstractDatabaseLogger.h +14 -14
  34. data/vendor/Pods/{CocoaLumberjack/Lumberjack/Extensions/ContextFilterLogFormatter.h → BuildHeaders/CocoaLumberjack/DDContextFilterLogFormatter.h} +6 -8
  35. data/vendor/Pods/BuildHeaders/CocoaLumberjack/{DispatchQueueLogFormatter.h → DDDispatchQueueLogFormatter.h} +18 -6
  36. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDFileLogger.h +67 -32
  37. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog+LOGV.h +99 -0
  38. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog.h +98 -65
  39. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDMultiFormatter.h +30 -0
  40. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDTTYLogger.h +39 -25
  41. data/vendor/Pods/BuildHeaders/YapDatabase/NSDictionary+YapDatabase.h +8 -0
  42. data/vendor/Pods/BuildHeaders/YapDatabase/YapCache.h +1 -0
  43. data/vendor/Pods/BuildHeaders/YapDatabase/YapCollectionKey.h +3 -0
  44. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabase.h +4 -4
  45. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnection.h +21 -19
  46. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseDefaults.h +1 -1
  47. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionPrivate.h +35 -31
  48. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredView.h +8 -35
  49. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewPrivate.h +0 -2
  50. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTransaction.h +17 -17
  51. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTypes.h +32 -0
  52. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchPrivate.h +8 -0
  53. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabasePrivate.h +43 -21
  54. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationship.h +35 -0
  55. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipConnection.h +29 -0
  56. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdge.h +163 -0
  57. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdgePrivate.h +79 -0
  58. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipNode.h +99 -0
  59. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipOptions.h +59 -0
  60. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipPrivate.h +125 -0
  61. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipTransaction.h +384 -0
  62. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndex.h +49 -0
  63. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +10 -0
  64. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetupPrivate.h +18 -0
  65. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseTransaction.h +131 -21
  66. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseView.h +48 -107
  67. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChange.h +2 -2
  68. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewConnection.h +1 -0
  69. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappings.h +17 -0
  70. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewOptions.h +10 -3
  71. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPrivate.h +18 -1
  72. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTransaction.h +75 -24
  73. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTypes.h +99 -0
  74. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h +4 -4
  75. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m +51 -50
  76. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h +14 -14
  77. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m +546 -546
  78. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h +67 -32
  79. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m +1093 -907
  80. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog+LOGV.h +99 -0
  81. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.h +98 -65
  82. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.m +873 -748
  83. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h +39 -25
  84. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m +1284 -1243
  85. data/vendor/Pods/{BuildHeaders/CocoaLumberjack/ContextFilterLogFormatter.h → CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.h} +6 -8
  86. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/{ContextFilterLogFormatter.m → DDContextFilterLogFormatter.m} +70 -70
  87. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/{DispatchQueueLogFormatter.h → DDDispatchQueueLogFormatter.h} +18 -6
  88. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.m +253 -0
  89. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.h +30 -0
  90. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.m +127 -0
  91. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/README.txt +1 -1
  92. data/vendor/Pods/CocoaLumberjack/README.markdown +52 -15
  93. data/vendor/Pods/Headers/CocoaLumberjack/DDASLLogger.h +4 -4
  94. data/vendor/Pods/Headers/CocoaLumberjack/DDAbstractDatabaseLogger.h +14 -14
  95. data/vendor/Pods/Headers/CocoaLumberjack/{ContextFilterLogFormatter.h → DDContextFilterLogFormatter.h} +6 -8
  96. data/vendor/Pods/Headers/CocoaLumberjack/{DispatchQueueLogFormatter.h → DDDispatchQueueLogFormatter.h} +18 -6
  97. data/vendor/Pods/Headers/CocoaLumberjack/DDFileLogger.h +67 -32
  98. data/vendor/Pods/Headers/CocoaLumberjack/DDLog+LOGV.h +99 -0
  99. data/vendor/Pods/Headers/CocoaLumberjack/DDLog.h +98 -65
  100. data/vendor/Pods/Headers/CocoaLumberjack/DDMultiFormatter.h +30 -0
  101. data/vendor/Pods/Headers/CocoaLumberjack/DDTTYLogger.h +39 -25
  102. data/vendor/Pods/Headers/YapDatabase/YapCollectionKey.h +3 -0
  103. data/vendor/Pods/Headers/YapDatabase/YapDatabase.h +4 -4
  104. data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnection.h +21 -19
  105. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredView.h +8 -35
  106. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTransaction.h +17 -17
  107. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTypes.h +32 -0
  108. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationship.h +35 -0
  109. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipConnection.h +29 -0
  110. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipEdge.h +163 -0
  111. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipNode.h +99 -0
  112. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipOptions.h +59 -0
  113. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipTransaction.h +384 -0
  114. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndex.h +49 -0
  115. data/vendor/Pods/Headers/YapDatabase/YapDatabaseTransaction.h +131 -21
  116. data/vendor/Pods/Headers/YapDatabase/YapDatabaseView.h +48 -107
  117. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChange.h +2 -2
  118. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewConnection.h +1 -0
  119. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappings.h +17 -0
  120. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewOptions.h +10 -3
  121. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTransaction.h +75 -24
  122. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTypes.h +99 -0
  123. data/vendor/Pods/Headers/____Pods-CocoaLumberjack-prefix.h +2 -0
  124. data/vendor/Pods/Headers/____Pods-environment.h +15 -15
  125. data/vendor/Pods/Manifest.lock +9 -11
  126. data/vendor/Pods/Pods-CocoaLumberjack-Private.xcconfig +1 -1
  127. data/vendor/Pods/Pods-CocoaLumberjack-prefix.pch +2 -0
  128. data/vendor/Pods/Pods-NSData+MD5Digest-Private.xcconfig +1 -1
  129. data/vendor/Pods/Pods-YapDatabase-Private.xcconfig +1 -1
  130. data/vendor/Pods/{Pods-Acknowledgements.markdown → Pods-acknowledgements.markdown} +0 -37
  131. data/vendor/Pods/{Pods-Acknowledgements.plist → Pods-acknowledgements.plist} +0 -45
  132. data/vendor/Pods/Pods-environment.h +15 -15
  133. data/vendor/Pods/Pods.xcconfig +3 -3
  134. data/vendor/Pods/Pods.xcodeproj/project.pbxproj +2426 -3155
  135. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-CocoaLumberjack.xcscheme +59 -0
  136. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-NSData+MD5Digest.xcscheme +59 -0
  137. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-YapDatabase.xcscheme +59 -0
  138. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods.xcscheme +59 -0
  139. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/xcschememanagement.plist +31 -0
  140. data/vendor/Pods/YapDatabase/README.md +3 -1
  141. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h +0 -2
  142. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h +8 -35
  143. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m +25 -41
  144. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h +17 -17
  145. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m +403 -134
  146. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h +32 -0
  147. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h +8 -0
  148. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m +8 -8
  149. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m +113 -62
  150. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h +35 -31
  151. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.m +25 -0
  152. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m +1 -1
  153. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m +25 -1
  154. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h +79 -0
  155. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h +125 -0
  156. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h +35 -0
  157. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m +129 -0
  158. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h +29 -0
  159. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m +802 -0
  160. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h +163 -0
  161. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m +408 -0
  162. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h +99 -0
  163. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h +59 -0
  164. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m +29 -0
  165. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h +384 -0
  166. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m +5254 -0
  167. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h +10 -0
  168. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexSetupPrivate.h +18 -0
  169. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h +49 -0
  170. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m +12 -0
  171. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m +9 -8
  172. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m +62 -1
  173. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m +148 -45
  174. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h +18 -1
  175. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h +2 -2
  176. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m +15 -9
  177. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h +17 -0
  178. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m +211 -64
  179. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.h +48 -107
  180. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.m +10 -7
  181. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.h +1 -0
  182. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.m +13 -22
  183. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.h +10 -3
  184. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h +75 -24
  185. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m +725 -244
  186. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTypes.h +99 -0
  187. data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.h +8 -0
  188. data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.m +19 -0
  189. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.h +1 -0
  190. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.m +12 -0
  191. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.h +1 -1
  192. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.m +3 -3
  193. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabasePrivate.h +43 -21
  194. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.m +4 -0
  195. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.h +3 -0
  196. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.m +5 -0
  197. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.h +4 -4
  198. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.m +84 -93
  199. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.h +21 -19
  200. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.m +381 -209
  201. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.h +131 -21
  202. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.m +587 -267
  203. data/vendor/Pods/{Pods.bridgesupport → build-iPhoneSimulator/Pods.bridgesupport} +633 -2557
  204. data/vendor/Pods/build-iPhoneSimulator/libPods.a +0 -0
  205. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.bridgesupport +2 -1
  206. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.h +2 -1
  207. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.m +4 -2
  208. metadata +80 -108
  209. data/Gemfile.lock +0 -63
  210. data/lib/yapper/attachment.rb +0 -48
  211. data/lib/yapper/document/attachment.rb +0 -26
  212. data/lib/yapper/sync.rb +0 -134
  213. data/lib/yapper/sync/data.rb +0 -12
  214. data/lib/yapper/sync/event.rb +0 -194
  215. data/lib/yapper/sync/queue.rb +0 -164
  216. data/spec/integration/all_spec.rb +0 -40
  217. data/spec/integration/sync_spec.rb +0 -42
  218. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.h +0 -641
  219. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.m +0 -1396
  220. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h +0 -133
  221. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m +0 -327
  222. data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.h +0 -113
  223. data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.m +0 -321
  224. data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.h +0 -71
  225. data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.m +0 -150
  226. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.h +0 -75
  227. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.m +0 -157
  228. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworking.h +0 -43
  229. data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.h +0 -68
  230. data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.m +0 -143
  231. data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h +0 -370
  232. data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m +0 -848
  233. data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.h +0 -89
  234. data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.m +0 -167
  235. data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.h +0 -78
  236. data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.m +0 -191
  237. data/vendor/Pods/AFNetworking/LICENSE +0 -19
  238. data/vendor/Pods/AFNetworking/README.md +0 -208
  239. data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPClient.h +0 -641
  240. data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h +0 -133
  241. data/vendor/Pods/BuildHeaders/AFNetworking/AFImageRequestOperation.h +0 -113
  242. data/vendor/Pods/BuildHeaders/AFNetworking/AFJSONRequestOperation.h +0 -71
  243. data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h +0 -75
  244. data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworking.h +0 -43
  245. data/vendor/Pods/BuildHeaders/AFNetworking/AFPropertyListRequestOperation.h +0 -68
  246. data/vendor/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h +0 -370
  247. data/vendor/Pods/BuildHeaders/AFNetworking/AFXMLRequestOperation.h +0 -89
  248. data/vendor/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h +0 -78
  249. data/vendor/Pods/BuildHeaders/Reachability/Reachability.h +0 -109
  250. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DispatchQueueLogFormatter.m +0 -251
  251. data/vendor/Pods/Headers/AFNetworking/AFHTTPClient.h +0 -641
  252. data/vendor/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h +0 -133
  253. data/vendor/Pods/Headers/AFNetworking/AFImageRequestOperation.h +0 -113
  254. data/vendor/Pods/Headers/AFNetworking/AFJSONRequestOperation.h +0 -71
  255. data/vendor/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h +0 -75
  256. data/vendor/Pods/Headers/AFNetworking/AFNetworking.h +0 -43
  257. data/vendor/Pods/Headers/AFNetworking/AFPropertyListRequestOperation.h +0 -68
  258. data/vendor/Pods/Headers/AFNetworking/AFURLConnectionOperation.h +0 -370
  259. data/vendor/Pods/Headers/AFNetworking/AFXMLRequestOperation.h +0 -89
  260. data/vendor/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h +0 -78
  261. data/vendor/Pods/Headers/Reachability/Reachability.h +0 -109
  262. data/vendor/Pods/Headers/YapDatabase/YapCache.h +0 -90
  263. data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnectionState.h +0 -29
  264. data/vendor/Pods/Headers/YapDatabase/YapDatabaseDefaults.h +0 -37
  265. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionPrivate.h +0 -440
  266. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewPrivate.h +0 -19
  267. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchPrivate.h +0 -69
  268. data/vendor/Pods/Headers/YapDatabase/YapDatabaseLogging.h +0 -158
  269. data/vendor/Pods/Headers/YapDatabase/YapDatabaseManager.h +0 -17
  270. data/vendor/Pods/Headers/YapDatabase/YapDatabasePrivate.h +0 -424
  271. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +0 -73
  272. data/vendor/Pods/Headers/YapDatabase/YapDatabaseStatement.h +0 -13
  273. data/vendor/Pods/Headers/YapDatabase/YapDatabaseString.h +0 -121
  274. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChangePrivate.h +0 -94
  275. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappingsPrivate.h +0 -72
  276. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPage.h +0 -36
  277. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPageMetadata.h +0 -27
  278. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPrivate.h +0 -153
  279. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +0 -17
  280. data/vendor/Pods/Headers/YapDatabase/YapMemoryTable.h +0 -74
  281. data/vendor/Pods/Headers/YapDatabase/YapNull.h +0 -17
  282. data/vendor/Pods/Headers/YapDatabase/YapTouch.h +0 -15
  283. data/vendor/Pods/Headers/____Pods-AFNetworking-prefix.h +0 -17
  284. data/vendor/Pods/Headers/____Pods-Reachability-prefix.h +0 -5
  285. data/vendor/Pods/Pods-AFNetworking-Private.xcconfig +0 -5
  286. data/vendor/Pods/Pods-AFNetworking-dummy.m +0 -5
  287. data/vendor/Pods/Pods-AFNetworking-prefix.pch +0 -17
  288. data/vendor/Pods/Pods-AFNetworking.xcconfig +0 -1
  289. data/vendor/Pods/Pods-Reachability-Private.xcconfig +0 -5
  290. data/vendor/Pods/Pods-Reachability-dummy.m +0 -5
  291. data/vendor/Pods/Pods-Reachability-prefix.pch +0 -5
  292. data/vendor/Pods/Pods-Reachability.xcconfig +0 -1
  293. data/vendor/Pods/Reachability/LICENCE.txt +0 -24
  294. data/vendor/Pods/Reachability/README.md +0 -65
  295. data/vendor/Pods/Reachability/Reachability.h +0 -109
  296. data/vendor/Pods/Reachability/Reachability.m +0 -527
@@ -0,0 +1,8 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+
4
+ @interface NSDictionary (YapDatabase)
5
+
6
+ - (BOOL)ydb_containsKey:(id)key;
7
+
8
+ @end
@@ -63,6 +63,7 @@
63
63
  - (void)removeObjectsForKeys:(NSArray *)keys;
64
64
 
65
65
  - (void)enumerateKeysWithBlock:(void (^)(id key, BOOL *stop))block;
66
+ - (void)enumerateKeysAndObjectsWithBlock:(void (^)(id key, id obj, BOOL *stop))block;
66
67
 
67
68
  //
68
69
  // Some debugging stuff that gets compiled out
@@ -14,6 +14,9 @@
14
14
  @property (nonatomic, strong, readonly) NSString *collection;
15
15
  @property (nonatomic, strong, readonly) NSString *key;
16
16
 
17
+ - (BOOL)isEqualToCollectionKey:(YapCollectionKey *)collectionKey;
18
+
19
+ // These methods are overriden and optimized:
17
20
  - (BOOL)isEqual:(id)anObject;
18
21
  - (NSUInteger)hash;
19
22
 
@@ -330,7 +330,7 @@ extern NSString *const YapDatabaseAllKeysRemovedKey;
330
330
 
331
331
  #if TARGET_OS_IPHONE
332
332
  /**
333
- * Allows you to set the default autoFlushMemoryLevel for all new connections.
333
+ * Allows you to set the default autoFlushMemoryFlags for all new connections.
334
334
  *
335
335
  * When you create a connection via [database newConnection], that new connection will inherit
336
336
  * its initial configuration via the default values configured for the parent database.
@@ -339,12 +339,12 @@ extern NSString *const YapDatabaseAllKeysRemovedKey;
339
339
  * Changing the default values only affects future connections that will be created.
340
340
  * It does not affect connections that have already been created.
341
341
  *
342
- * The default defaultAutoFlushMemoryLevel is YapDatabaseConnectionFlushMemoryLevelMild.
342
+ * The default defaultAutoFlushMemoryFlags is YapDatabaseConnectionFlushMemoryFlags_All.
343
343
  *
344
344
  * For more detailed documentation on these properties, see the YapDatabaseConnection header file.
345
- * @see YapDatabaseConnection autoFlushMemoryLevel
345
+ * @see YapDatabaseConnection autoFlushMemoryFlags
346
346
  **/
347
- @property (atomic, assign, readwrite) int defaultAutoFlushMemoryLevel;
347
+ @property (atomic, assign, readwrite) int defaultAutoFlushMemoryFlags;
348
348
  #endif
349
349
 
350
350
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -29,12 +29,14 @@
29
29
  * But for conncurrent access between multiple threads you must use multiple connections.
30
30
  **/
31
31
 
32
- typedef enum {
33
- YapDatabaseConnectionFlushMemoryLevelNone = 0,
34
- YapDatabaseConnectionFlushMemoryLevelMild = 1,
35
- YapDatabaseConnectionFlushMemoryLevelModerate = 2,
36
- YapDatabaseConnectionFlushMemoryLevelFull = 3,
37
- } YapDatabaseConnectionFlushMemoryLevel;
32
+ enum {
33
+ YapDatabaseConnectionFlushMemoryFlags_None = 0,
34
+ YapDatabaseConnectionFlushMemoryFlags_Caches = 1 << 0,
35
+ YapDatabaseConnectionFlushMemoryFlags_Statements = 1 << 1,
36
+ YapDatabaseConnectionFlushMemoryFlags_All = (YapDatabaseConnectionFlushMemoryFlags_Caches |
37
+ YapDatabaseConnectionFlushMemoryFlags_Statements),
38
+ };
39
+ typedef int YapDatabaseConnectionFlushMemoryFlags;
38
40
 
39
41
  typedef enum {
40
42
  YapDatabasePolicyContainment = 0,
@@ -418,30 +420,30 @@ typedef enum {
418
420
  * Depending upon how often you use the database connection,
419
421
  * you may want to be more or less aggressive on how much stuff you flush.
420
422
  *
421
- * YapDatabaseConnectionFlushMemoryLevelNone (0):
422
- * No-op. Doesn't flush any caches or anything from internal memory.
423
+ * YapDatabaseConnectionFlushMemoryFlags_None:
424
+ * No-op. Doesn't flush anything.
423
425
  *
424
- * YapDatabaseConnectionFlushMemoryLevelMild (1):
425
- * Flushes the object cache and metadata cache.
426
+ * YapDatabaseConnectionFlushMemoryFlags_Caches:
427
+ * Flushes all caches, including the object cache and metadata cache.
426
428
  *
427
- * YapDatabaseConnectionFlushMemoryLevelModerate (2):
428
- * Mild plus drops less common pre-compiled sqlite statements.
429
+ * YapDatabaseConnectionFlushMemoryFlags_Statements:
430
+ * Flushes all pre-compiled sqlite statements.
429
431
  *
430
- * YapDatabaseConnectionFlushMemoryLevelFull (3):
431
- * Full flush of all caches and removes all pre-compiled sqlite statements.
432
+ * YapDatabaseConnectionFlushMemoryFlags_All:
433
+ * Full flush of all caches and pre-compiled sqlite statements.
432
434
  **/
433
- - (void)flushMemoryWithLevel:(int)level;
435
+ - (void)flushMemoryWithFlags:(YapDatabaseConnectionFlushMemoryFlags)flags;
434
436
 
435
437
  #if TARGET_OS_IPHONE
436
438
  /**
437
439
  * When a UIApplicationDidReceiveMemoryWarningNotification is received,
438
- * the code automatically invokes flushMemoryWithLevel and passes this set level.
440
+ * the code automatically invokes flushMemoryWithFlags and passes the set flags.
439
441
  *
440
- * The default value is YapDatabaseConnectionFlushMemoryLevelMild.
442
+ * The default value is YapDatabaseConnectionFlushMemoryFlags_All.
441
443
  *
442
- * @see flushMemoryWithLevel:
444
+ * @see flushMemoryWithFlags:
443
445
  **/
444
- @property (atomic, assign, readwrite) int autoFlushMemoryLevel;
446
+ @property (atomic, assign, readwrite) YapDatabaseConnectionFlushMemoryFlags autoFlushMemoryFlags;
445
447
  #endif
446
448
 
447
449
  @end
@@ -31,7 +31,7 @@
31
31
  @property (nonatomic, assign, readwrite) YapDatabasePolicy metadataPolicy;
32
32
 
33
33
  #if TARGET_OS_IPHONE
34
- @property (nonatomic, assign, readwrite) int autoFlushMemoryLevel;
34
+ @property (nonatomic, assign, readwrite) YapDatabaseConnectionFlushMemoryFlags autoFlushMemoryFlags;
35
35
  #endif
36
36
 
37
37
  @end
@@ -7,6 +7,7 @@
7
7
  #import "YapDatabase.h"
8
8
  #import "YapDatabaseConnection.h"
9
9
  #import "YapDatabaseTransaction.h"
10
+ #import "YapCollectionKey.h"
10
11
 
11
12
  #import "sqlite3.h"
12
13
 
@@ -136,34 +137,19 @@
136
137
  * This method will be invoked in order to flush memory.
137
138
  * Subclasses are encouraged to do something similar to the following:
138
139
  *
139
- * if (level >= YapDatabaseConnectionFlushMemoryLevelMild)
140
+ * if (flags & YapDatabaseConnectionFlushMemoryFlags_Caches)
140
141
  * {
141
142
  * // Dump all caches
142
143
  * }
143
144
  *
144
- * if (level >= YapDatabaseConnectionFlushMemoryLevelModerate)
145
+ * if (flags & YapDatabaseConnectionFlushMemoryFlags_Statements)
145
146
  * {
146
- * // Release any prepared statements that aren't constantly used.
147
- * //
148
- * // For example, any statements that make modifications to the database,
149
- * // and any other statements that are likely to be used infrequently.
147
+ * // Dump all pre-compiled statements
150
148
  *
151
149
  * sqlite_finalize_null(&myStatement);
152
150
  * }
153
- *
154
- * if (level >= YapDatabaseConnectionFlushMemoryLevelFull)
155
- * {
156
- * // Release all other prepared statements
157
- *
158
- * sqlite_finalize_null(&myOtherStatement);
159
- *
160
- * // And flush any state that may have been prepared via
161
- * // the extTransaction's prepareIfNeeded method.
162
- *
163
- * viewGroups = nil;
164
- * }
165
151
  **/
166
- - (void)_flushMemoryWithLevel:(int)level;
152
+ - (void)_flushMemoryWithFlags:(YapDatabaseConnectionFlushMemoryFlags)flags;
167
153
 
168
154
  /**
169
155
  * Subclasses MUST implement this method.
@@ -325,6 +311,21 @@
325
311
  **/
326
312
  - (BOOL)prepareIfNeeded;
327
313
 
314
+ /**
315
+ * Subclasses may OPTIONALLY implement this method.
316
+ * This method is only called if within a readwrite transaction.
317
+ *
318
+ * Subclasses should ONLY implement this method if they need to make changes to the 'database' table.
319
+ * That is, the main collection/key/value table that directly stores the user's objects.
320
+ *
321
+ * Return NO if the extension does not directly modify the main database table.
322
+ * Return YES if the extension does modify the main database table,
323
+ * regardless of whether it made changes during this invocation.
324
+ *
325
+ * This method may be invoked several times in a row.
326
+ **/
327
+ - (BOOL)flushPendingChangesToMainDatabaseTable;
328
+
328
329
  /**
329
330
  * Subclasses may OPTIONALLY implement this method.
330
331
  * This method is only called if within a readwrite transaction.
@@ -332,7 +333,7 @@
332
333
  * Subclasses may implement it to perform any "cleanup" before the changeset is requested.
333
334
  * Remember, the changeset is requested before the commitTransaction method is invoked.
334
335
  **/
335
- - (void)preCommitReadWriteTransaction;
336
+ - (void)prepareChangeset;
336
337
 
337
338
  /**
338
339
  * Subclasses MUST implement this method.
@@ -400,6 +401,8 @@
400
401
  - (NSData *)dataValueForExtensionKey:(NSString *)key;
401
402
  - (void)setDataValue:(NSData *)value forExtensionKey:(NSString *)key;
402
403
 
404
+ - (void)removeValueForExtensionKey:(NSString *)key;
405
+
403
406
  @end
404
407
 
405
408
  ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -413,26 +416,27 @@
413
416
  @required
414
417
 
415
418
  - (void)handleInsertObject:(id)object
416
- forKey:(NSString *)key
417
- inCollection:(NSString *)collection
419
+ forCollectionKey:(YapCollectionKey *)collectionKey
418
420
  withMetadata:(id)metadata
419
421
  rowid:(int64_t)rowid;
420
422
 
421
423
  - (void)handleUpdateObject:(id)object
422
- forKey:(NSString *)key
423
- inCollection:(NSString *)collection
424
+ forCollectionKey:(YapCollectionKey *)collectionKey
424
425
  withMetadata:(id)metadata
425
426
  rowid:(int64_t)rowid;
426
427
 
427
- - (void)handleUpdateMetadata:(id)metadata
428
- forKey:(NSString *)key
429
- inCollection:(NSString *)collection
430
- withRowid:(int64_t)rowid;
428
+ - (void)handleReplaceObject:(id)object
429
+ forCollectionKey:(YapCollectionKey *)collectionKey
430
+ withRowid:(int64_t)rowid;
431
+
432
+ - (void)handleReplaceMetadata:(id)metadata
433
+ forCollectionKey:(YapCollectionKey *)collectionKey
434
+ withRowid:(int64_t)rowid;
431
435
 
432
- - (void)handleTouchObjectForKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
433
- - (void)handleTouchMetadataForKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
436
+ - (void)handleTouchObjectForCollectionKey:(YapCollectionKey *)collectionKey withRowid:(int64_t)rowid;
437
+ - (void)handleTouchMetadataForCollectionKey:(YapCollectionKey *)collectionKey withRowid:(int64_t)rowid;
434
438
 
435
- - (void)handleRemoveObjectForKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
439
+ - (void)handleRemoveObjectForCollectionKey:(YapCollectionKey *)collectionKey withRowid:(int64_t)rowid;
436
440
  - (void)handleRemoveObjectsForKeys:(NSArray *)keys inCollection:(NSString *)collection withRowids:(NSArray *)rowids;
437
441
 
438
442
  - (void)handleRemoveAllObjectsInAllCollections;
@@ -1,26 +1,12 @@
1
1
  #import <Foundation/Foundation.h>
2
2
 
3
3
  #import "YapDatabaseView.h"
4
+
5
+ #import "YapDatabaseFilteredViewTypes.h"
4
6
  #import "YapDatabaseFilteredViewConnection.h"
5
7
  #import "YapDatabaseFilteredViewTransaction.h"
6
8
 
7
9
 
8
- #ifndef YapDatabaseViewFilteringBlockDefined
9
- #define YapDatabaseViewFilteringBlockDefined 1
10
-
11
- typedef id YapDatabaseViewFilteringBlock; // One of the YapDatabaseViewGroupingX types below.
12
-
13
- typedef BOOL (^YapDatabaseViewFilteringWithKeyBlock) \
14
- (NSString *group, NSString *collection, NSString *key);
15
- typedef BOOL (^YapDatabaseViewFilteringWithObjectBlock) \
16
- (NSString *group, NSString *collection, NSString *key, id object);
17
- typedef BOOL (^YapDatabaseViewFilteringWithMetadataBlock)\
18
- (NSString *group, NSString *collection, NSString *key, id metadata);
19
- typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
20
- (NSString *group, NSString *collection, NSString *key, id object, id metadata);
21
-
22
- #endif
23
-
24
10
  @interface YapDatabaseFilteredView : YapDatabaseView
25
11
 
26
12
  /**
@@ -40,6 +26,8 @@ typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
40
26
  * It allows you to filter items from this view that exist in the parent view.
41
27
  * You should pick a block type that requires the minimum number of parameters that you need.
42
28
  *
29
+ * @see YapDatabaseViewTypes.h for block type definition(s).
30
+ *
43
31
  * @param filteringBlockType
44
32
  *
45
33
  * This parameter identifies the type of filtering block being used.
@@ -48,6 +36,8 @@ typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
48
36
  * - YapDatabaseViewBlockTypeWithObject
49
37
  * - YapDatabaseViewBlockTypeWithMetadata
50
38
  * - YapDatabaseViewBlockTypeWithRow
39
+ *
40
+ * @see YapDatabaseViewTypes.h for block type definition(s).
51
41
  *
52
42
  * @param tag
53
43
  *
@@ -70,12 +60,12 @@ typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
70
60
  - (id)initWithParentViewName:(NSString *)viewName
71
61
  filteringBlock:(YapDatabaseViewFilteringBlock)filteringBlock
72
62
  filteringBlockType:(YapDatabaseViewBlockType)filteringBlockType
73
- tag:(NSString *)tag;
63
+ versionTag:(NSString *)versionTag;
74
64
 
75
65
  - (id)initWithParentViewName:(NSString *)viewName
76
66
  filteringBlock:(YapDatabaseViewFilteringBlock)filteringBlock
77
67
  filteringBlockType:(YapDatabaseViewBlockType)filteringBlockType
78
- tag:(NSString *)tag
68
+ versionTag:(NSString *)versionTag
79
69
  options:(YapDatabaseViewOptions *)options;
80
70
 
81
71
  @property (nonatomic, strong, readonly) NSString *parentViewName;
@@ -83,23 +73,6 @@ typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
83
73
  @property (nonatomic, strong, readonly) YapDatabaseViewFilteringBlock filteringBlock;
84
74
  @property (nonatomic, assign, readonly) YapDatabaseViewBlockType filteringBlockType;
85
75
 
86
- /**
87
- * The tag assists you in updating the filteringBlock.
88
- *
89
- * Whenever you change the filteringBlock, just specify a tag to associate with the block.
90
- * The tag can help you to identify the filtering criteria, or perhaps be used as a versioning scheme.
91
- *
92
- * Here's how it works:
93
- * The very first time you create the filteredView, it will populate itself from the parentView + filteringBlock.
94
- * On subsequent app launches, when you re-register the filteredView, it will check the passed tag with
95
- * the tag it has stored from the previous app session. If the tags match then the filteredView knows it doesn't
96
- * have to do anything. (It's already setup from last app session.) However, if the tags don't match, then
97
- * the filteredView will re-populate itself.
98
- *
99
- * It works the same way if you change the filteringBlock on-the-fly. (See setFilteringBlock:filteringBlockType:tag:)
100
- **/
101
- @property (nonatomic, copy, readonly) NSString *tag;
102
-
103
76
  /**
104
77
  * The options allow you to specify things like creating an IN-MEMORY-ONLY VIEW (non persistent).
105
78
  **/
@@ -12,8 +12,6 @@
12
12
 
13
13
  YapDatabaseViewFilteringBlock filteringBlock;
14
14
  YapDatabaseViewBlockType filteringBlockType;
15
-
16
- NSString *tag;
17
15
  }
18
16
 
19
17
  @end
@@ -1,24 +1,9 @@
1
1
  #import <Foundation/Foundation.h>
2
2
 
3
3
  #import "YapDatabaseViewTransaction.h"
4
+ #import "YapDatabaseFilteredViewTypes.h"
4
5
  #import "YapDatabaseFilteredView.h"
5
6
 
6
- #ifndef YapDatabaseViewFilteringBlockDefined
7
- #define YapDatabaseViewFilteringBlockDefined 1
8
-
9
- typedef id YapDatabaseViewFilteringBlock; // One of the YapDatabaseViewGroupingX types below.
10
-
11
- typedef BOOL (^YapDatabaseViewFilteringWithKeyBlock) \
12
- (NSString *group, NSString *collection, NSString *key);
13
- typedef BOOL (^YapDatabaseViewFilteringWithObjectBlock) \
14
- (NSString *group, NSString *collection, NSString *key, id object);
15
- typedef BOOL (^YapDatabaseViewFilteringWithMetadataBlock)\
16
- (NSString *group, NSString *collection, NSString *key, id metadata);
17
- typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
18
- (NSString *group, NSString *collection, NSString *key, id object, id metadata);
19
-
20
- #endif
21
-
22
7
 
23
8
  @interface YapDatabaseFilteredViewTransaction : YapDatabaseViewTransaction
24
9
 
@@ -32,8 +17,23 @@ typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
32
17
 
33
18
  @interface YapDatabaseFilteredViewTransaction (ReadWrite)
34
19
 
20
+ /**
21
+ * This method allows you to change the filterBlock on-the-fly.
22
+ *
23
+ * When you do so, the extension will emit the smallest change-set possible.
24
+ * That is, it does NOT clear the view and start from scratch.
25
+ * Rather it performs a quick in-place update.
26
+ * The end result is a minimal change-set that looks nice for tableView / collectionView animations.
27
+ *
28
+ * For example, in Apple's phone app, in the Recents tab, one can switch between "all" and "missed" calls.
29
+ * Tapping the "missed" button smoothly animates away all non-red rows. It looks great.
30
+ * You can get the same effect by using a YapDatabaseFilteredView,
31
+ * and swapping in/out a filterBlock to allow/disallow non-missed calls.
32
+ *
33
+ * Note: You must pass a different versionTag, or this method does nothing.
34
+ **/
35
35
  - (void)setFilteringBlock:(YapDatabaseViewFilteringBlock)filteringBlock
36
36
  filteringBlockType:(YapDatabaseViewBlockType)filteringBlockType
37
- tag:(NSString *)tag;
37
+ versionTag:(NSString *)tag;
38
38
 
39
39
  @end
@@ -0,0 +1,32 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+
4
+ /**
5
+ * The filtering block removes items from this view that are in the parent view.
6
+ *
7
+ * A YapDatabaseFilteredView will have the same groups and same sort order as the parent,
8
+ * with the exception of those groups/rows that the filter block returned NO for.
9
+ *
10
+ * Here's how it works:
11
+ * When you initialize a YapDatabaseFilteredView instance, it will enumerate the parentView
12
+ * and invoke the filter block for every row in every group. So it can quickly copy a parentView as it
13
+ * doesn't have to perform any sorting.
14
+ *
15
+ * After its initialization, the filterView will automatically run for inserted / updated rows
16
+ * after the parentView has processed them. It then gets the group from parentView,
17
+ * and invokes the filterBlock again (if needed).
18
+ *
19
+ * You should choose a block type that takes the minimum number of required parameters.
20
+ * The filterView can make various optimizations based on required parameters of the block.
21
+ **/
22
+ typedef id YapDatabaseViewFilteringBlock; // One of the YapDatabaseViewGroupingX types below.
23
+
24
+ typedef BOOL (^YapDatabaseViewFilteringWithKeyBlock) \
25
+ (NSString *group, NSString *collection, NSString *key);
26
+ typedef BOOL (^YapDatabaseViewFilteringWithObjectBlock) \
27
+ (NSString *group, NSString *collection, NSString *key, id object);
28
+ typedef BOOL (^YapDatabaseViewFilteringWithMetadataBlock)\
29
+ (NSString *group, NSString *collection, NSString *key, id metadata);
30
+ typedef BOOL (^YapDatabaseViewFilteringWithRowBlock) \
31
+ (NSString *group, NSString *collection, NSString *key, id object, id metadata);
32
+
@@ -8,6 +8,14 @@
8
8
 
9
9
  #import "sqlite3.h"
10
10
 
11
+ /**
12
+ * This version number is stored in the yap2 table.
13
+ * If there is a major re-write to this class, then the version number will be incremented,
14
+ * and the class can automatically rebuild the tables as needed.
15
+ **/
16
+ #define YAP_DATABASE_FTS_CLASS_VERSION 1
17
+
18
+
11
19
  @interface YapDatabaseFullTextSearch () {
12
20
  @public
13
21
 
@@ -8,6 +8,7 @@
8
8
 
9
9
  #import "YapCache.h"
10
10
  #import "YapMemoryTable.h"
11
+ #import "YapCollectionKey.h"
11
12
 
12
13
  #import "sqlite3.h"
13
14
 
@@ -25,6 +26,8 @@ NS_INLINE void sqlite_finalize_null(sqlite3_stmt **stmtPtr)
25
26
  extern NSString *const YapDatabaseRegisteredExtensionsKey;
26
27
  extern NSString *const YapDatabaseRegisteredTablesKey;
27
28
  extern NSString *const YapDatabaseExtensionsOrderKey;
29
+ extern NSString *const YapDatabaseExtensionDependenciesKey;
30
+ extern NSString *const YapDatabaseRemovedRowidsKey;
28
31
  extern NSString *const YapDatabaseNotificationKey;
29
32
 
30
33
  @interface YapDatabase () {
@@ -41,8 +44,8 @@ extern NSString *const YapDatabaseNotificationKey;
41
44
  NSDictionary *registeredExtensions;
42
45
  NSDictionary *registeredTables;
43
46
 
44
- NSDictionary *extensionDependencies;
45
47
  NSArray *extensionsOrder;
48
+ NSDictionary *extensionDependencies;
46
49
 
47
50
  YapDatabaseConnection *registrationConnection;
48
51
 
@@ -81,6 +84,7 @@ extern NSString *const YapDatabaseNotificationKey;
81
84
  **/
82
85
  - (BOOL)tableExists:(NSString *)tableName using:(sqlite3 *)aDb;
83
86
  - (NSArray *)columnNamesForTable:(NSString *)tableName using:(sqlite3 *)aDb;
87
+ - (NSDictionary *)columnNamesAndAffinityForTable:(NSString *)tableName using:(sqlite3 *)aDb;
84
88
 
85
89
  /**
86
90
  * New connections inherit their default values from this structure.
@@ -104,6 +108,7 @@ extern NSString *const YapDatabaseNotificationKey;
104
108
  **/
105
109
  - (NSDictionary *)registeredTables;
106
110
  - (NSArray *)extensionsOrder;
111
+ - (NSDictionary *)extensionDependencies;
107
112
 
108
113
  /**
109
114
  * This method is only accessible from within the snapshotQueue.
@@ -182,13 +187,15 @@ extern NSString *const YapDatabaseNotificationKey;
182
187
 
183
188
  sqlite3 *db;
184
189
 
185
- dispatch_queue_t connectionQueue; // Only for YapDatabaseExtensionConnection subclasses
186
- void *IsOnConnectionQueueKey; // Only for YapDatabaseExtensionConnection subclasses
190
+ dispatch_queue_t connectionQueue; // For YapDatabaseExtensionConnection subclasses
191
+ void *IsOnConnectionQueueKey; // For YapDatabaseExtensionConnection subclasses
187
192
 
188
193
  NSArray *extensionsOrder; // Read-only by YapDatabaseTransaction
194
+ NSDictionary *extensionDependencies; // Read-only for YapDatabaseExtensionTransaction subclasses
189
195
 
190
196
  BOOL hasDiskChanges;
191
197
 
198
+ YapCache *keyCache;
192
199
  YapCache *objectCache;
193
200
  YapCache *metadataCache;
194
201
 
@@ -204,6 +211,7 @@ extern NSString *const YapDatabaseNotificationKey;
204
211
  NSMutableDictionary *metadataChanges;
205
212
  NSMutableSet *removedKeys;
206
213
  NSMutableSet *removedCollections;
214
+ NSMutableSet *removedRowids;
207
215
  BOOL allKeysRemoved;
208
216
  }
209
217
 
@@ -215,6 +223,7 @@ extern NSString *const YapDatabaseNotificationKey;
215
223
 
216
224
  - (sqlite3_stmt *)yapGetDataForKeyStatement; // Against "yap" database, for internal use
217
225
  - (sqlite3_stmt *)yapSetDataForKeyStatement; // Against "yap" database, for internal use
226
+ - (sqlite3_stmt *)yapRemoveForKeyStatement; // Against "yap" database, for internal use
218
227
  - (sqlite3_stmt *)yapRemoveExtensionStatement; // Against "yap" database, for internal use
219
228
 
220
229
  - (sqlite3_stmt *)getCollectionCountStatement;
@@ -223,15 +232,15 @@ extern NSString *const YapDatabaseNotificationKey;
223
232
  - (sqlite3_stmt *)getCountForRowidStatement;
224
233
  - (sqlite3_stmt *)getRowidForKeyStatement;
225
234
  - (sqlite3_stmt *)getKeyForRowidStatement;
226
- - (sqlite3_stmt *)getKeyDataForRowidStatement;
227
- - (sqlite3_stmt *)getKeyMetadataForRowidStatement;
228
235
  - (sqlite3_stmt *)getDataForRowidStatement;
236
+ - (sqlite3_stmt *)getMetadataForRowidStatement;
229
237
  - (sqlite3_stmt *)getAllForRowidStatement;
230
238
  - (sqlite3_stmt *)getDataForKeyStatement;
231
239
  - (sqlite3_stmt *)getMetadataForKeyStatement;
232
240
  - (sqlite3_stmt *)getAllForKeyStatement;
233
241
  - (sqlite3_stmt *)insertForRowidStatement;
234
242
  - (sqlite3_stmt *)updateAllForRowidStatement;
243
+ - (sqlite3_stmt *)updateObjectForRowidStatement;
235
244
  - (sqlite3_stmt *)updateMetadataForRowidStatement;
236
245
  - (sqlite3_stmt *)removeForRowidStatement;
237
246
  - (sqlite3_stmt *)removeCollectionStatement;
@@ -330,33 +339,30 @@ extern NSString *const YapDatabaseNotificationKey;
330
339
  - (NSData *)dataValueForKey:(NSString *)key extension:(NSString *)extensionName;
331
340
  - (void)setDataValue:(NSData *)value forKey:(NSString *)key extension:(NSString *)extensionName;
332
341
 
342
+ - (void)removeValueForKey:(NSString *)key extension:(NSString *)extensionName;
333
343
  - (void)removeAllValuesForExtension:(NSString *)extensionName;
334
344
 
335
345
  - (NSException *)mutationDuringEnumerationException;
336
346
 
337
347
  - (BOOL)getRowid:(int64_t *)rowidPtr forKey:(NSString *)key inCollection:(NSString *)collection;
338
348
 
339
- - (BOOL)getKey:(NSString **)keyPtr collection:(NSString **)collectionPtr forRowid:(int64_t)rowid;
349
+ - (YapCollectionKey *)collectionKeyForRowid:(int64_t)rowid;
340
350
 
341
- - (BOOL)getKey:(NSString **)keyPtr
342
- collection:(NSString **)collectionPtr
343
- object:(id *)objectPtr
344
- forRowid:(int64_t)rowid;
351
+ - (BOOL)getCollectionKey:(YapCollectionKey **)collectionKeyPtr object:(id *)objectPtr forRowid:(int64_t)rowid;
352
+ - (BOOL)getCollectionKey:(YapCollectionKey **)collectionKeyPtr metadata:(id *)metadataPtr forRowid:(int64_t)rowid;
345
353
 
346
- - (BOOL)getKey:(NSString **)keyPtr
347
- collection:(NSString **)collectionPtr
348
- metadata:(id *)metadataPtr
349
- forRowid:(int64_t)rowid;
354
+ - (BOOL)getCollectionKey:(YapCollectionKey **)collectionKeyPtr
355
+ object:(id *)objectPtr
356
+ metadata:(id *)metadataPtr
357
+ forRowid:(int64_t)rowid;
350
358
 
351
- - (BOOL)getKey:(NSString **)keyPtr
352
- collection:(NSString **)collectionPtr
353
- object:(id *)objectPtr
354
- metadata:(id *)metadataPtr
355
- forRowid:(int64_t)rowid;
356
-
357
- - (BOOL)hasRowForRowid:(int64_t)rowid;
359
+ - (BOOL)hasRowid:(int64_t)rowid;
358
360
 
359
361
  - (id)objectForKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
362
+ - (id)objectForCollectionKey:(YapCollectionKey *)cacheKey withRowid:(int64_t)rowid;
363
+
364
+ - (id)metadataForKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
365
+ - (id)metadataForCollectionKey:(YapCollectionKey *)cacheKey withRowid:(int64_t)rowid;
360
366
 
361
367
  - (void)_enumerateKeysInCollection:(NSString *)collection
362
368
  usingBlock:(void (^)(int64_t rowid, NSString *key, BOOL *stop))block;
@@ -422,3 +428,19 @@ extern NSString *const YapDatabaseNotificationKey;
422
428
  withFilter:(BOOL (^)(int64_t rowid, NSString *collection, NSString *key))filter;
423
429
 
424
430
  @end
431
+
432
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
433
+ #pragma mark -
434
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
435
+
436
+ @interface YapDatabaseReadWriteTransaction ()
437
+
438
+ - (void)replaceObject:(id)object forKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
439
+ - (void)replaceMetadata:(id)metadata
440
+ forKey:(NSString *)key
441
+ inCollection:(NSString *)collection
442
+ withRowid:(int64_t)rowid;
443
+
444
+ - (void)removeObjectForKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
445
+
446
+ @end