motion-yapper 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -2
  3. data/.travis.yml +2 -0
  4. data/Gemfile +1 -0
  5. data/README.md +1 -1
  6. data/Rakefile +1 -1
  7. data/lib/motion-yapper.rb +1 -0
  8. data/lib/yapper.rb +3 -5
  9. data/lib/yapper/config.rb +2 -0
  10. data/lib/yapper/db.rb +105 -40
  11. data/lib/yapper/document.rb +7 -4
  12. data/lib/yapper/document/callbacks.rb +0 -7
  13. data/lib/yapper/document/{persistance.rb → persistence.rb} +27 -21
  14. data/lib/yapper/document/relation.rb +29 -22
  15. data/lib/yapper/document/selection.rb +122 -54
  16. data/lib/yapper/extensions.rb +12 -24
  17. data/lib/yapper/settings.rb +43 -0
  18. data/lib/yapper/timestamps.rb +2 -0
  19. data/lib/yapper/version.rb +1 -1
  20. data/{yapper.gemspec → motion-yapper.gemspec} +0 -0
  21. data/spec/integration/{where_spec.rb → criteria_spec.rb} +78 -10
  22. data/spec/integration/db_spec.rb +70 -0
  23. data/spec/integration/defaults_spec.rb +37 -0
  24. data/spec/integration/extensions_spec.rb +14 -0
  25. data/spec/integration/{persistance_spec.rb → persistence_spec.rb} +0 -0
  26. data/spec/integration/relation_spec.rb +4 -4
  27. data/vendor/Podfile.lock +9 -11
  28. data/vendor/Pods/.build/libPods-CocoaLumberjack.a +0 -0
  29. data/vendor/Pods/.build/libPods-NSData+MD5Digest.a +0 -0
  30. data/vendor/Pods/.build/libPods-YapDatabase.a +0 -0
  31. data/vendor/Pods/.build/libPods.a +0 -0
  32. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDASLLogger.h +4 -4
  33. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDAbstractDatabaseLogger.h +14 -14
  34. data/vendor/Pods/{CocoaLumberjack/Lumberjack/Extensions/ContextFilterLogFormatter.h → BuildHeaders/CocoaLumberjack/DDContextFilterLogFormatter.h} +6 -8
  35. data/vendor/Pods/BuildHeaders/CocoaLumberjack/{DispatchQueueLogFormatter.h → DDDispatchQueueLogFormatter.h} +18 -6
  36. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDFileLogger.h +67 -32
  37. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog+LOGV.h +99 -0
  38. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDLog.h +98 -65
  39. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDMultiFormatter.h +30 -0
  40. data/vendor/Pods/BuildHeaders/CocoaLumberjack/DDTTYLogger.h +39 -25
  41. data/vendor/Pods/BuildHeaders/YapDatabase/NSDictionary+YapDatabase.h +8 -0
  42. data/vendor/Pods/BuildHeaders/YapDatabase/YapCache.h +1 -0
  43. data/vendor/Pods/BuildHeaders/YapDatabase/YapCollectionKey.h +3 -0
  44. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabase.h +4 -4
  45. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseConnection.h +21 -19
  46. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseDefaults.h +1 -1
  47. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseExtensionPrivate.h +35 -31
  48. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredView.h +8 -35
  49. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewPrivate.h +0 -2
  50. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTransaction.h +17 -17
  51. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFilteredViewTypes.h +32 -0
  52. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseFullTextSearchPrivate.h +8 -0
  53. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabasePrivate.h +43 -21
  54. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationship.h +35 -0
  55. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipConnection.h +29 -0
  56. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdge.h +163 -0
  57. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipEdgePrivate.h +79 -0
  58. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipNode.h +99 -0
  59. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipOptions.h +59 -0
  60. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipPrivate.h +125 -0
  61. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseRelationshipTransaction.h +384 -0
  62. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndex.h +49 -0
  63. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +10 -0
  64. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseSecondaryIndexSetupPrivate.h +18 -0
  65. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseTransaction.h +131 -21
  66. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseView.h +48 -107
  67. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewChange.h +2 -2
  68. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewConnection.h +1 -0
  69. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewMappings.h +17 -0
  70. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewOptions.h +10 -3
  71. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewPrivate.h +18 -1
  72. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTransaction.h +75 -24
  73. data/vendor/Pods/BuildHeaders/YapDatabase/YapDatabaseViewTypes.h +99 -0
  74. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.h +4 -4
  75. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDASLLogger.m +51 -50
  76. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.h +14 -14
  77. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDAbstractDatabaseLogger.m +546 -546
  78. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.h +67 -32
  79. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDFileLogger.m +1093 -907
  80. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog+LOGV.h +99 -0
  81. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.h +98 -65
  82. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDLog.m +873 -748
  83. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.h +39 -25
  84. data/vendor/Pods/CocoaLumberjack/Lumberjack/DDTTYLogger.m +1284 -1243
  85. data/vendor/Pods/{BuildHeaders/CocoaLumberjack/ContextFilterLogFormatter.h → CocoaLumberjack/Lumberjack/Extensions/DDContextFilterLogFormatter.h} +6 -8
  86. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/{ContextFilterLogFormatter.m → DDContextFilterLogFormatter.m} +70 -70
  87. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/{DispatchQueueLogFormatter.h → DDDispatchQueueLogFormatter.h} +18 -6
  88. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDDispatchQueueLogFormatter.m +253 -0
  89. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.h +30 -0
  90. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DDMultiFormatter.m +127 -0
  91. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/README.txt +1 -1
  92. data/vendor/Pods/CocoaLumberjack/README.markdown +52 -15
  93. data/vendor/Pods/Headers/CocoaLumberjack/DDASLLogger.h +4 -4
  94. data/vendor/Pods/Headers/CocoaLumberjack/DDAbstractDatabaseLogger.h +14 -14
  95. data/vendor/Pods/Headers/CocoaLumberjack/{ContextFilterLogFormatter.h → DDContextFilterLogFormatter.h} +6 -8
  96. data/vendor/Pods/Headers/CocoaLumberjack/{DispatchQueueLogFormatter.h → DDDispatchQueueLogFormatter.h} +18 -6
  97. data/vendor/Pods/Headers/CocoaLumberjack/DDFileLogger.h +67 -32
  98. data/vendor/Pods/Headers/CocoaLumberjack/DDLog+LOGV.h +99 -0
  99. data/vendor/Pods/Headers/CocoaLumberjack/DDLog.h +98 -65
  100. data/vendor/Pods/Headers/CocoaLumberjack/DDMultiFormatter.h +30 -0
  101. data/vendor/Pods/Headers/CocoaLumberjack/DDTTYLogger.h +39 -25
  102. data/vendor/Pods/Headers/YapDatabase/YapCollectionKey.h +3 -0
  103. data/vendor/Pods/Headers/YapDatabase/YapDatabase.h +4 -4
  104. data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnection.h +21 -19
  105. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredView.h +8 -35
  106. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTransaction.h +17 -17
  107. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewTypes.h +32 -0
  108. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationship.h +35 -0
  109. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipConnection.h +29 -0
  110. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipEdge.h +163 -0
  111. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipNode.h +99 -0
  112. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipOptions.h +59 -0
  113. data/vendor/Pods/Headers/YapDatabase/YapDatabaseRelationshipTransaction.h +384 -0
  114. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndex.h +49 -0
  115. data/vendor/Pods/Headers/YapDatabase/YapDatabaseTransaction.h +131 -21
  116. data/vendor/Pods/Headers/YapDatabase/YapDatabaseView.h +48 -107
  117. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChange.h +2 -2
  118. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewConnection.h +1 -0
  119. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappings.h +17 -0
  120. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewOptions.h +10 -3
  121. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTransaction.h +75 -24
  122. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewTypes.h +99 -0
  123. data/vendor/Pods/Headers/____Pods-CocoaLumberjack-prefix.h +2 -0
  124. data/vendor/Pods/Headers/____Pods-environment.h +15 -15
  125. data/vendor/Pods/Manifest.lock +9 -11
  126. data/vendor/Pods/Pods-CocoaLumberjack-Private.xcconfig +1 -1
  127. data/vendor/Pods/Pods-CocoaLumberjack-prefix.pch +2 -0
  128. data/vendor/Pods/Pods-NSData+MD5Digest-Private.xcconfig +1 -1
  129. data/vendor/Pods/Pods-YapDatabase-Private.xcconfig +1 -1
  130. data/vendor/Pods/{Pods-Acknowledgements.markdown → Pods-acknowledgements.markdown} +0 -37
  131. data/vendor/Pods/{Pods-Acknowledgements.plist → Pods-acknowledgements.plist} +0 -45
  132. data/vendor/Pods/Pods-environment.h +15 -15
  133. data/vendor/Pods/Pods.xcconfig +3 -3
  134. data/vendor/Pods/Pods.xcodeproj/project.pbxproj +2426 -3155
  135. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-CocoaLumberjack.xcscheme +59 -0
  136. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-NSData+MD5Digest.xcscheme +59 -0
  137. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods-YapDatabase.xcscheme +59 -0
  138. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/Pods.xcscheme +59 -0
  139. data/vendor/Pods/Pods.xcodeproj/xcuserdata/kareemk.xcuserdatad/xcschemes/xcschememanagement.plist +31 -0
  140. data/vendor/Pods/YapDatabase/README.md +3 -1
  141. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h +0 -2
  142. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h +8 -35
  143. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m +25 -41
  144. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h +17 -17
  145. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m +403 -134
  146. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h +32 -0
  147. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h +8 -0
  148. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m +8 -8
  149. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m +113 -62
  150. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h +35 -31
  151. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtension.m +25 -0
  152. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m +1 -1
  153. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m +25 -1
  154. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h +79 -0
  155. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h +125 -0
  156. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h +35 -0
  157. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m +129 -0
  158. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h +29 -0
  159. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m +802 -0
  160. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h +163 -0
  161. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m +408 -0
  162. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h +99 -0
  163. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h +59 -0
  164. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m +29 -0
  165. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h +384 -0
  166. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m +5254 -0
  167. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h +10 -0
  168. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexSetupPrivate.h +18 -0
  169. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h +49 -0
  170. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m +12 -0
  171. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m +9 -8
  172. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m +62 -1
  173. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m +148 -45
  174. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h +18 -1
  175. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h +2 -2
  176. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m +15 -9
  177. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h +17 -0
  178. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m +211 -64
  179. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.h +48 -107
  180. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseView.m +10 -7
  181. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.h +1 -0
  182. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewConnection.m +13 -22
  183. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewOptions.h +10 -3
  184. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h +75 -24
  185. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m +725 -244
  186. data/vendor/Pods/YapDatabase/YapDatabase/Extensions/Views/YapDatabaseViewTypes.h +99 -0
  187. data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.h +8 -0
  188. data/vendor/Pods/YapDatabase/YapDatabase/Internal/NSDictionary+YapDatabase.m +19 -0
  189. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.h +1 -0
  190. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapCache.m +12 -0
  191. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.h +1 -1
  192. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabaseDefaults.m +3 -3
  193. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapDatabasePrivate.h +43 -21
  194. data/vendor/Pods/YapDatabase/YapDatabase/Internal/YapNull.m +4 -0
  195. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.h +3 -0
  196. data/vendor/Pods/YapDatabase/YapDatabase/Utilities/YapCollectionKey.m +5 -0
  197. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.h +4 -4
  198. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabase.m +84 -93
  199. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.h +21 -19
  200. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseConnection.m +381 -209
  201. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.h +131 -21
  202. data/vendor/Pods/YapDatabase/YapDatabase/YapDatabaseTransaction.m +587 -267
  203. data/vendor/Pods/{Pods.bridgesupport → build-iPhoneSimulator/Pods.bridgesupport} +633 -2557
  204. data/vendor/Pods/build-iPhoneSimulator/libPods.a +0 -0
  205. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.bridgesupport +2 -1
  206. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.h +2 -1
  207. data/vendor/YapDatabaseRubyMotion/YapDatabaseRubyMotion.m +4 -2
  208. metadata +80 -108
  209. data/Gemfile.lock +0 -63
  210. data/lib/yapper/attachment.rb +0 -48
  211. data/lib/yapper/document/attachment.rb +0 -26
  212. data/lib/yapper/sync.rb +0 -134
  213. data/lib/yapper/sync/data.rb +0 -12
  214. data/lib/yapper/sync/event.rb +0 -194
  215. data/lib/yapper/sync/queue.rb +0 -164
  216. data/spec/integration/all_spec.rb +0 -40
  217. data/spec/integration/sync_spec.rb +0 -42
  218. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.h +0 -641
  219. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPClient.m +0 -1396
  220. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.h +0 -133
  221. data/vendor/Pods/AFNetworking/AFNetworking/AFHTTPRequestOperation.m +0 -327
  222. data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.h +0 -113
  223. data/vendor/Pods/AFNetworking/AFNetworking/AFImageRequestOperation.m +0 -321
  224. data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.h +0 -71
  225. data/vendor/Pods/AFNetworking/AFNetworking/AFJSONRequestOperation.m +0 -150
  226. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.h +0 -75
  227. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworkActivityIndicatorManager.m +0 -157
  228. data/vendor/Pods/AFNetworking/AFNetworking/AFNetworking.h +0 -43
  229. data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.h +0 -68
  230. data/vendor/Pods/AFNetworking/AFNetworking/AFPropertyListRequestOperation.m +0 -143
  231. data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.h +0 -370
  232. data/vendor/Pods/AFNetworking/AFNetworking/AFURLConnectionOperation.m +0 -848
  233. data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.h +0 -89
  234. data/vendor/Pods/AFNetworking/AFNetworking/AFXMLRequestOperation.m +0 -167
  235. data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.h +0 -78
  236. data/vendor/Pods/AFNetworking/AFNetworking/UIImageView+AFNetworking.m +0 -191
  237. data/vendor/Pods/AFNetworking/LICENSE +0 -19
  238. data/vendor/Pods/AFNetworking/README.md +0 -208
  239. data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPClient.h +0 -641
  240. data/vendor/Pods/BuildHeaders/AFNetworking/AFHTTPRequestOperation.h +0 -133
  241. data/vendor/Pods/BuildHeaders/AFNetworking/AFImageRequestOperation.h +0 -113
  242. data/vendor/Pods/BuildHeaders/AFNetworking/AFJSONRequestOperation.h +0 -71
  243. data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworkActivityIndicatorManager.h +0 -75
  244. data/vendor/Pods/BuildHeaders/AFNetworking/AFNetworking.h +0 -43
  245. data/vendor/Pods/BuildHeaders/AFNetworking/AFPropertyListRequestOperation.h +0 -68
  246. data/vendor/Pods/BuildHeaders/AFNetworking/AFURLConnectionOperation.h +0 -370
  247. data/vendor/Pods/BuildHeaders/AFNetworking/AFXMLRequestOperation.h +0 -89
  248. data/vendor/Pods/BuildHeaders/AFNetworking/UIImageView+AFNetworking.h +0 -78
  249. data/vendor/Pods/BuildHeaders/Reachability/Reachability.h +0 -109
  250. data/vendor/Pods/CocoaLumberjack/Lumberjack/Extensions/DispatchQueueLogFormatter.m +0 -251
  251. data/vendor/Pods/Headers/AFNetworking/AFHTTPClient.h +0 -641
  252. data/vendor/Pods/Headers/AFNetworking/AFHTTPRequestOperation.h +0 -133
  253. data/vendor/Pods/Headers/AFNetworking/AFImageRequestOperation.h +0 -113
  254. data/vendor/Pods/Headers/AFNetworking/AFJSONRequestOperation.h +0 -71
  255. data/vendor/Pods/Headers/AFNetworking/AFNetworkActivityIndicatorManager.h +0 -75
  256. data/vendor/Pods/Headers/AFNetworking/AFNetworking.h +0 -43
  257. data/vendor/Pods/Headers/AFNetworking/AFPropertyListRequestOperation.h +0 -68
  258. data/vendor/Pods/Headers/AFNetworking/AFURLConnectionOperation.h +0 -370
  259. data/vendor/Pods/Headers/AFNetworking/AFXMLRequestOperation.h +0 -89
  260. data/vendor/Pods/Headers/AFNetworking/UIImageView+AFNetworking.h +0 -78
  261. data/vendor/Pods/Headers/Reachability/Reachability.h +0 -109
  262. data/vendor/Pods/Headers/YapDatabase/YapCache.h +0 -90
  263. data/vendor/Pods/Headers/YapDatabase/YapDatabaseConnectionState.h +0 -29
  264. data/vendor/Pods/Headers/YapDatabase/YapDatabaseDefaults.h +0 -37
  265. data/vendor/Pods/Headers/YapDatabase/YapDatabaseExtensionPrivate.h +0 -440
  266. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFilteredViewPrivate.h +0 -19
  267. data/vendor/Pods/Headers/YapDatabase/YapDatabaseFullTextSearchPrivate.h +0 -69
  268. data/vendor/Pods/Headers/YapDatabase/YapDatabaseLogging.h +0 -158
  269. data/vendor/Pods/Headers/YapDatabase/YapDatabaseManager.h +0 -17
  270. data/vendor/Pods/Headers/YapDatabase/YapDatabasePrivate.h +0 -424
  271. data/vendor/Pods/Headers/YapDatabase/YapDatabaseSecondaryIndexPrivate.h +0 -73
  272. data/vendor/Pods/Headers/YapDatabase/YapDatabaseStatement.h +0 -13
  273. data/vendor/Pods/Headers/YapDatabase/YapDatabaseString.h +0 -121
  274. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewChangePrivate.h +0 -94
  275. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewMappingsPrivate.h +0 -72
  276. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPage.h +0 -36
  277. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPageMetadata.h +0 -27
  278. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewPrivate.h +0 -153
  279. data/vendor/Pods/Headers/YapDatabase/YapDatabaseViewRangeOptionsPrivate.h +0 -17
  280. data/vendor/Pods/Headers/YapDatabase/YapMemoryTable.h +0 -74
  281. data/vendor/Pods/Headers/YapDatabase/YapNull.h +0 -17
  282. data/vendor/Pods/Headers/YapDatabase/YapTouch.h +0 -15
  283. data/vendor/Pods/Headers/____Pods-AFNetworking-prefix.h +0 -17
  284. data/vendor/Pods/Headers/____Pods-Reachability-prefix.h +0 -5
  285. data/vendor/Pods/Pods-AFNetworking-Private.xcconfig +0 -5
  286. data/vendor/Pods/Pods-AFNetworking-dummy.m +0 -5
  287. data/vendor/Pods/Pods-AFNetworking-prefix.pch +0 -17
  288. data/vendor/Pods/Pods-AFNetworking.xcconfig +0 -1
  289. data/vendor/Pods/Pods-Reachability-Private.xcconfig +0 -5
  290. data/vendor/Pods/Pods-Reachability-dummy.m +0 -5
  291. data/vendor/Pods/Pods-Reachability-prefix.pch +0 -5
  292. data/vendor/Pods/Pods-Reachability.xcconfig +0 -1
  293. data/vendor/Pods/Reachability/LICENCE.txt +0 -24
  294. data/vendor/Pods/Reachability/README.md +0 -65
  295. data/vendor/Pods/Reachability/Reachability.h +0 -109
  296. data/vendor/Pods/Reachability/Reachability.m +0 -527
@@ -0,0 +1,99 @@
1
+ #import <Foundation/Foundation.h>
2
+ #import "YapDatabaseRelationshipEdge.h"
3
+
4
+ /**
5
+ * Welcome to YapDatabase!
6
+ *
7
+ * The project page has a wealth of documentation if you have any questions.
8
+ * https://github.com/yaptv/YapDatabase
9
+ *
10
+ * If you're new to the project you may want to visit the wiki.
11
+ * https://github.com/yaptv/YapDatabase/wiki
12
+ *
13
+ * The YapDatabaseRelationship extension allow you to create relationships between objects,
14
+ * and configure automatic deletion rules.
15
+ *
16
+ * For tons of information about this extension, see the wiki article:
17
+ * https://github.com/yaptv/YapDatabase/wiki/Relationships
18
+ **/
19
+
20
+ typedef enum {
21
+ YDB_SourceNodeDeleted,
22
+ YDB_DestinationNodeDeleted,
23
+ } YDB_NotifyReason;
24
+
25
+
26
+ /**
27
+ * There are 2 techniques you may use to add edges to the relationship graph:
28
+ *
29
+ * - Use the YapDatabaseRelationshipNode protocol
30
+ * - Manually manage the edges by adding / removing them yourself
31
+ *
32
+ * You are welcome to use either technique. In fact you can use them both simultaneously.
33
+ * Which you choose may simply be whichever works best depending on the situation.
34
+ *
35
+ * The YapDatabaseRelationshipNode protocol works quite simply:
36
+ *
37
+ * Any object that is stored in the database may optionally implement this protocol in order to
38
+ * specify a list of relationships that apply to it. The object just needs to:
39
+ * 1.) Add the YapDatabaseRelationshipNode protocol to its declared list of protocols (in header file)
40
+ * 2.) Implement the yapDatabaseRelationshipEdges method
41
+ *
42
+ * When the object is inserted or updated in the database, the YapDatabaseRelationshipExtension will automatically
43
+ * invoke the yapDatabaseRelationshipEdges method to get the list of edges. It then inserts the list of edges
44
+ * into the database (if object was inserted), or updates the previously inserted list (if object was updated).
45
+ *
46
+ * Typically this protocol is convenient to use if:
47
+ * - Your objects already contain identifiers that can be used to create the edges you desire
48
+ * - You'd like to be able to delete objects in the database by simply setting identifier properties to nil
49
+ *
50
+ * @see YapDatabaseRelationshipEdge
51
+ **/
52
+ @protocol YapDatabaseRelationshipNode <NSObject>
53
+ @required
54
+
55
+ /**
56
+ * Implement this method in order to return the edges that start from this node.
57
+ * Note that although edges are directional, the associated rules are bidirectional.
58
+ *
59
+ * In terms of edge direction, this object is the "source" of the edge.
60
+ * And the object at the other end of the edge is called the "destination".
61
+ *
62
+ * Every edge also has a name (which can be any string you specify), and a bidirectional rule.
63
+ * For example, you could specify either of the following:
64
+ * - delete the destination if I am deleted
65
+ * - delete me if the destination is deleted
66
+ *
67
+ * In fact, you could specify both of those rules simultaneously for a single edge.
68
+ * And there are similar rules if your graph is one-to-many for this node.
69
+ *
70
+ * Thus it is unnecessary to duplicate the edge on the destination node.
71
+ * So you can pick which node you'd like to create the edge(s) from.
72
+ * Either side is fine, just pick whichever is easier, or whichever makes more sense for your data model.
73
+ *
74
+ * YapDatabaseRelationship supports one-to-one, one-to-many, and even many-to-many relationships.
75
+ *
76
+ * Important: This method will not be invoked unless the object implements the protocol.
77
+ * That is, the object's class declaration must have YapDatabaseRelationshipNode in its listed protocols.
78
+ *
79
+ * @interface MyObject : NSObject <YapDatabaseRelationshipNode> // <-- Must be in protocol list
80
+ *
81
+ * @see YapDatabaseRelationshipEdge
82
+ **/
83
+ - (NSArray *)yapDatabaseRelationshipEdges;
84
+
85
+ @optional
86
+
87
+ /**
88
+ * If an edge is deleted due to one of two associated nodes being deleted,
89
+ * and the edge has a notify rule associated with it (YDB_NotifyIfSourceDeleted or YDB_NotifyIfDestinationDeleted),
90
+ * then this method may be invoked on the remaining node.
91
+ *
92
+ * It doesn't matter which side created the edge (the source or destination side).
93
+ * If the rule exists, and the remaining side implements this particular
94
+ **/
95
+ - (id)yapDatabaseRelationshipEdgeDeleted:(YapDatabaseRelationshipEdge *)edge withReason:(YDB_NotifyReason)reason;
96
+
97
+ @end
98
+
99
+
@@ -0,0 +1,59 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ /**
4
+ * Welcome to YapDatabase!
5
+ *
6
+ * The project page has a wealth of documentation if you have any questions.
7
+ * https://github.com/yaptv/YapDatabase
8
+ *
9
+ * If you're new to the project you may want to visit the wiki.
10
+ * https://github.com/yaptv/YapDatabase/wiki
11
+ *
12
+ * The YapDatabaseRelationship extension allow you to create relationships between objects,
13
+ * and configure automatic deletion rules.
14
+ *
15
+ * For tons of information about this extension, see the wiki article:
16
+ * https://github.com/yaptv/YapDatabase/wiki/Relationships
17
+ **/
18
+
19
+ @interface YapDatabaseRelationshipOptions : NSObject <NSCopying>
20
+
21
+ /**
22
+ * You can optionally completely disable the YapDatabaseRelationshipProtocol.
23
+ *
24
+ * If you don't use it at all (i.e. you manually manage all graph edges),
25
+ * then disabling the protocol, and its related processing, can reduce overhead.
26
+ *
27
+ * The default value is NO.
28
+ **/
29
+ @property (nonatomic, assign, readwrite) BOOL disableYapDatabaseRelationshipNodeProtocol;
30
+
31
+ /**
32
+ * You can configure the extension to pre-filter all but a subset of collections.
33
+ *
34
+ * The primary motivation for this is to reduce the overhead when populating the graph.
35
+ * That is, when you first create the relationship extension, it will automatically enumerate all objects
36
+ * in the database and check to see if any of them implement the YapDatabaseRelationshipNode protocol.
37
+ * If there is only a single collection which includes objects implementing the YapDatabaseRelationshipNode protoco,
38
+ * then you could specify that collection here. So when the extension first populates itself,
39
+ * it will enumerate over just the allowedCollections, as opposed to enumerating over all collections.
40
+ * And enumerating a small subset of the entire database during graph population can improve speed,
41
+ * especially with larger databases.
42
+ *
43
+ * In addition to reducing the overhead when first populating the graph,
44
+ * the allowedCollections will pre-filter while you're making changes to the database.
45
+ * So if you add a new object to the database, and the associated collection isn't in allowedCollections,
46
+ * then the extension will skip any associated processing that would normally occur. (Things like checking to see
47
+ * if the object implements the YapDatabaseRelationshipNode protocol, and checking to see if there were previously
48
+ * any associated protocol edges for the object.)
49
+ *
50
+ * For all rows whose collection is in the allowedCollections, the extension works normally.
51
+ *
52
+ * Note: If you disable the YapDatabaseRelationshipNode protocol, then this configuration option is ignored
53
+ * because it already skips all associated processing.
54
+ *
55
+ * The default value is nil.
56
+ **/
57
+ @property (nonatomic, copy, readwrite) NSSet *allowedCollections;
58
+
59
+ @end
@@ -0,0 +1,29 @@
1
+ #import "YapDatabaseRelationshipOptions.h"
2
+ #import "YapDatabaseRelationshipPrivate.h"
3
+
4
+
5
+ @implementation YapDatabaseRelationshipOptions
6
+
7
+ @synthesize disableYapDatabaseRelationshipNodeProtocol = disableYapDatabaseRelationshipNodeProtocol;
8
+ @synthesize allowedCollections = allowedCollections;
9
+
10
+ - (id)init
11
+ {
12
+ if ((self = [super init]))
13
+ {
14
+ disableYapDatabaseRelationshipNodeProtocol = NO;
15
+ allowedCollections = nil;
16
+ }
17
+ return self;
18
+ }
19
+
20
+ - (id)copyWithZone:(NSZone *)zone
21
+ {
22
+ YapDatabaseRelationshipOptions *copy = [[YapDatabaseRelationshipOptions alloc] init];
23
+ copy->disableYapDatabaseRelationshipNodeProtocol = disableYapDatabaseRelationshipNodeProtocol;
24
+ copy->allowedCollections = allowedCollections;
25
+
26
+ return copy;
27
+ }
28
+
29
+ @end
@@ -0,0 +1,384 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ #import "YapDatabaseExtensionTransaction.h"
4
+ #import "YapDatabaseRelationshipEdge.h"
5
+
6
+ /**
7
+ * Welcome to YapDatabase!
8
+ *
9
+ * The project page has a wealth of documentation if you have any questions.
10
+ * https://github.com/yaptv/YapDatabase
11
+ *
12
+ * If you're new to the project you may want to visit the wiki.
13
+ * https://github.com/yaptv/YapDatabase/wiki
14
+ *
15
+ * The YapDatabaseRelationship extension allow you to create relationships between objects,
16
+ * and configure automatic deletion rules.
17
+ *
18
+ * For tons of information about this extension, see the wiki article:
19
+ * https://github.com/yaptv/YapDatabase/wiki/Relationships
20
+ **/
21
+
22
+ @interface YapDatabaseRelationshipTransaction : YapDatabaseExtensionTransaction
23
+
24
+ #pragma mark Node Fetch
25
+
26
+ /**
27
+ * Shortcut for fetching the source object for the given edge.
28
+ * Equivalent to:
29
+ *
30
+ * [transaction objectForKey:edge.sourceKey inCollection:edge.sourceCollection];
31
+ **/
32
+ - (id)sourceNodeForEdge:(YapDatabaseRelationshipEdge *)edge;
33
+
34
+ /**
35
+ * Shortcut for fetching the destination object for the given edge.
36
+ * Equivalent to:
37
+ *
38
+ * [transaction objectForKey:edge.destinationKey inCollection:edge.destinationCollection];
39
+ **/
40
+ - (id)destinationNodeForEdge:(YapDatabaseRelationshipEdge *)edge;
41
+
42
+ #pragma mark Enumerate
43
+
44
+ /**
45
+ * Enumerates every edge in the graph with the given name.
46
+ *
47
+ * @param name
48
+ * The name of the edge (case sensitive).
49
+ **/
50
+ - (void)enumerateEdgesWithName:(NSString *)name
51
+ usingBlock:(void (^)(YapDatabaseRelationshipEdge *edge, BOOL *stop))block;
52
+
53
+ /**
54
+ * Enumerates every edge that matches any parameters you specify.
55
+ * You can specify any combination of the following:
56
+ *
57
+ * - name only
58
+ * - sourceKey & sourceCollection only
59
+ * - name + sourceKey & sourceCollection
60
+ *
61
+ * @param name (optional)
62
+ * The name of the edge (case sensitive).
63
+ *
64
+ * @param sourceKey (optional)
65
+ * The edge.sourceKey to match.
66
+ *
67
+ * @param sourceCollection (optional)
68
+ * The edge.sourceCollection to match.
69
+ *
70
+ * If you pass a non-nil sourceKey, and sourceCollection is nil,
71
+ * then the sourceCollection is treated as the empty string, just like the rest of the YapDatabase framework.
72
+ **/
73
+ - (void)enumerateEdgesWithName:(NSString *)name
74
+ sourceKey:(NSString *)sourceKey
75
+ collection:(NSString *)sourceCollection
76
+ usingBlock:(void (^)(YapDatabaseRelationshipEdge *edge, BOOL *stop))block;
77
+
78
+ /**
79
+ * Enumerates every edge that matches any parameters you specify.
80
+ * You can specify any combination of the following:
81
+ *
82
+ * - name only
83
+ * - destinationKey & destinationCollection only
84
+ * - name + destinationKey & destinationCollection
85
+ *
86
+ * @param name (optional)
87
+ * The name of the edge (case sensitive).
88
+ *
89
+ * @param destinationKey (optional)
90
+ * The edge.destinationKey to match.
91
+ *
92
+ * @param destinationCollection (optional)
93
+ * The edge.destinationCollection to match.
94
+ *
95
+ * If you pass a non-nil destinationKey, and destinationCollection is nil,
96
+ * then the destinationCollection is treated as the empty string, just like the rest of the YapDatabase framework.
97
+ **/
98
+ - (void)enumerateEdgesWithName:(NSString *)name
99
+ destinationKey:(NSString *)destinationKey
100
+ collection:(NSString *)destinationCollection
101
+ usingBlock:(void (^)(YapDatabaseRelationshipEdge *edge, BOOL *stop))block;
102
+
103
+ /**
104
+ * Enumerates every edge that matches any parameters you specify.
105
+ * You can specify any combination of the following:
106
+ *
107
+ * - name only
108
+ * - destinationFilePath
109
+ * - name + destinationFilePath
110
+ *
111
+ * @param name (optional)
112
+ * The name of the edge (case sensitive).
113
+ *
114
+ * @param destinationFilePath (optional)
115
+ * The edge.destinationFilePath to match.
116
+ **/
117
+ - (void)enumerateEdgesWithName:(NSString *)name
118
+ destinationFilePath:(NSString *)destinationFilePath
119
+ usingBlock:(void (^)(YapDatabaseRelationshipEdge *edge, BOOL *stop))block;
120
+
121
+ /**
122
+ * Enumerates every edge that matches any parameters you specify.
123
+ * You can specify any combination of the following:
124
+ *
125
+ * - name only
126
+ * - sourceKey & sourceCollection only
127
+ * - destinationKey & destinationCollection only
128
+ * - name + sourceKey & sourceCollection
129
+ * - name + destinationKey & destinationCollection
130
+ * - name + sourceKey & sourceCollection + destinationKey & destinationCollection
131
+ *
132
+ * @param name (optional)
133
+ * The name of the edge (case sensitive).
134
+ *
135
+ * @param sourceKey (optional)
136
+ * The edge.sourceKey to match.
137
+ *
138
+ * @param sourceCollection (optional)
139
+ * The edge.sourceCollection to match.
140
+ *
141
+ * @param destinationKey (optional)
142
+ * The edge.destinationKey to match.
143
+ *
144
+ * @param destinationCollection (optional)
145
+ * The edge.destinationCollection to match.
146
+ *
147
+ * If you pass a non-nil sourceKey, and sourceCollection is nil,
148
+ * then the sourceCollection is treated as the empty string, just like the rest of the YapDatabase framework.
149
+ *
150
+ * If you pass a non-nil destinationKey, and destinationCollection is nil,
151
+ * then the destinationCollection is treated as the empty string, just like the rest of the YapDatabase framework.
152
+ **/
153
+ - (void)enumerateEdgesWithName:(NSString *)name
154
+ sourceKey:(NSString *)sourceKey
155
+ collection:(NSString *)sourceCollection
156
+ destinationKey:(NSString *)destinationKey
157
+ collection:(NSString *)destinationCollection
158
+ usingBlock:(void (^)(YapDatabaseRelationshipEdge *edge, BOOL *stop))block;
159
+
160
+ /**
161
+ * Enumerates every edge that matches any parameters you specify.
162
+ * You can specify any combination of the following:
163
+ *
164
+ * - name only
165
+ * - sourceKey & sourceCollection only
166
+ * - destinationKey & destinationCollection only
167
+ * - name + sourceKey & sourceCollection
168
+ * - name + destinationKey & destinationCollection
169
+ * - name + sourceKey & sourceCollection + destinationKey & destinationCollection
170
+ *
171
+ * @param name (optional)
172
+ * The name of the edge (case sensitive).
173
+ *
174
+ * @param sourceKey (optional)
175
+ * The edge.sourceKey to match.
176
+ *
177
+ * @param sourceCollection (optional)
178
+ * The edge.sourceCollection to match.
179
+ *
180
+ * @param destinationFilePath (optional)
181
+ * The edge.destinationFilePath to match.
182
+ *
183
+ * If you pass a non-nil sourceKey, and sourceCollection is nil,
184
+ * then the sourceCollection is treated as the empty string, just like the rest of the YapDatabase framework.
185
+ **/
186
+ - (void)enumerateEdgesWithName:(NSString *)name
187
+ sourceKey:(NSString *)sourceKey
188
+ collection:(NSString *)sourceCollection
189
+ destinationFilePath:(NSString *)destinationFilePath
190
+ usingBlock:(void (^)(YapDatabaseRelationshipEdge *edge, BOOL *stop))block;
191
+
192
+ #pragma mark Count
193
+
194
+ /**
195
+ * Returns a count of every edge in the graph with the given name.
196
+ *
197
+ * @param name
198
+ * The name of the edge (case sensitive).
199
+ **/
200
+ - (NSUInteger)edgeCountWithName:(NSString *)name;
201
+
202
+ /**
203
+ * Returns a count of every edge that matches any parameters you specify.
204
+ * You can specify any combination of the following:
205
+ *
206
+ * - name only
207
+ * - sourceKey & sourceCollection only
208
+ * - name + sourceKey & sourceCollection
209
+ *
210
+ * @param name (optional)
211
+ * The name of the edge (case sensitive).
212
+ *
213
+ * @param sourceKey (optional)
214
+ * The edge.sourceKey to match.
215
+ *
216
+ * @param sourceCollection (optional)
217
+ * The edge.sourceCollection to match.
218
+ *
219
+ * If you pass a non-nil sourceKey, and sourceCollection is nil,
220
+ * then the sourceCollection is treated as the empty string, just like the rest of the YapDatabase framework.
221
+ **/
222
+ - (NSUInteger)edgeCountWithName:(NSString *)name
223
+ sourceKey:(NSString *)sourceKey
224
+ collection:(NSString *)sourceCollection;
225
+
226
+ /**
227
+ * Returns a count of every edge that matches any parameters you specify.
228
+ * You can specify any combination of the following:
229
+ *
230
+ * - name only
231
+ * - destinationKey & destinationCollection only
232
+ * - name + destinationKey & destinationCollection
233
+ *
234
+ * @param name (optional)
235
+ * The name of the edge (case sensitive).
236
+ *
237
+ * @param destinationKey (optional)
238
+ * The edge.destinationKey to match.
239
+ *
240
+ * @param destinationCollection (optional)
241
+ * The edge.destinationCollection to match.
242
+ *
243
+ * If you pass a non-nil destinationKey, and destinationCollection is nil,
244
+ * then the destinationCollection is treated as the empty string, just like the rest of the YapDatabase framework.
245
+ **/
246
+ - (NSUInteger)edgeCountWithName:(NSString *)name
247
+ destinationKey:(NSString *)destinationKey
248
+ collection:(NSString *)destinationCollection;
249
+
250
+ /**
251
+ * Returns a count of every edge that matches any parameters you specify.
252
+ * You can specify any combination of the following:
253
+ *
254
+ * - name only
255
+ * - destinationFilePath
256
+ * - name + destinationFilePath
257
+ *
258
+ * @param name (optional)
259
+ * The name of the edge (case sensitive).
260
+ *
261
+ * @param destinationFilePath (optional)
262
+ * The edge.destinationFilePath to match.
263
+ **/
264
+ - (NSUInteger)edgeCountWithName:(NSString *)name
265
+ destinationFilePath:(NSString *)destinationFilePath;
266
+
267
+ /**
268
+ * Returns a count of every edge that matches any parameters you specify.
269
+ * You can specify any combination of the following:
270
+ *
271
+ * - name only
272
+ * - sourceKey & sourceCollection only
273
+ * - destinationKey & destinationCollection only
274
+ * - name + sourceKey & sourceCollection
275
+ * - name + destinationKey & destinationCollection
276
+ * - name + sourceKey & sourceCollection + destinationKey & destinationCollection
277
+ *
278
+ * @param name (optional)
279
+ * The name of the edge (case sensitive).
280
+ *
281
+ * @param sourceKey (optional)
282
+ * The edge.sourceKey to match.
283
+ *
284
+ * @param sourceCollection (optional)
285
+ * The edge.sourceCollection to match.
286
+ *
287
+ * @param destinationKey (optional)
288
+ * The edge.destinationKey to match.
289
+ *
290
+ * @param destinationCollection (optional)
291
+ * The edge.destinationCollection to match.
292
+ *
293
+ * If you pass a non-nil sourceKey, and sourceCollection is nil,
294
+ * then the sourceCollection is treated as the empty string, just like the rest of the YapDatabase framework.
295
+ *
296
+ * If you pass a non-nil destinationKey, and destinationCollection is nil,
297
+ * then the destinationCollection is treated as the empty string, just like the rest of the YapDatabase framework.
298
+ **/
299
+ - (NSUInteger)edgeCountWithName:(NSString *)name
300
+ sourceKey:(NSString *)sourceKey
301
+ collection:(NSString *)sourceCollection
302
+ destinationKey:(NSString *)destinationKey
303
+ collection:(NSString *)destinationCollection;
304
+
305
+ /**
306
+ * Returns a count of every edge that matches any parameters you specify.
307
+ * You can specify any combination of the following:
308
+ *
309
+ * - name only
310
+ * - sourceKey & sourceCollection only
311
+ * - destinationFilePath
312
+ * - name + sourceKey & sourceCollection
313
+ * - name + destinationFilePath
314
+ * - name + sourceKey & sourceCollection + destinationFilePath
315
+ *
316
+ * @param name (optional)
317
+ * The name of the edge (case sensitive).
318
+ *
319
+ * @param sourceKey (optional)
320
+ * The edge.sourceKey to match.
321
+ *
322
+ * @param sourceCollection (optional)
323
+ * The edge.sourceCollection to match.
324
+ *
325
+ * @param destinationFilePath (optional)
326
+ * The edge.destinationFilePath to match.
327
+ *
328
+ * If you pass a non-nil sourceKey, and sourceCollection is nil,
329
+ * then the sourceCollection is treated as the empty string, just like the rest of the YapDatabase framework.
330
+ **/
331
+ - (NSUInteger)edgeCountWithName:(NSString *)name
332
+ sourceKey:(NSString *)sourceKey
333
+ collection:(NSString *)sourceCollection
334
+ destinationFilePath:(NSString *)destinationFilePath;
335
+
336
+ @end
337
+
338
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
339
+ #pragma mark -
340
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
341
+
342
+ @interface YapDatabaseRelationshipTransaction (ReadWrite)
343
+
344
+ #pragma mark Manual Edge Management
345
+
346
+ /**
347
+ * There are 2 ways to manage edges (add/remove) using the YapDatabaseRelationship extension:
348
+ *
349
+ * - Manual edge management (via the methods below)
350
+ * - Implement the YapDatabaseRelationshipNode protocol for some of your objects
351
+ *
352
+ * For more information, see the wiki section "Edge Creation":
353
+ *
354
+ * https://github.com/yaptv/YapDatabase/wiki/Relationships#wiki-edge_creation
355
+ **/
356
+
357
+ /**
358
+ * The addEdge: method will add the manual edge (if it doesn't already exist).
359
+ * Otherwise it will replace the the existing manual edge with the same name & srcKey/collection & dstKey/collection.
360
+ **/
361
+ - (void)addEdge:(YapDatabaseRelationshipEdge *)edge;
362
+
363
+ - (void)removeEdge:(YapDatabaseRelationshipEdge *)edge;
364
+
365
+ #pragma mark Force Processing
366
+
367
+ /**
368
+ * The extension automatically processes all changes to the graph at the end of a readwrite transaction.
369
+ * This allows it to consolidate multiple changes into a single batch,
370
+ * and also minimizes the impact of cascading delete rules, especially in the case where you'll be deleting
371
+ * many of the objects manually at some later point within the transaction block.
372
+ *
373
+ * However, there may be certain use cases where it is preferable to have the extension execute its rules in advance.
374
+ * I'm struggling to come up with a really good example, so this semi-convoluted one will have to do:
375
+ *
376
+ * You have a parent object, with a bunch of child objects that have edges to the parent.
377
+ * You need to replace the parent, and for whatever reason the new parent has the same collection/key.
378
+ * So instead of doing a setObject:forKey:inCollection:, you first delete the original parent.
379
+ * At that point you can invoke this flush method, and it will properly delete any child objects.
380
+ * Then you can safely set the new parent, knowing it won't accidentally inherit any children from the old parent.
381
+ **/
382
+ - (void)flush;
383
+
384
+ @end