motion-yapper 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.travis.yml +6 -0
  4. data/Gemfile +5 -0
  5. data/Gemfile.lock +63 -0
  6. data/README.md +16 -0
  7. data/Rakefile +20 -0
  8. data/app/app_delegate.rb +5 -0
  9. data/lib/yapper.rb +30 -0
  10. data/lib/yapper/attachment.rb +48 -0
  11. data/lib/yapper/bson.rb +20 -0
  12. data/lib/yapper/config.rb +18 -0
  13. data/lib/yapper/db.rb +151 -0
  14. data/lib/yapper/document.rb +54 -0
  15. data/lib/yapper/document/attachment.rb +26 -0
  16. data/lib/yapper/document/callbacks.rb +86 -0
  17. data/lib/yapper/document/persistance.rb +171 -0
  18. data/lib/yapper/document/relation.rb +84 -0
  19. data/lib/yapper/document/selection.rb +100 -0
  20. data/lib/yapper/extensions.rb +80 -0
  21. data/lib/yapper/log.rb +5 -0
  22. data/lib/yapper/sync.rb +134 -0
  23. data/lib/yapper/sync/data.rb +12 -0
  24. data/lib/yapper/sync/event.rb +194 -0
  25. data/lib/yapper/sync/queue.rb +164 -0
  26. data/lib/yapper/timestamps.rb +16 -0
  27. data/lib/yapper/version.rb +3 -0
  28. data/lib/yapper/yapper.rb +2 -0
  29. data/spec/helpers/time_helper.rb +3 -0
  30. data/spec/integration/all_spec.rb +40 -0
  31. data/spec/integration/callback_spec.rb +87 -0
  32. data/spec/integration/db_spec.rb +40 -0
  33. data/spec/integration/find_spec.rb +51 -0
  34. data/spec/integration/persistance_spec.rb +118 -0
  35. data/spec/integration/relation_spec.rb +174 -0
  36. data/spec/integration/sync_spec.rb +42 -0
  37. data/spec/integration/timestamps_spec.rb +34 -0
  38. data/spec/integration/types_spec.rb +23 -0
  39. data/spec/integration/when_spec.rb +29 -0
  40. data/spec/integration/where_spec.rb +132 -0
  41. data/vendor/Podfile.lock +24 -0
  42. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.h +641 -0
  43. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.m +1396 -0
  44. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h +133 -0
  45. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m +327 -0
  46. data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.h +113 -0
  47. data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.m +321 -0
  48. data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.h +71 -0
  49. data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.m +150 -0
  50. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
  51. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.m +157 -0
  52. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworking.h +43 -0
  53. data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.h +68 -0
  54. data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.m +143 -0
  55. data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h +370 -0
  56. data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m +848 -0
  57. data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.h +89 -0
  58. data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.m +167 -0
  59. data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.h +78 -0
  60. data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.m +191 -0
  61. data/vendor/Pods/AFNetworking/LICENSE +19 -0
  62. data/vendor/Pods/AFNetworking/README.md +208 -0
  63. data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPClient.h +641 -0
  64. data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h +133 -0
  65. data/vendor/Pods/BuildHeaders/AFNetworking/AFImageRequestOperation.h +113 -0
  66. data/vendor/Pods/BuildHeaders/AFNetworking/AFJSONRequestOperation.h +71 -0
  67. data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
  68. data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworking.h +43 -0
  69. data/vendor/Pods/BuildHeaders/AFNetworking/AFPropertyListRequestOperation.h +68 -0
  70. data/vendor/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h +370 -0
  71. data/vendor/Pods/BuildHeaders/AFNetworking/AFXMLRequestOperation.h +89 -0
  72. data/vendor/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h +78 -0
  73. data/vendor/Pods/BuildHeaders/CocoaLumberjack/ContextFilterLogFormatter.h +65 -0
  74. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDASLLogger.h +41 -0
  75. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDAbstractDatabaseLogger.h +102 -0
  76. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDFileLogger.h +334 -0
  77. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog.h +601 -0
  78. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDTTYLogger.h +167 -0
  79. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DispatchQueueLogFormatter.h +116 -0
  80. data/vendor/Pods/BuildHeaders/NSData+MD5Digest/NSData+MD5Digest.h +18 -0
  81. data/vendor/Pods/BuildHeaders/Reachability/Reachability.h +109 -0
  82. data/vendor/Pods/BuildHeaders/YapDatabase/YapCache.h +90 -0
  83. data/vendor/Pods/BuildHeaders/YapDatabase/YapCollectionKey.h +20 -0
  84. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabase.h +547 -0
  85. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnection.h +447 -0
  86. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnectionState.h +29 -0
  87. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseDefaults.h +37 -0
  88. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtension.h +15 -0
  89. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionConnection.h +11 -0
  90. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionPrivate.h +440 -0
  91. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionTransaction.h +11 -0
  92. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredView.h +108 -0
  93. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewConnection.h +12 -0
  94. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewPrivate.h +19 -0
  95. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTransaction.h +39 -0
  96. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearch.h +89 -0
  97. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchConnection.h +32 -0
  98. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchPrivate.h +69 -0
  99. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +79 -0
  100. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchTransaction.h +68 -0
  101. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseLogging.h +158 -0
  102. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseManager.h +17 -0
  103. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabasePrivate.h +424 -0
  104. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseQuery.h +42 -0
  105. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndex.h +100 -0
  106. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexConnection.h +33 -0
  107. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +73 -0
  108. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetup.h +33 -0
  109. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +58 -0
  110. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseStatement.h +13 -0
  111. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseString.h +121 -0
  112. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseTransaction.h +541 -0
  113. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseView.h +186 -0
  114. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChange.h +272 -0
  115. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChangePrivate.h +94 -0
  116. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewConnection.h +115 -0
  117. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappings.h +825 -0
  118. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappingsPrivate.h +72 -0
  119. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewOptions.h +56 -0
  120. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPage.h +36 -0
  121. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPageMetadata.h +27 -0
  122. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPrivate.h +153 -0
  123. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptions.h +330 -0
  124. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +17 -0
  125. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTransaction.h +447 -0
  126. data/vendor/Pods/BuildHeaders/YapDatabase/YapMemoryTable.h +74 -0
  127. data/vendor/Pods/BuildHeaders/YapDatabase/YapNull.h +17 -0
  128. data/vendor/Pods/BuildHeaders/YapDatabase/YapSet.h +41 -0
  129. data/vendor/Pods/BuildHeaders/YapDatabase/YapTouch.h +15 -0
  130. data/vendor/Pods/CocoaLumberjack/LICENSE.txt +18 -0
  131. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h +41 -0
  132. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m +99 -0
  133. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h +102 -0
  134. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m +727 -0
  135. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h +334 -0
  136. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m +1353 -0
  137. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.h +601 -0
  138. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.m +1083 -0
  139. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h +167 -0
  140. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m +1479 -0
  141. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/ContextFilterLogFormatter.h +65 -0
  142. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/ContextFilterLogFormatter.m +191 -0
  143. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DispatchQueueLogFormatter.h +116 -0
  144. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DispatchQueueLogFormatter.m +251 -0
  145. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/README.txt +7 -0
  146. data/vendor/Pods/CocoaLumberjack/README.markdown +37 -0
  147. data/vendor/Pods/Headers/AFNetworking/AFHTTPClient.h +641 -0
  148. data/vendor/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h +133 -0
  149. data/vendor/Pods/Headers/AFNetworking/AFImageRequestOperation.h +113 -0
  150. data/vendor/Pods/Headers/AFNetworking/AFJSONRequestOperation.h +71 -0
  151. data/vendor/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h +75 -0
  152. data/vendor/Pods/Headers/AFNetworking/AFNetworking.h +43 -0
  153. data/vendor/Pods/Headers/AFNetworking/AFPropertyListRequestOperation.h +68 -0
  154. data/vendor/Pods/Headers/AFNetworking/AFURLConnectionOperation.h +370 -0
  155. data/vendor/Pods/Headers/AFNetworking/AFXMLRequestOperation.h +89 -0
  156. data/vendor/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h +78 -0
  157. data/vendor/Pods/Headers/CocoaLumberjack/ContextFilterLogFormatter.h +65 -0
  158. data/vendor/Pods/Headers/CocoaLumberjack/DDASLLogger.h +41 -0
  159. data/vendor/Pods/Headers/CocoaLumberjack/DDAbstractDatabaseLogger.h +102 -0
  160. data/vendor/Pods/Headers/CocoaLumberjack/DDFileLogger.h +334 -0
  161. data/vendor/Pods/Headers/CocoaLumberjack/DDLog.h +601 -0
  162. data/vendor/Pods/Headers/CocoaLumberjack/DDTTYLogger.h +167 -0
  163. data/vendor/Pods/Headers/CocoaLumberjack/DispatchQueueLogFormatter.h +116 -0
  164. data/vendor/Pods/Headers/NSData+MD5Digest/NSData+MD5Digest.h +18 -0
  165. data/vendor/Pods/Headers/Reachability/Reachability.h +109 -0
  166. data/vendor/Pods/Headers/YapDatabase/YapCache.h +90 -0
  167. data/vendor/Pods/Headers/YapDatabase/YapCollectionKey.h +20 -0
  168. data/vendor/Pods/Headers/YapDatabase/YapDatabase.h +547 -0
  169. data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnection.h +447 -0
  170. data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnectionState.h +29 -0
  171. data/vendor/Pods/Headers/YapDatabase/YapDatabaseDefaults.h +37 -0
  172. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtension.h +15 -0
  173. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionConnection.h +11 -0
  174. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionPrivate.h +440 -0
  175. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionTransaction.h +11 -0
  176. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredView.h +108 -0
  177. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewConnection.h +12 -0
  178. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewPrivate.h +19 -0
  179. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTransaction.h +39 -0
  180. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearch.h +89 -0
  181. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchConnection.h +32 -0
  182. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchPrivate.h +69 -0
  183. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchSnippetOptions.h +79 -0
  184. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchTransaction.h +68 -0
  185. data/vendor/Pods/Headers/YapDatabase/YapDatabaseLogging.h +158 -0
  186. data/vendor/Pods/Headers/YapDatabase/YapDatabaseManager.h +17 -0
  187. data/vendor/Pods/Headers/YapDatabase/YapDatabasePrivate.h +424 -0
  188. data/vendor/Pods/Headers/YapDatabase/YapDatabaseQuery.h +42 -0
  189. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndex.h +100 -0
  190. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexConnection.h +33 -0
  191. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +73 -0
  192. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexSetup.h +33 -0
  193. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexTransaction.h +58 -0
  194. data/vendor/Pods/Headers/YapDatabase/YapDatabaseStatement.h +13 -0
  195. data/vendor/Pods/Headers/YapDatabase/YapDatabaseString.h +121 -0
  196. data/vendor/Pods/Headers/YapDatabase/YapDatabaseTransaction.h +541 -0
  197. data/vendor/Pods/Headers/YapDatabase/YapDatabaseView.h +186 -0
  198. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChange.h +272 -0
  199. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChangePrivate.h +94 -0
  200. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewConnection.h +115 -0
  201. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappings.h +825 -0
  202. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappingsPrivate.h +72 -0
  203. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewOptions.h +56 -0
  204. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPage.h +36 -0
  205. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPageMetadata.h +27 -0
  206. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPrivate.h +153 -0
  207. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptions.h +330 -0
  208. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +17 -0
  209. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTransaction.h +447 -0
  210. data/vendor/Pods/Headers/YapDatabase/YapMemoryTable.h +74 -0
  211. data/vendor/Pods/Headers/YapDatabase/YapNull.h +17 -0
  212. data/vendor/Pods/Headers/YapDatabase/YapSet.h +41 -0
  213. data/vendor/Pods/Headers/YapDatabase/YapTouch.h +15 -0
  214. data/vendor/Pods/Headers/____Pods-AFNetworking-prefix.h +17 -0
  215. data/vendor/Pods/Headers/____Pods-CocoaLumberjack-prefix.h +5 -0
  216. data/vendor/Pods/Headers/____Pods-NSData+MD5Digest-prefix.h +5 -0
  217. data/vendor/Pods/Headers/____Pods-Reachability-prefix.h +5 -0
  218. data/vendor/Pods/Headers/____Pods-YapDatabase-prefix.h +5 -0
  219. data/vendor/Pods/Headers/____Pods-environment.h +38 -0
  220. data/vendor/Pods/Manifest.lock +24 -0
  221. data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.h +18 -0
  222. data/vendor/Pods/NSData+MD5Digest/NSData+MD5Digest/NSData+MD5Digest.m +39 -0
  223. data/vendor/Pods/NSData+MD5Digest/README.md +11 -0
  224. data/vendor/Pods/Pods-AFNetworking-Private.xcconfig +5 -0
  225. data/vendor/Pods/Pods-AFNetworking-dummy.m +5 -0
  226. data/vendor/Pods/Pods-AFNetworking-prefix.pch +17 -0
  227. data/vendor/Pods/Pods-AFNetworking.xcconfig +1 -0
  228. data/vendor/Pods/Pods-Acknowledgements.markdown +96 -0
  229. data/vendor/Pods/Pods-Acknowledgements.plist +142 -0
  230. data/vendor/Pods/Pods-CocoaLumberjack-Private.xcconfig +5 -0
  231. data/vendor/Pods/Pods-CocoaLumberjack-dummy.m +5 -0
  232. data/vendor/Pods/Pods-CocoaLumberjack-prefix.pch +5 -0
  233. data/vendor/Pods/Pods-CocoaLumberjack.xcconfig +0 -0
  234. data/vendor/Pods/Pods-NSData+MD5Digest-Private.xcconfig +5 -0
  235. data/vendor/Pods/Pods-NSData+MD5Digest-dummy.m +5 -0
  236. data/vendor/Pods/Pods-NSData+MD5Digest-prefix.pch +5 -0
  237. data/vendor/Pods/Pods-NSData+MD5Digest.xcconfig +0 -0
  238. data/vendor/Pods/Pods-Reachability-Private.xcconfig +5 -0
  239. data/vendor/Pods/Pods-Reachability-dummy.m +5 -0
  240. data/vendor/Pods/Pods-Reachability-prefix.pch +5 -0
  241. data/vendor/Pods/Pods-Reachability.xcconfig +1 -0
  242. data/vendor/Pods/Pods-YapDatabase-Private.xcconfig +5 -0
  243. data/vendor/Pods/Pods-YapDatabase-dummy.m +5 -0
  244. data/vendor/Pods/Pods-YapDatabase-prefix.pch +5 -0
  245. data/vendor/Pods/Pods-YapDatabase.xcconfig +1 -0
  246. data/vendor/Pods/Pods-dummy.m +5 -0
  247. data/vendor/Pods/Pods-environment.h +38 -0
  248. data/vendor/Pods/Pods-resources.sh +68 -0
  249. data/vendor/Pods/Pods.bridgesupport +5096 -0
  250. data/vendor/Pods/Pods.xcconfig +5 -0
  251. data/vendor/Pods/Pods.xcodeproj/project.pbxproj +5536 -0
  252. data/vendor/Pods/Reachability/LICENCE.txt +24 -0
  253. data/vendor/Pods/Reachability/README.md +65 -0
  254. data/vendor/Pods/Reachability/Reachability.h +109 -0
  255. data/vendor/Pods/Reachability/Reachability.m +527 -0
  256. data/vendor/Pods/YapDatabase/LICENSE.txt +18 -0
  257. data/vendor/Pods/YapDatabase/README.md +30 -0
  258. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h +19 -0
  259. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h +108 -0
  260. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m +175 -0
  261. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h +12 -0
  262. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m +41 -0
  263. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h +39 -0
  264. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m +966 -0
  265. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h +69 -0
  266. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h +89 -0
  267. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m +146 -0
  268. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h +32 -0
  269. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m +298 -0
  270. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h +79 -0
  271. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m +95 -0
  272. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h +68 -0
  273. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m +1352 -0
  274. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h +440 -0
  275. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.h +15 -0
  276. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.m +58 -0
  277. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h +11 -0
  278. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m +46 -0
  279. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h +11 -0
  280. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m +180 -0
  281. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h +73 -0
  282. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h +100 -0
  283. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m +149 -0
  284. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h +33 -0
  285. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m +330 -0
  286. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h +33 -0
  287. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m +184 -0
  288. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h +58 -0
  289. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m +1166 -0
  290. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h +94 -0
  291. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h +72 -0
  292. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h +36 -0
  293. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm +296 -0
  294. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h +27 -0
  295. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m +28 -0
  296. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h +153 -0
  297. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h +17 -0
  298. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h +272 -0
  299. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m +2494 -0
  300. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h +825 -0
  301. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m +1567 -0
  302. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h +330 -0
  303. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m +141 -0
  304. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.h +186 -0
  305. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.m +191 -0
  306. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.h +115 -0
  307. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.m +897 -0
  308. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.h +56 -0
  309. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.m +27 -0
  310. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h +447 -0
  311. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m +4505 -0
  312. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.h +90 -0
  313. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.m +453 -0
  314. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.h +29 -0
  315. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseConnectionState.m +48 -0
  316. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.h +37 -0
  317. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.m +83 -0
  318. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.h +158 -0
  319. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseLogging.m +73 -0
  320. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.h +17 -0
  321. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseManager.m +56 -0
  322. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabasePrivate.h +424 -0
  323. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.h +13 -0
  324. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseStatement.m +26 -0
  325. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseString.h +121 -0
  326. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.h +74 -0
  327. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapMemoryTable.m +603 -0
  328. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.h +17 -0
  329. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.m +31 -0
  330. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.h +15 -0
  331. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapTouch.m +31 -0
  332. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.h +20 -0
  333. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.m +194 -0
  334. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.h +42 -0
  335. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapDatabaseQuery.m +96 -0
  336. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.h +41 -0
  337. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapSet.m +82 -0
  338. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.h +547 -0
  339. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.m +2022 -0
  340. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.h +447 -0
  341. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.m +3874 -0
  342. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.h +541 -0
  343. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.m +5282 -0
  344. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.bridgesupport +16 -0
  345. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.h +13 -0
  346. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.m +20 -0
  347. data/yapper.gemspec +24 -0
  348. metadata +458 -0
@@ -0,0 +1,68 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ #import "YapDatabaseExtensionTransaction.h"
4
+ #import "YapDatabaseFullTextSearchSnippetOptions.h"
5
+
6
+
7
+ /**
8
+ * Welcome to YapDatabase!
9
+ *
10
+ * The project page has a wealth of documentation if you have any questions.
11
+ * https://github.com/yaptv/YapDatabase
12
+ *
13
+ * If you're new to the project you may want to check out the wiki
14
+ * https://github.com/yaptv/YapDatabase/wiki
15
+ *
16
+ * YapDatabaseFullTextSearch is an extension for performing text based search.
17
+ * Internally it uses sqlite's FTS module which was contributed by Google.
18
+ *
19
+ * After registering the extension, you can access this class within a regular transaction.
20
+ * For example:
21
+ *
22
+ * [databaseConnection readWithBlock:^(YapDatabaseReadTransaction *transaction){
23
+ *
24
+ * [[transaction ext:@"mySearch"] enumerateKeysMatching:@"birthday party"
25
+ * usingBlock:^(NSString *collection, NSString *key, BOOL *stop){
26
+ * // matching row...
27
+ * }]
28
+ * }];
29
+ **/
30
+ @interface YapDatabaseFullTextSearchTransaction : YapDatabaseExtensionTransaction
31
+
32
+ // Regular query matching
33
+
34
+ - (void)enumerateKeysMatching:(NSString *)query
35
+ usingBlock:(void (^)(NSString *collection, NSString *key, BOOL *stop))block;
36
+
37
+ - (void)enumerateKeysAndMetadataMatching:(NSString *)query
38
+ usingBlock:(void (^)(NSString *collection, NSString *key, id metadata, BOOL *stop))block;
39
+
40
+ - (void)enumerateKeysAndObjectsMatching:(NSString *)query
41
+ usingBlock:(void (^)(NSString *collection, NSString *key, id object, BOOL *stop))block;
42
+
43
+ - (void)enumerateRowsMatching:(NSString *)query
44
+ usingBlock:(void (^)(NSString *collection, NSString *key, id object, id metadata, BOOL *stop))block;
45
+
46
+ // Query matching + Snippets
47
+
48
+ - (void)enumerateKeysMatching:(NSString *)query
49
+ withSnippetOptions:(YapDatabaseFullTextSearchSnippetOptions *)options
50
+ usingBlock:
51
+ (void (^)(NSString *snippet, NSString *collection, NSString *key, BOOL *stop))block;
52
+
53
+ - (void)enumerateKeysAndMetadataMatching:(NSString *)query
54
+ withSnippetOptions:(YapDatabaseFullTextSearchSnippetOptions *)options
55
+ usingBlock:
56
+ (void (^)(NSString *snippet, NSString *collection, NSString *key, id metadata, BOOL *stop))block;
57
+
58
+ - (void)enumerateKeysAndObjectsMatching:(NSString *)query
59
+ withSnippetOptions:(YapDatabaseFullTextSearchSnippetOptions *)options
60
+ usingBlock:
61
+ (void (^)(NSString *snippet, NSString *collection, NSString *key, id object, BOOL *stop))block;
62
+
63
+ - (void)enumerateRowsMatching:(NSString *)query
64
+ withSnippetOptions:(YapDatabaseFullTextSearchSnippetOptions *)options
65
+ usingBlock:
66
+ (void (^)(NSString *snippet, NSString *collection, NSString *key, id object, id metadata, BOOL *stop))block;
67
+
68
+ @end
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Logging plays a very important role in open-source libraries.
3
+ *
4
+ * Good documentation and comments decrease the learning time required to use a library.
5
+ * But proper logging takes this futher by:
6
+ * - Providing a way to trace the execution of the library
7
+ * - Allowing developers to quickly identify subsets of the code that need analysis
8
+ * - Making it easier for developers to find potential bugs, either in their code or the library
9
+ * - Drawing attention to potential mis-configurations or mis-uses of the API
10
+ *
11
+ * Ultimately logging is an interactive extension to comments.
12
+ **/
13
+
14
+ /**
15
+ * Define log levels.
16
+ * YapDatabase uses 4 log levels:
17
+ *
18
+ * error - For critical errors that will likely break functionality
19
+ * warn - For problems that are concerning, but not quite critical
20
+ * info - For general, but important, information such as performing a database upgrade
21
+ * verbose - For all the other low-level debugging type information
22
+ *
23
+ * Notice that the levels are actually defined using bitwise flags.
24
+ * This means you have full control to flip individual logs on/off.
25
+ * For example, you could enable errors and info, but not warnings, if you wanted.
26
+ **/
27
+
28
+ #define YDB_LOG_FLAG_ERROR (1 << 0) // 0...00001
29
+ #define YDB_LOG_FLAG_WARN (1 << 1) // 0...00010
30
+ #define YDB_LOG_FLAG_INFO (1 << 2) // 0...00100
31
+ #define YDB_LOG_FLAG_VERBOSE (1 << 3) // 0...01000
32
+
33
+ #define YDB_LOG_LEVEL_OFF 0 // 0...00000
34
+ #define YDB_LOG_LEVEL_ERROR (YDB_LOG_LEVEL_OFF | YDB_LOG_FLAG_ERROR) // 0...00001
35
+ #define YDB_LOG_LEVEL_WARN (YDB_LOG_LEVEL_ERROR | YDB_LOG_FLAG_WARN) // 0...00011
36
+ #define YDB_LOG_LEVEL_INFO (YDB_LOG_LEVEL_WARN | YDB_LOG_FLAG_INFO) // 0...00111
37
+ #define YDB_LOG_LEVEL_VERBOSE (YDB_LOG_LEVEL_INFO | YDB_LOG_FLAG_VERBOSE) // 0...01111
38
+
39
+ #define YDB_LOG_ERROR (ydbLogLevel & YDB_LOG_LEVEL_ERROR)
40
+ #define YDB_LOG_WARN (ydbLogLevel & YDB_LOG_LEVEL_WARN)
41
+ #define YDB_LOG_INFO (ydbLogLevel & YDB_LOG_LEVEL_INFO)
42
+ #define YDB_LOG_VERBOSE (ydbLogLevel & YDB_LOG_LEVEL_VERBOSE)
43
+
44
+ /**
45
+ * Define trace, which is in addition to log levels.
46
+ * It may be turned on/off independent of the log level.
47
+ **/
48
+
49
+ #define YDB_LOG_FLAG_TRACE (1 << 4) // 0...10000
50
+
51
+ /**
52
+ * YapDatabase supports multiple logging techniques.
53
+ *
54
+ * YapDatabase supports the CocoaLumberjack logging framework.
55
+ * This is a professional open-source logging library for Mac and iOS development.
56
+ *
57
+ * If you're not using Lumberjack then you can downgrade to NSLog.
58
+ * You can also completely disable logging throughout the entire library.
59
+ *
60
+ * You are strongly discouraged from modifying this file.
61
+ * If you do, you make it more difficult on yourself to merge future bug fixes and improvements from the project.
62
+ * Instead, you should override the default values in your own application.
63
+ **/
64
+
65
+ #define YapDatabaseLoggingTechnique_Lumberjack 2 // optimal
66
+ #define YapDatabaseLoggingTechnique_NSLog 1 // slower
67
+ #define YapDatabaseLoggingTechnique_Disabled 0 // disabled
68
+
69
+ #ifndef YapDatabaseLoggingTechnique
70
+ #define YapDatabaseLoggingTechnique YapDatabaseLoggingTechnique_Lumberjack
71
+ #endif
72
+
73
+ /**
74
+ * CocoaLumberjack has several useful macros and functions.
75
+ * If not using Lumberjack, we re-define these macros for our own use.
76
+ **/
77
+
78
+ #if YapDatabaseLoggingTechnique != YapDatabaseLoggingTechnique_Lumberjack
79
+
80
+ #ifndef THIS_METHOD
81
+ #define THIS_METHOD NSStringFromSelector(_cmd)
82
+ #endif
83
+
84
+ #ifndef THIS_FILE
85
+ NSString *YDBExtractFileNameWithoutExtension(const char *filePath);
86
+ #define THIS_FILE (YDBExtractFileNameWithoutExtension(__FILE__))
87
+ #endif
88
+
89
+ #endif
90
+
91
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
92
+ #if (YapDatabaseLoggingTechnique == YapDatabaseLoggingTechnique_Lumberjack)
93
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
94
+
95
+ // Logging Enabled.
96
+ // Logging uses the CocoaLumberjack framework. (optimal)
97
+ //
98
+ // There is a TON of documentation available from the project page:
99
+ // https://github.com/robbiehanson/CocoaLumberjack
100
+
101
+ #import "DDLog.h"
102
+
103
+ #define YDBLogAsync NO
104
+ #define YDBLogContext 27017
105
+
106
+ #define YDBLogMaybe(flg, frmt, ...) LOG_OBJC_MAYBE(YDBLogAsync, ydbLogLevel, flg, YDBLogContext, frmt, ##__VA_ARGS__)
107
+
108
+ #define YDBLogError(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_ERROR, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__)
109
+ #define YDBLogWarn(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_WARN, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__)
110
+ #define YDBLogInfo(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_INFO, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__)
111
+ #define YDBLogVerbose(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_VERBOSE, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__)
112
+
113
+ #define YDBLogTrace(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_TRACE, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__)
114
+ #define YDBLogAutoTrace() YDBLogMaybe(YDB_LOG_FLAG_TRACE, @"%@: %@", THIS_FILE, THIS_METHOD)
115
+
116
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
117
+ #elif (YapDatabaseLoggingTechnique == YapDatabaseLoggingTechnique_NSLog)
118
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
119
+
120
+ // Logging Enabled.
121
+ // Logging uses plain old NSLog. (slower)
122
+
123
+ #define YDBLogMaybe(flg, frmt, ...) \
124
+ do{ if(ydbLogLevel & flg) NSLog((@"%@: " frmt), THIS_FILE, ##__VA_ARGS__); } while(0)
125
+
126
+ #define YDBLogError(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_ERROR, frmt, ##__VA_ARGS__)
127
+ #define YDBLogWarn(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_WARN, frmt, ##__VA_ARGS__)
128
+ #define YDBLogInfo(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_INFO, frmt, ##__VA_ARGS__)
129
+ #define YDBLogVerbose(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_VERBOSE, frmt, ##__VA_ARGS__)
130
+
131
+ #define YDBLogTrace(frmt, ...) YDBLogMaybe(YDB_LOG_FLAG_TRACE, (@"%@: " frmt), THIS_FILE, ##__VA_ARGS__)
132
+ #define YDBLogAutoTrace() YDBLogMaybe(YDB_LOG_FLAG_TRACE, @"%@: %@", THIS_FILE, THIS_METHOD)
133
+
134
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
135
+ #else
136
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
137
+
138
+ // Logging Disabled
139
+
140
+ #undef YDB_LOG_ERROR
141
+ #undef YDB_LOG_WARN
142
+ #undef YDB_LOG_INFO
143
+ #undef YDB_LOG_VERBOSE
144
+
145
+ #define YDB_LOG_ERROR (NO)
146
+ #define YDB_LOG_WARN (NO)
147
+ #define YDB_LOG_INFO (NO)
148
+ #define YDB_LOG_VERBOSE (NO)
149
+
150
+ #define YDBLogError(frmt, ...) {}
151
+ #define YDBLogWarn(frmt, ...) {}
152
+ #define YDBLogInfo(frmt, ...) {}
153
+ #define YDBLogVerbose(frmt, ...) {}
154
+
155
+ #define YDBLogTrace(frmt, ...) {}
156
+ #define YDBLogAutoTrace() {}
157
+
158
+ #endif
@@ -0,0 +1,17 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ /**
4
+ * There should only be one YapDatabase or YapCollectionDatabase per file.
5
+ *
6
+ * The architecture design is to create a single parent database instance,
7
+ * and then spawn connections to the database as needed from the parent.
8
+ *
9
+ * The architecture is built around this restriction, and is dependent upon it for proper operation.
10
+ * This class simply helps maintain this requirement.
11
+ **/
12
+ @interface YapDatabaseManager : NSObject
13
+
14
+ + (BOOL)registerDatabaseForPath:(NSString *)path;
15
+ + (void)deregisterDatabaseForPath:(NSString *)path;
16
+
17
+ @end
@@ -0,0 +1,424 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ #import "YapDatabase.h"
4
+ #import "YapDatabaseDefaults.h"
5
+ #import "YapDatabaseConnection.h"
6
+ #import "YapDatabaseTransaction.h"
7
+ #import "YapDatabaseExtension.h"
8
+
9
+ #import "YapCache.h"
10
+ #import "YapMemoryTable.h"
11
+
12
+ #import "sqlite3.h"
13
+
14
+ /**
15
+ * Helper method to conditionally invoke sqlite3_finalize on a statement, and then set the ivar to NULL.
16
+ **/
17
+ NS_INLINE void sqlite_finalize_null(sqlite3_stmt **stmtPtr)
18
+ {
19
+ if (*stmtPtr) {
20
+ sqlite3_finalize(*stmtPtr);
21
+ *stmtPtr = NULL;
22
+ }
23
+ }
24
+
25
+ extern NSString *const YapDatabaseRegisteredExtensionsKey;
26
+ extern NSString *const YapDatabaseRegisteredTablesKey;
27
+ extern NSString *const YapDatabaseExtensionsOrderKey;
28
+ extern NSString *const YapDatabaseNotificationKey;
29
+
30
+ @interface YapDatabase () {
31
+ @private
32
+
33
+ NSMutableArray *changesets;
34
+ uint64_t snapshot;
35
+
36
+ dispatch_queue_t internalQueue;
37
+ dispatch_queue_t checkpointQueue;
38
+
39
+ YapDatabaseDefaults *defaults;
40
+
41
+ NSDictionary *registeredExtensions;
42
+ NSDictionary *registeredTables;
43
+
44
+ NSDictionary *extensionDependencies;
45
+ NSArray *extensionsOrder;
46
+
47
+ YapDatabaseConnection *registrationConnection;
48
+
49
+ NSUInteger maxConnectionPoolCount;
50
+ NSTimeInterval connectionPoolLifetime;
51
+ dispatch_source_t connectionPoolTimer;
52
+ NSMutableArray *connectionPoolValues;
53
+ NSMutableArray *connectionPoolDates;
54
+
55
+ sqlite3 *db; // Used for setup & checkpoints
56
+
57
+ @public
58
+
59
+ void *IsOnSnapshotQueueKey; // Only to be used by YapDatabaseConnection
60
+ void *IsOnWriteQueueKey; // Only to be used by YapDatabaseConnection
61
+
62
+ dispatch_queue_t snapshotQueue; // Only to be used by YapDatabaseConnection
63
+ dispatch_queue_t writeQueue; // Only to be used by YapDatabaseConnection
64
+
65
+ NSMutableArray *connectionStates; // Only to be used by YapDatabaseConnection
66
+
67
+ NSArray *previouslyRegisteredExtensionNames; // Only to be used by YapDatabaseConnection
68
+
69
+ YapDatabaseSerializer objectSerializer; // Read-only by transactions
70
+ YapDatabaseDeserializer objectDeserializer; // Read-only by transactions
71
+
72
+ YapDatabaseSerializer metadataSerializer; // Read-only by transactions
73
+ YapDatabaseDeserializer metadataDeserializer; // Read-only by transactions
74
+
75
+ YapDatabaseSanitizer objectSanitizer; // Read-only by transactions
76
+ YapDatabaseSanitizer metadataSanitizer; // Read-only by transactions
77
+ }
78
+
79
+ /**
80
+ * General utility methods.
81
+ **/
82
+ - (BOOL)tableExists:(NSString *)tableName using:(sqlite3 *)aDb;
83
+ - (NSArray *)columnNamesForTable:(NSString *)tableName using:(sqlite3 *)aDb;
84
+
85
+ /**
86
+ * New connections inherit their default values from this structure.
87
+ **/
88
+ - (YapDatabaseDefaults *)defaults;
89
+
90
+ /**
91
+ * Called from YapDatabaseConnection's dealloc method to remove connection's state from connectionStates array.
92
+ **/
93
+ - (void)removeConnection:(YapDatabaseConnection *)connection;
94
+
95
+ /**
96
+ * YapDatabaseConnection uses these methods to recycle sqlite3 instances using the connection pool.
97
+ **/
98
+ - (BOOL)connectionPoolEnqueue:(sqlite3 *)aDb;
99
+ - (sqlite3 *)connectionPoolDequeue;
100
+
101
+ /**
102
+ * These methods are only accessible from within the snapshotQueue.
103
+ * Used by [YapDatabaseConnection prepare].
104
+ **/
105
+ - (NSDictionary *)registeredTables;
106
+ - (NSArray *)extensionsOrder;
107
+
108
+ /**
109
+ * This method is only accessible from within the snapshotQueue.
110
+ *
111
+ * Prior to starting the sqlite commit, the connection must report its changeset to the database.
112
+ * The database will store the changeset, and provide it to other connections if needed (due to a race condition).
113
+ *
114
+ * The following MUST be in the dictionary:
115
+ *
116
+ * - snapshot : NSNumber with the changeset's snapshot
117
+ **/
118
+ - (void)notePendingChanges:(NSDictionary *)changeset fromConnection:(YapDatabaseConnection *)connection;
119
+
120
+ /**
121
+ * This method is only accessible from within the snapshotQueue.
122
+ *
123
+ * This method is used if a transaction finds itself in a race condition.
124
+ * That is, the transaction started before it was able to process changesets from sibling connections.
125
+ *
126
+ * It should fetch the changesets needed and then process them via [connection noteCommittedChanges:].
127
+ **/
128
+ - (NSArray *)pendingAndCommittedChangesSince:(uint64_t)connectionSnapshot until:(uint64_t)maxSnapshot;
129
+
130
+ /**
131
+ * This method is only accessible from within the snapshotQueue.
132
+ *
133
+ * Upon completion of a readwrite transaction, the connection must report its changeset to the database.
134
+ * The database will then forward the changeset to all other connections.
135
+ *
136
+ * The following MUST be in the dictionary:
137
+ *
138
+ * - snapshot : NSNumber with the changeset's snapshot
139
+ **/
140
+ - (void)noteCommittedChanges:(NSDictionary *)changeset fromConnection:(YapDatabaseConnection *)connection;
141
+
142
+ /**
143
+ * This method should be called whenever the maximum checkpointable snapshot is incremented.
144
+ * That is, the state of every connection is known to the system.
145
+ * And a snaphot cannot be checkpointed until every connection is at or past that snapshot.
146
+ * Thus, we can know the point at which a snapshot becomes checkpointable,
147
+ * and we can thus optimize the checkpoint invocations such that
148
+ * each invocation is able to checkpoint one or more commits.
149
+ **/
150
+ - (void)asyncCheckpoint:(uint64_t)maxCheckpointableSnapshot;
151
+
152
+ @end
153
+
154
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
155
+ #pragma mark -
156
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
157
+
158
+ @interface YapDatabaseConnection () {
159
+ @private
160
+ uint64_t snapshot;
161
+
162
+ id sharedKeySetForInternalChangeset;
163
+ id sharedKeySetForExternalChangeset;
164
+
165
+ YapDatabaseReadTransaction *longLivedReadTransaction;
166
+ BOOL throwExceptionsForImplicitlyEndingLongLivedReadTransaction;
167
+ NSMutableArray *pendingChangesets;
168
+ NSMutableArray *processedChangesets;
169
+
170
+ NSDictionary *registeredExtensions;
171
+ BOOL registeredExtensionsChanged;
172
+
173
+ NSDictionary *registeredTables;
174
+ BOOL registeredTablesChanged;
175
+
176
+ NSMutableDictionary *extensions;
177
+ BOOL extensionsReady;
178
+ id sharedKeySetForExtensions;
179
+
180
+ @public
181
+ __strong YapDatabase *database;
182
+
183
+ sqlite3 *db;
184
+
185
+ dispatch_queue_t connectionQueue; // Only for YapDatabaseExtensionConnection subclasses
186
+ void *IsOnConnectionQueueKey; // Only for YapDatabaseExtensionConnection subclasses
187
+
188
+ NSArray *extensionsOrder; // Read-only by YapDatabaseTransaction
189
+
190
+ BOOL hasDiskChanges;
191
+
192
+ YapCache *objectCache;
193
+ YapCache *metadataCache;
194
+
195
+ NSUInteger objectCacheLimit; // Read-only by transaction. Use as consideration of whether to add to cache.
196
+ NSUInteger metadataCacheLimit; // Read-only by transaction. Use as consideration of whether to add to cache.
197
+
198
+ YapDatabasePolicy objectPolicy; // Read-only by transaction. Use to determine what goes in objectChanges.
199
+ YapDatabasePolicy metadataPolicy; // Read-only by transaction. Use to determine what goes in metadataChanges.
200
+
201
+ BOOL needsMarkSqlLevelSharedReadLock; // Read-only by transaction. Use as consideration of whether to invoke method.
202
+
203
+ NSMutableDictionary *objectChanges;
204
+ NSMutableDictionary *metadataChanges;
205
+ NSMutableSet *removedKeys;
206
+ NSMutableSet *removedCollections;
207
+ BOOL allKeysRemoved;
208
+ }
209
+
210
+ - (id)initWithDatabase:(YapDatabase *)database;
211
+
212
+ - (sqlite3_stmt *)beginTransactionStatement;
213
+ - (sqlite3_stmt *)commitTransactionStatement;
214
+ - (sqlite3_stmt *)rollbackTransactionStatement;
215
+
216
+ - (sqlite3_stmt *)yapGetDataForKeyStatement; // Against "yap" database, for internal use
217
+ - (sqlite3_stmt *)yapSetDataForKeyStatement; // Against "yap" database, for internal use
218
+ - (sqlite3_stmt *)yapRemoveExtensionStatement; // Against "yap" database, for internal use
219
+
220
+ - (sqlite3_stmt *)getCollectionCountStatement;
221
+ - (sqlite3_stmt *)getKeyCountForCollectionStatement;
222
+ - (sqlite3_stmt *)getKeyCountForAllStatement;
223
+ - (sqlite3_stmt *)getCountForRowidStatement;
224
+ - (sqlite3_stmt *)getRowidForKeyStatement;
225
+ - (sqlite3_stmt *)getKeyForRowidStatement;
226
+ - (sqlite3_stmt *)getKeyDataForRowidStatement;
227
+ - (sqlite3_stmt *)getKeyMetadataForRowidStatement;
228
+ - (sqlite3_stmt *)getDataForRowidStatement;
229
+ - (sqlite3_stmt *)getAllForRowidStatement;
230
+ - (sqlite3_stmt *)getDataForKeyStatement;
231
+ - (sqlite3_stmt *)getMetadataForKeyStatement;
232
+ - (sqlite3_stmt *)getAllForKeyStatement;
233
+ - (sqlite3_stmt *)insertForRowidStatement;
234
+ - (sqlite3_stmt *)updateAllForRowidStatement;
235
+ - (sqlite3_stmt *)updateMetadataForRowidStatement;
236
+ - (sqlite3_stmt *)removeForRowidStatement;
237
+ - (sqlite3_stmt *)removeCollectionStatement;
238
+ - (sqlite3_stmt *)removeAllStatement;
239
+ - (sqlite3_stmt *)enumerateCollectionsStatement;
240
+ - (sqlite3_stmt *)enumerateCollectionsForKeyStatement;
241
+ - (sqlite3_stmt *)enumerateKeysInCollectionStatement;
242
+ - (sqlite3_stmt *)enumerateKeysInAllCollectionsStatement;
243
+ - (sqlite3_stmt *)enumerateKeysAndMetadataInCollectionStatement;
244
+ - (sqlite3_stmt *)enumerateKeysAndMetadataInAllCollectionsStatement;
245
+ - (sqlite3_stmt *)enumerateKeysAndObjectsInCollectionStatement;
246
+ - (sqlite3_stmt *)enumerateKeysAndObjectsInAllCollectionsStatement;
247
+ - (sqlite3_stmt *)enumerateRowsInCollectionStatement;
248
+ - (sqlite3_stmt *)enumerateRowsInAllCollectionsStatement;
249
+
250
+ - (void)prepare;
251
+
252
+ - (NSDictionary *)extensions;
253
+
254
+ - (BOOL)registerExtension:(YapDatabaseExtension *)extension withName:(NSString *)extensionName;
255
+ - (void)unregisterExtension:(NSString *)extensionName;
256
+
257
+ - (NSDictionary *)registeredTables;
258
+
259
+ - (BOOL)registerTable:(YapMemoryTable *)table withName:(NSString *)name;
260
+ - (void)unregisterTableWithName:(NSString *)name;
261
+
262
+ - (YapDatabaseReadTransaction *)newReadTransaction;
263
+ - (YapDatabaseReadWriteTransaction *)newReadWriteTransaction;
264
+
265
+ - (void)markSqlLevelSharedReadLockAcquired;
266
+
267
+ - (void)postRollbackCleanup;
268
+
269
+ - (NSArray *)internalChangesetKeys;
270
+ - (NSArray *)externalChangesetKeys;
271
+ - (void)getInternalChangeset:(NSMutableDictionary **)internalPtr externalChangeset:(NSMutableDictionary **)externalPtr;
272
+ - (void)processChangeset:(NSDictionary *)changeset;
273
+
274
+ - (void)noteCommittedChanges:(NSDictionary *)changeset;
275
+
276
+ - (void)maybeResetLongLivedReadTransaction;
277
+
278
+ @end
279
+
280
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
281
+ #pragma mark -
282
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
283
+
284
+ @interface YapDatabaseReadTransaction () {
285
+ @private
286
+
287
+ NSMutableDictionary *extensions;
288
+ NSMutableArray *orderedExtensions;
289
+ BOOL extensionsReady;
290
+
291
+ @protected
292
+ BOOL isMutated; // Used for "mutation during enumeration" protection
293
+
294
+ @public
295
+ __unsafe_unretained YapDatabaseConnection *connection;
296
+
297
+ BOOL isReadWriteTransaction;
298
+ BOOL rollback;
299
+ id customObjectForNotification;
300
+ }
301
+
302
+ - (id)initWithConnection:(YapDatabaseConnection *)connection isReadWriteTransaction:(BOOL)flag;
303
+
304
+ - (void)beginTransaction;
305
+ - (void)preCommitReadWriteTransaction;
306
+ - (void)commitTransaction;
307
+ - (void)rollbackTransaction;
308
+
309
+ - (NSDictionary *)extensions;
310
+ - (NSArray *)orderedExtensions;
311
+
312
+ - (YapMemoryTableTransaction *)memoryTableTransaction:(NSString *)tableName;
313
+
314
+ - (void)addRegisteredExtensionTransaction:(YapDatabaseExtensionTransaction *)extTransaction;
315
+ - (void)removeRegisteredExtensionTransaction:(NSString *)extName;
316
+
317
+
318
+ - (BOOL)getBoolValue:(BOOL *)valuePtr forKey:(NSString *)key extension:(NSString *)extensionName;
319
+ - (void)setBoolValue:(BOOL)value forKey:(NSString *)key extension:(NSString *)extensionName;
320
+
321
+ - (BOOL)getIntValue:(int *)valuePtr forKey:(NSString *)key extension:(NSString *)extensionName;
322
+ - (void)setIntValue:(int)value forKey:(NSString *)key extension:(NSString *)extensionName;
323
+
324
+ - (BOOL)getDoubleValue:(double *)valuePtr forKey:(NSString *)key extension:(NSString *)extensionName;
325
+ - (void)setDoubleValue:(double)value forKey:(NSString *)key extension:(NSString *)extensionName;
326
+
327
+ - (NSString *)stringValueForKey:(NSString *)key extension:(NSString *)extensionName;
328
+ - (void)setStringValue:(NSString *)value forKey:(NSString *)key extension:(NSString *)extensionName;
329
+
330
+ - (NSData *)dataValueForKey:(NSString *)key extension:(NSString *)extensionName;
331
+ - (void)setDataValue:(NSData *)value forKey:(NSString *)key extension:(NSString *)extensionName;
332
+
333
+ - (void)removeAllValuesForExtension:(NSString *)extensionName;
334
+
335
+ - (NSException *)mutationDuringEnumerationException;
336
+
337
+ - (BOOL)getRowid:(int64_t *)rowidPtr forKey:(NSString *)key inCollection:(NSString *)collection;
338
+
339
+ - (BOOL)getKey:(NSString **)keyPtr collection:(NSString **)collectionPtr forRowid:(int64_t)rowid;
340
+
341
+ - (BOOL)getKey:(NSString **)keyPtr
342
+ collection:(NSString **)collectionPtr
343
+ object:(id *)objectPtr
344
+ forRowid:(int64_t)rowid;
345
+
346
+ - (BOOL)getKey:(NSString **)keyPtr
347
+ collection:(NSString **)collectionPtr
348
+ metadata:(id *)metadataPtr
349
+ forRowid:(int64_t)rowid;
350
+
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;
358
+
359
+ - (id)objectForKey:(NSString *)key inCollection:(NSString *)collection withRowid:(int64_t)rowid;
360
+
361
+ - (void)_enumerateKeysInCollection:(NSString *)collection
362
+ usingBlock:(void (^)(int64_t rowid, NSString *key, BOOL *stop))block;
363
+
364
+ - (void)_enumerateKeysInCollections:(NSArray *)collections
365
+ usingBlock:(void (^)(int64_t rowid, NSString *collection, NSString *key, BOOL *stop))block;
366
+
367
+ - (void)_enumerateKeysInAllCollectionsUsingBlock:
368
+ (void (^)(int64_t rowid, NSString *collection, NSString *key, BOOL *stop))block;
369
+
370
+ - (void)_enumerateKeysAndMetadataInCollection:(NSString *)collection
371
+ usingBlock:(void (^)(int64_t rowid, NSString *key, id metadata, BOOL *stop))block;
372
+ - (void)_enumerateKeysAndMetadataInCollection:(NSString *)collection
373
+ usingBlock:(void (^)(int64_t rowid, NSString *key, id metadata, BOOL *stop))block
374
+ withFilter:(BOOL (^)(int64_t rowid, NSString *key))filter;
375
+
376
+ - (void)_enumerateKeysAndMetadataInCollections:(NSArray *)collections
377
+ usingBlock:(void (^)(int64_t rowid, NSString *collection, NSString *key, id metadata, BOOL *stop))block;
378
+ - (void)_enumerateKeysAndMetadataInCollections:(NSArray *)collections
379
+ usingBlock:(void (^)(int64_t rowid, NSString *collection, NSString *key, id metadata, BOOL *stop))block
380
+ withFilter:(BOOL (^)(int64_t rowid, NSString *collection, NSString *key))filter;
381
+
382
+ - (void)_enumerateKeysAndMetadataInAllCollectionsUsingBlock:
383
+ (void (^)(int64_t rowid, NSString *collection, NSString *key, id metadata, BOOL *stop))block;
384
+ - (void)_enumerateKeysAndMetadataInAllCollectionsUsingBlock:
385
+ (void (^)(int64_t rowid, NSString *collection, NSString *key, id metadata, BOOL *stop))block
386
+ withFilter:(BOOL (^)(int64_t rowid, NSString *collection, NSString *key))filter;
387
+
388
+ - (void)_enumerateKeysAndObjectsInCollection:(NSString *)collection
389
+ usingBlock:(void (^)(int64_t rowid, NSString *key, id object, BOOL *stop))block;
390
+ - (void)_enumerateKeysAndObjectsInCollection:(NSString *)collection
391
+ usingBlock:(void (^)(int64_t rowid, NSString *key, id object, BOOL *stop))block
392
+ withFilter:(BOOL (^)(int64_t rowid, NSString *key))filter;
393
+
394
+ - (void)_enumerateKeysAndObjectsInCollections:(NSArray *)collections
395
+ usingBlock:(void (^)(int64_t rowid, NSString *collection, NSString *key, id object, BOOL *stop))block;
396
+ - (void)_enumerateKeysAndObjectsInCollections:(NSArray *)collections
397
+ usingBlock:(void (^)(int64_t rowid, NSString *collection, NSString *key, id object, BOOL *stop))block
398
+ withFilter:(BOOL (^)(int64_t rowid, NSString *collection, NSString *key))filter;
399
+
400
+ - (void)_enumerateKeysAndObjectsInAllCollectionsUsingBlock:
401
+ (void (^)(int64_t rowid, NSString *collection, NSString *key, id object, BOOL *stop))block;
402
+ - (void)_enumerateKeysAndObjectsInAllCollectionsUsingBlock:
403
+ (void (^)(int64_t rowid, NSString *collection, NSString *key, id object, BOOL *stop))block
404
+ withFilter:(BOOL (^)(int64_t rowid, NSString *collection, NSString *key))filter;
405
+
406
+ - (void)_enumerateRowsInCollection:(NSString *)collection
407
+ usingBlock:(void (^)(int64_t rowid, NSString *key, id object, id metadata, BOOL *stop))block;
408
+ - (void)_enumerateRowsInCollection:(NSString *)collection
409
+ usingBlock:(void (^)(int64_t rowid, NSString *key, id object, id metadata, BOOL *stop))block
410
+ withFilter:(BOOL (^)(int64_t rowid, NSString *key))filter;
411
+
412
+ - (void)_enumerateRowsInCollections:(NSArray *)collections
413
+ usingBlock:(void (^)(int64_t rowid, NSString *collection, NSString *key, id object, id metadata, BOOL *stop))block;
414
+ - (void)_enumerateRowsInCollections:(NSArray *)collections
415
+ usingBlock:(void (^)(int64_t rowid, NSString *collection, NSString *key, id object, id metadata, BOOL *stop))block
416
+ withFilter:(BOOL (^)(int64_t rowid, NSString *collection, NSString *key))filter;
417
+
418
+ - (void)_enumerateRowsInAllCollectionsUsingBlock:
419
+ (void (^)(int64_t rowid, NSString *collection, NSString *key, id object, id metadata, BOOL *stop))block;
420
+ - (void)_enumerateRowsInAllCollectionsUsingBlock:
421
+ (void (^)(int64_t rowid, NSString *collection, NSString *key, id object, id metadata, BOOL *stop))block
422
+ withFilter:(BOOL (^)(int64_t rowid, NSString *collection, NSString *key))filter;
423
+
424
+ @end