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,58 @@
1
+ #import "YapDatabaseExtension.h"
2
+ #import "YapDatabaseExtensionPrivate.h"
3
+
4
+
5
+ @implementation YapDatabaseExtension
6
+
7
+ + (void)dropTablesForRegisteredName:(NSString *)registeredName
8
+ withTransaction:(YapDatabaseReadWriteTransaction *)transaction
9
+ {
10
+ NSAssert(NO, @"Missing required method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
11
+ }
12
+
13
+ + (NSArray *)previousClassNames
14
+ {
15
+ return nil;
16
+ }
17
+
18
+ @synthesize registeredName;
19
+
20
+ /**
21
+ * Subclasses must implement this method.
22
+ * This method is called during the view registration process to enusre the extension supports the database type.
23
+ *
24
+ * Return YES if the class/instance supports the database configuration.
25
+ **/
26
+ - (BOOL)supportsDatabase:(YapDatabase *)database withRegisteredExtensions:(NSDictionary *)registeredExtensions
27
+ {
28
+ NSAssert(NO, @"Missing required method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
29
+ return NO;
30
+ }
31
+
32
+ /**
33
+ * Subclasses MUST implement this method IF they have dependencies.
34
+ * This method is called during the view registration simply to record the needed dependencies.
35
+ * If any of the dependencies are unregistered, this extension will automatically be unregistered.
36
+ *
37
+ * Return a set of NSString objects, representing the name(s) of registered extensions
38
+ * that this extension is dependent upon.
39
+ *
40
+ * If there are no dependencies, return nil (or an empty set).
41
+ * The default implementation returns nil.
42
+ **/
43
+ - (NSSet *)dependencies
44
+ {
45
+ return nil;
46
+ }
47
+
48
+ /**
49
+ * Subclasses MUST implement this method.
50
+ * Returns a proper instance of the YapDatabaseExtensionConnection subclass.
51
+ **/
52
+ - (YapDatabaseExtensionConnection *)newConnection:(YapDatabaseConnection *)databaseConnection
53
+ {
54
+ NSAssert(NO, @"Missing required method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
55
+ return nil;
56
+ }
57
+
58
+ @end
@@ -0,0 +1,11 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+
4
+ @interface YapDatabaseExtensionConnection : NSObject
5
+
6
+ /**
7
+ * This class is abstract and has no public API.
8
+ * See concrete implementations such as YapDatabaseViewConnection.
9
+ **/
10
+
11
+ @end
@@ -0,0 +1,46 @@
1
+ #import "YapDatabaseExtensionConnection.h"
2
+ #import "YapDatabaseExtensionPrivate.h"
3
+
4
+
5
+ @implementation YapDatabaseExtensionConnection
6
+
7
+ - (YapDatabaseExtension *)extension
8
+ {
9
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
10
+ return nil;
11
+ }
12
+
13
+ - (id)newReadTransaction:(YapDatabaseReadTransaction *)databaseTransaction
14
+ {
15
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
16
+ return nil;
17
+ }
18
+
19
+ - (id)newReadWriteTransaction:(YapDatabaseReadWriteTransaction *)databaseTransaction
20
+ {
21
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
22
+ return nil;
23
+ }
24
+
25
+ - (void)_flushMemoryWithLevel:(int)level
26
+ {
27
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
28
+ }
29
+
30
+ - (void)getInternalChangeset:(NSMutableDictionary **)internalPtr
31
+ externalChangeset:(NSMutableDictionary **)externalPtr
32
+ hasDiskChanges:(BOOL *)hasDiskChangesPtr
33
+ {
34
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
35
+
36
+ *internalPtr = nil;
37
+ *externalPtr = nil;
38
+ *hasDiskChangesPtr = NO;
39
+ }
40
+
41
+ - (void)processChangeset:(NSDictionary *)changeset
42
+ {
43
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
44
+ }
45
+
46
+ @end
@@ -0,0 +1,11 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+
4
+ @interface YapDatabaseExtensionTransaction : NSObject
5
+
6
+ /**
7
+ * This class is abstract and has no public API.
8
+ * See concrete implementations such as YapDatabaseViewTransaction.
9
+ **/
10
+
11
+ @end
@@ -0,0 +1,180 @@
1
+ #import "YapDatabaseExtensionTransaction.h"
2
+ #import "YapDatabaseExtensionPrivate.h"
3
+ #import "YapDatabasePrivate.h"
4
+ #import "YapDatabaseString.h"
5
+ #import "YapDatabaseLogging.h"
6
+
7
+ #if ! __has_feature(objc_arc)
8
+ #warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
9
+ #endif
10
+
11
+ /**
12
+ * Define log level for this file: OFF, ERROR, WARN, INFO, VERBOSE
13
+ * See YapDatabaseLogging.h for more information.
14
+ **/
15
+ #if DEBUG
16
+ static const int ydbLogLevel = YDB_LOG_LEVEL_WARN;
17
+ #else
18
+ static const int ydbLogLevel = YDB_LOG_LEVEL_WARN;
19
+ #endif
20
+
21
+
22
+ @implementation YapDatabaseExtensionTransaction
23
+
24
+ /**
25
+ * See YapDatabaseExtensionPrivate for discussion of this method.
26
+ **/
27
+ - (BOOL)createIfNeeded
28
+ {
29
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
30
+ return NO;
31
+ }
32
+
33
+ /**
34
+ * See YapDatabaseExtensionPrivate for discussion of this method.
35
+ **/
36
+ - (BOOL)prepareIfNeeded
37
+ {
38
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
39
+ return NO;
40
+ }
41
+
42
+ /**
43
+ * This method is called if within a readwrite transaction.
44
+ * This method is optional.
45
+ **/
46
+ - (void)preCommitReadWriteTransaction
47
+ {
48
+ // Subclasses may optionally override this method to perform any "cleanup" before the changesets are requested.
49
+ // Remember, the changesets are requested before the commitTransaction method is invoked.
50
+ }
51
+
52
+ /**
53
+ * This method is only called if within a readwrite transaction.
54
+ **/
55
+ - (void)commitTransaction
56
+ {
57
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
58
+
59
+ // Subclasses should include the code similar to the following at the end of their implementation:
60
+ //
61
+ // viewConnection = nil;
62
+ // databaseTransaction = nil;
63
+ }
64
+
65
+ /**
66
+ * This method is only called if within a readwrite transaction.
67
+ **/
68
+ - (void)rollbackTransaction
69
+ {
70
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
71
+
72
+ // Subclasses should include the code similar to the following at the end of their implementation:
73
+ //
74
+ // viewConnection = nil;
75
+ // databaseTransaction = nil;
76
+ }
77
+
78
+ - (YapDatabaseReadTransaction *)databaseTransaction
79
+ {
80
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
81
+ return nil;
82
+ }
83
+
84
+ - (YapDatabaseExtensionConnection *)extensionConnection
85
+ {
86
+ NSAssert(NO, @"Missing required override method(%@) in class(%@)", NSStringFromSelector(_cmd), [self class]);
87
+ return nil;
88
+ }
89
+
90
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
91
+ #pragma mark Persistent Values
92
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
93
+
94
+ /**
95
+ * The following method are convenience methods for getting and setting persistent values for the extension.
96
+ * The persistent values are stored in the yap2 table, which is specifically designed for this use.
97
+ **/
98
+
99
+ - (BOOL)getBoolValue:(BOOL *)valuePtr forExtensionKey:(NSString *)key
100
+ {
101
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
102
+ return [[self databaseTransaction] getBoolValue:valuePtr forKey:key extension:registeredName];
103
+ }
104
+
105
+ - (BOOL)boolValueForExtensionKey:(NSString *)key
106
+ {
107
+ BOOL value = NO;
108
+ [self getBoolValue:&value forExtensionKey:key];
109
+ return value;
110
+ }
111
+
112
+ - (void)setBoolValue:(BOOL)value forExtensionKey:(NSString *)key
113
+ {
114
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
115
+ [[self databaseTransaction] setBoolValue:value forKey:key extension:registeredName];
116
+ }
117
+
118
+ - (BOOL)getIntValue:(int *)valuePtr forExtensionKey:(NSString *)key
119
+ {
120
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
121
+ return [[self databaseTransaction] getIntValue:valuePtr forKey:key extension:registeredName];
122
+ }
123
+
124
+ - (int)intValueForExtensionKey:(NSString *)key
125
+ {
126
+ int value = 0;
127
+ [self getIntValue:&value forExtensionKey:key];
128
+ return value;
129
+ }
130
+
131
+ - (void)setIntValue:(int)value forExtensionKey:(NSString *)key
132
+ {
133
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
134
+ [[self databaseTransaction] setIntValue:value forKey:key extension:registeredName];
135
+ }
136
+
137
+ - (BOOL)getDoubleValue:(double *)valuePtr forExtensionKey:(NSString *)key
138
+ {
139
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
140
+ return [[self databaseTransaction] getDoubleValue:valuePtr forKey:key extension:registeredName];
141
+ }
142
+
143
+ - (double)doubleValueForExtensionKey:(NSString *)key
144
+ {
145
+ double value = 0.0;
146
+ [self getDoubleValue:&value forExtensionKey:key];
147
+ return value;
148
+ }
149
+
150
+ - (void)setDoubleValue:(double)value forExtensionKey:(NSString *)key
151
+ {
152
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
153
+ [[self databaseTransaction] setDoubleValue:value forKey:key extension:registeredName];
154
+ }
155
+
156
+ - (NSString *)stringValueForExtensionKey:(NSString *)key
157
+ {
158
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
159
+ return [[self databaseTransaction] stringValueForKey:key extension:registeredName];
160
+ }
161
+
162
+ - (void)setStringValue:(NSString *)value forExtensionKey:(NSString *)key
163
+ {
164
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
165
+ [[self databaseTransaction] setStringValue:value forKey:key extension:registeredName];
166
+ }
167
+
168
+ - (NSData *)dataValueForExtensionKey:(NSString *)key
169
+ {
170
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
171
+ return [[self databaseTransaction] dataValueForKey:key extension:registeredName];
172
+ }
173
+
174
+ - (void)setDataValue:(NSData *)value forExtensionKey:(NSString *)key
175
+ {
176
+ NSString *registeredName = [[[self extensionConnection] extension] registeredName];
177
+ [[self databaseTransaction] setDataValue:value forKey:key extension:registeredName];
178
+ }
179
+
180
+ @end
@@ -0,0 +1,73 @@
1
+ #import "YapDatabase.h"
2
+ #import "YapDatabaseConnection.h"
3
+ #import "YapDatabaseTransaction.h"
4
+
5
+ #import "YapDatabaseSecondaryIndex.h"
6
+ #import "YapDatabaseSecondaryIndexConnection.h"
7
+ #import "YapDatabaseSecondaryIndexTransaction.h"
8
+
9
+ #import "YapDatabaseSecondaryIndexSetup.h"
10
+ #import "YapCache.h"
11
+
12
+ #import "sqlite3.h"
13
+
14
+ @interface YapDatabaseSecondaryIndex () {
15
+ @public
16
+
17
+ YapDatabaseSecondaryIndexSetup *setup;
18
+
19
+ YapDatabaseSecondaryIndexBlock block;
20
+ YapDatabaseSecondaryIndexBlockType blockType;
21
+
22
+ int version;
23
+
24
+ id columnNamesSharedKeySet;
25
+ }
26
+
27
+ - (NSString *)tableName;
28
+
29
+ @end
30
+
31
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
32
+ #pragma mark -
33
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
34
+
35
+ @interface YapDatabaseSecondaryIndexConnection () {
36
+ @public
37
+
38
+ __strong YapDatabaseSecondaryIndex *secondaryIndex;
39
+ __unsafe_unretained YapDatabaseConnection *databaseConnection;
40
+
41
+ NSMutableDictionary *blockDict;
42
+
43
+ YapCache *queryCache;
44
+ NSUInteger queryCacheLimit;
45
+ }
46
+
47
+ - (id)initWithSecondaryIndex:(YapDatabaseSecondaryIndex *)secondaryIndex
48
+ databaseConnection:(YapDatabaseConnection *)databaseConnection;
49
+
50
+ - (sqlite3_stmt *)insertStatement;
51
+ - (sqlite3_stmt *)updateStatement;
52
+ - (sqlite3_stmt *)removeStatement;
53
+ - (sqlite3_stmt *)removeAllStatement;
54
+
55
+ @end
56
+
57
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
58
+ #pragma mark -
59
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
60
+
61
+ @interface YapDatabaseSecondaryIndexTransaction () {
62
+ @private
63
+
64
+ __unsafe_unretained YapDatabaseSecondaryIndexConnection *secondaryIndexConnection;
65
+ __unsafe_unretained YapDatabaseReadTransaction *databaseTransaction;
66
+
67
+ BOOL isMutated;
68
+ }
69
+
70
+ - (id)initWithSecondaryIndexConnection:(YapDatabaseSecondaryIndexConnection *)secondaryIndexConnection
71
+ databaseTransaction:(YapDatabaseReadTransaction *)databaseTransaction;
72
+
73
+ @end
@@ -0,0 +1,100 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ #import "YapDatabaseExtension.h"
4
+ #import "YapDatabaseSecondaryIndexSetup.h"
5
+ #import "YapDatabaseSecondaryIndexConnection.h"
6
+ #import "YapDatabaseSecondaryIndexTransaction.h"
7
+
8
+ /**
9
+ * Welcome to YapDatabase!
10
+ *
11
+ * https://github.com/yaptv/YapDatabase
12
+ *
13
+ * The project wiki has a wealth of documentation if you have any questions.
14
+ * https://github.com/yaptv/YapDatabase/wiki
15
+ *
16
+ * YapDatabaseSecondaryIndex is an extension which allows you to add additional indexes.
17
+ * That is, it allows you to create index(es) within sqlite for particular properties of your objects.
18
+ * You can then issue queries to find or enumerate objects using the indexes. (e.g. age >= 62)
19
+ * This allows for increased flexibility above the traditional key-value model.
20
+ **/
21
+
22
+ /**
23
+ * The block handles extracting the column values for the secondary indexes.
24
+ *
25
+ * When you add or update rows in the databse the block is invoked.
26
+ * Your block can inspect the row and determine if it contains any values that should be added to the secondary indexes.
27
+ * If not, the block can simply return.
28
+ * Otherwise the block should extract any values and add them to the given dictionary.
29
+ *
30
+ * After the block returns, the dictionary parameter will be inspected,
31
+ * and any set values will be automatically inserted/updated within the sqlite indexes.
32
+ *
33
+ * You should choose a block type that takes the minimum number of required parameters.
34
+ * The extension can make various optimizations based on required parameters of the block.
35
+ * For example, if metadata isn't required, then the extension can ignore metadata-only updates.
36
+ **/
37
+ typedef id YapDatabaseSecondaryIndexBlock; // One of the YapDatabaseSecondaryIndexWith_X_Block types below.
38
+
39
+ typedef void (^YapDatabaseSecondaryIndexWithKeyBlock) \
40
+ (NSMutableDictionary *dict, NSString *collection, NSString *key);
41
+ typedef void (^YapDatabaseSecondaryIndexWithObjectBlock) \
42
+ (NSMutableDictionary *dict, NSString *collection, NSString *key, id object);
43
+ typedef void (^YapDatabaseSecondaryIndexWithMetadataBlock) \
44
+ (NSMutableDictionary *dict, NSString *collection, NSString *key, id metadata);
45
+ typedef void (^YapDatabaseSecondaryIndexWithRowBlock) \
46
+ (NSMutableDictionary *dict, NSString *collection, NSString *key, id object, id metadata);
47
+
48
+ /**
49
+ * Use this enum to specify what kind of block you're passing.
50
+ **/
51
+ typedef enum {
52
+ YapDatabaseSecondaryIndexBlockTypeWithKey = 1031,
53
+ YapDatabaseSecondaryIndexBlockTypeWithObject = 1032,
54
+ YapDatabaseSecondaryIndexBlockTypeWithMetadata = 1033,
55
+ YapDatabaseSecondaryIndexBlockTypeWithRow = 1034
56
+ } YapDatabaseSecondaryIndexBlockType;
57
+
58
+
59
+ @interface YapDatabaseSecondaryIndex : YapDatabaseExtension
60
+
61
+ /* Inherited from YapDatabaseExtension
62
+
63
+ @property (nonatomic, strong, readonly) NSString *registeredName;
64
+
65
+ */
66
+
67
+ /**
68
+ * Creates a new secondary index extension.
69
+ * After creation, you'll need to register the extension with the database system.
70
+ *
71
+ * @param setup
72
+ *
73
+ * A YapDatabaseSecondaryIndexSetup instance allows you to specify the column names and type.
74
+ * The column names can be whatever you want, with a few exceptions for reserved names such as "rowid".
75
+ * The types can reflect numbers or text.
76
+ *
77
+ * @param block
78
+ *
79
+ * Pass a block that is one of the following types:
80
+ * - YapDatabaseSecondaryIndexWithKeyBlock
81
+ * - YapDatabaseSecondaryIndexWithObjectBlock
82
+ * - YapDatabaseSecondaryIndexWithMetadataBlock
83
+ * - YapDatabaseSecondaryIndexWithRowBlock
84
+ *
85
+ * @param blockType
86
+ *
87
+ * Pass the blockType enum that matches the passed block:
88
+ * - YapDatabaseSecondaryIndexBlockTypeWithKey
89
+ * - YapDatabaseSecondaryIndexBlockTypeWithObject
90
+ * - YapDatabaseSecondaryIndexBlockTypeWithMetadata
91
+ * - YapDatabaseSecondaryIndexBlockTypeWithRow
92
+ *
93
+ * @see YapDatabaseSecondaryIndexSetup
94
+ * @see YapDatabase registerExtension:withName:
95
+ **/
96
+ - (id)initWithSetup:(YapDatabaseSecondaryIndexSetup *)setup
97
+ block:(YapDatabaseSecondaryIndexBlock)block
98
+ blockType:(YapDatabaseSecondaryIndexBlockType)blockType;
99
+
100
+ @end