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,163 @@
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
+ enum {
20
+ // notify only
21
+ YDB_NotifyIfSourceDeleted = 1 << 0,
22
+ YDB_NotifyIfDestinationDeleted = 1 << 1,
23
+
24
+ // one-to-one
25
+ YDB_DeleteSourceIfDestinationDeleted = 1 << 2,
26
+ YDB_DeleteDestinationIfSourceDeleted = 1 << 3,
27
+
28
+ // one-to-many & many-to-many
29
+ YDB_DeleteSourceIfAllDestinationsDeleted = 1 << 4,
30
+ YDB_DeleteDestinationIfAllSourcesDeleted = 1 << 5,
31
+ };
32
+ typedef uint16_t YDB_NodeDeleteRules;
33
+
34
+
35
+ @interface YapDatabaseRelationshipEdge : NSObject <NSCoding, NSCopying>
36
+
37
+ /**
38
+ * Returns an edge with the given name, destination & nodeDeleteRules.
39
+ *
40
+ * This method is suitable for use with the YapDatabaseRelationshipNode protocol.
41
+ * When using this protocol, the source object is directly queried by the YapDatabaseRelationship extension.
42
+ * Thus the extension already knows what the source node is,
43
+ * and so the source node information (sourceKey & sourceCollection) doesn't need to be explicitly set on the edge.
44
+ *
45
+ * This method is not suitable for use with manual edge management.
46
+ * When manually adding an edge, you must fully specify the source node.
47
+ **/
48
+ + (instancetype)edgeWithName:(NSString *)name
49
+ destinationKey:(NSString *)destinationKey
50
+ collection:(NSString *)destinationCollection
51
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
52
+
53
+ /**
54
+ * Returns an edge with the given name, destinationFilePath & nodeDeleteRules.
55
+ *
56
+ * When using a destinationFilePath, only a subset of the nodeDeleteRules apply.
57
+ * Specifically only the following work:
58
+ * - YDB_DeleteDestinationIfSourceDeleted
59
+ * - YDB_DeleteDestinationIfAllSourcesDeleted
60
+ *
61
+ * This method is suitable for use with the YapDatabaseRelationshipNode protocol.
62
+ * When using this protocol, the source object is directly queried by the YapDatabaseRelationship extension.
63
+ * Thus the extension already knows what the source node is,
64
+ * and so the source node information (sourceKey & sourceCollection) doesn't need to be explicitly set on the edge.
65
+ *
66
+ * This method is not suitable for use with manual edge management.
67
+ * When directly adding an edge, you must fully specify the source node.
68
+ **/
69
+ + (instancetype)edgeWithName:(NSString *)name
70
+ destinationFilePath:(NSString *)destinationFilePath
71
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
72
+
73
+ /**
74
+ * Returns a fully specified edge.
75
+ *
76
+ * This method is suitable for use with manual edge management.
77
+ *
78
+ * If you're using the YapDatabaseRelationshipNode protocol, then you can use the shorter version of this method
79
+ * which doesn't specify the source node. This is because the source node is implied with the
80
+ * YapDatabaseRelationshipNode protocol, and thus doesn't need to be explicitly specified in the edge.
81
+ **/
82
+ + (instancetype)edgeWithName:(NSString *)name
83
+ sourceKey:(NSString *)sourceKey
84
+ collection:(NSString *)sourceCollection
85
+ destinationKey:(NSString *)destinationKey
86
+ collection:(NSString *)destinationCollection
87
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
88
+
89
+ /**
90
+ * Returns a fully specified edge.
91
+ *
92
+ * When using a destinationFilePath, only a subset of the nodeDeleteRules apply.
93
+ * Specifically only the following work:
94
+ * - YDB_DeleteDestinationIfSourceDeleted
95
+ * - YDB_DeleteDestinationIfAllSourcesDeleted
96
+ *
97
+ * This method is suitable for use with manual edge management.
98
+ *
99
+ * If you're using the YapDatabaseRelationshipNode protocol, then you can use the shorter version of this method
100
+ * which doesn't specify the source node. This is because the source node is implied with the
101
+ * YapDatabaseRelationshipNode protocol, and thus doesn't need to be explicitly specified in the edge.
102
+ **/
103
+ + (instancetype)edgeWithName:(NSString *)name
104
+ sourceKey:(NSString *)sourceKey
105
+ collection:(NSString *)sourceCollection
106
+ destinationFilePath:(NSString *)destinationFilePath
107
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
108
+
109
+ #pragma mark Init
110
+
111
+ /**
112
+ * For documentation @see edgeWithName:destinationKey:collection:nodeDeleteRules:
113
+ **/
114
+ - (id)initWithName:(NSString *)name
115
+ destinationKey:(NSString *)key
116
+ collection:(NSString *)collection
117
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
118
+
119
+ /**
120
+ * For documentation @see edgeWithName:destinationFilePath:nodeDeleteRules:
121
+ **/
122
+ - (id)initWithName:(NSString *)name destinationFilePath:(NSString *)destinationFilePath
123
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
124
+
125
+ /**
126
+ * For documentation @see edgeWithName:sourceKey:collection:destinationKey:collection:nodeDeleteRules:
127
+ **/
128
+ - (id)initWithName:(NSString *)name
129
+ sourceKey:(NSString *)sourceKey
130
+ collection:(NSString *)sourceCollection
131
+ destinationKey:(NSString *)destinationKey
132
+ collection:(NSString *)destinationCollection
133
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
134
+
135
+ /**
136
+ * For documentation @see edgeWithName:sourceKey:collection:destinationFilePath:nodeDeleteRules:
137
+ **/
138
+ - (id)initWithName:(NSString *)name sourceKey:(NSString *)sourceKey
139
+ collection:(NSString *)sourceCollection
140
+ destinationFilePath:(NSString *)destinationFilePath
141
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules;
142
+
143
+ #pragma mark Properties
144
+
145
+ @property (nonatomic, copy, readonly) NSString *name;
146
+
147
+ @property (nonatomic, copy, readonly) NSString *sourceKey;
148
+ @property (nonatomic, copy, readonly) NSString *sourceCollection;
149
+
150
+ @property (nonatomic, copy, readonly) NSString *destinationKey;
151
+ @property (nonatomic, copy, readonly) NSString *destinationCollection;
152
+
153
+ @property (nonatomic, copy, readonly) NSString *destinationFilePath;
154
+
155
+ @property (nonatomic, assign, readonly) YDB_NodeDeleteRules nodeDeleteRules;
156
+
157
+ /**
158
+ * NO if the edge was created via the YapDatabaseRelationshipNode protocol.
159
+ * YES if the edge was created via "manual edge management" methods.
160
+ **/
161
+ @property (nonatomic, assign, readonly) BOOL isManualEdge;
162
+
163
+ @end
@@ -0,0 +1,408 @@
1
+ #import "YapDatabaseRelationshipEdge.h"
2
+ #import "YapDatabaseRelationshipEdgePrivate.h"
3
+
4
+
5
+ @implementation YapDatabaseRelationshipEdge
6
+
7
+ @synthesize name = name;
8
+
9
+ @synthesize sourceCollection = sourceCollection;
10
+ @synthesize sourceKey = sourceKey;
11
+
12
+ @synthesize destinationCollection = destinationCollection;
13
+ @synthesize destinationKey = destinationKey;
14
+
15
+ @synthesize destinationFilePath = destinationFilePath;
16
+
17
+ @synthesize nodeDeleteRules = nodeDeleteRules;
18
+ @synthesize isManualEdge = isManualEdge;
19
+
20
+ #pragma mark Class Init
21
+
22
+ + (instancetype)edgeWithName:(NSString *)name
23
+ destinationKey:(NSString *)destinationKey
24
+ collection:(NSString *)destinationCollection
25
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
26
+ {
27
+ return [[YapDatabaseRelationshipEdge alloc] initWithName:name
28
+ destinationKey:destinationKey
29
+ collection:destinationCollection
30
+ nodeDeleteRules:rules];
31
+ }
32
+
33
+ + (instancetype)edgeWithName:(NSString *)name
34
+ destinationFilePath:(NSString *)destinationFilePath
35
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
36
+ {
37
+ return [[YapDatabaseRelationshipEdge alloc] initWithName:name
38
+ destinationFilePath:destinationFilePath
39
+ nodeDeleteRules:rules];
40
+ }
41
+
42
+ + (instancetype)edgeWithName:(NSString *)name
43
+ sourceKey:(NSString *)sourceKey
44
+ collection:(NSString *)sourceCollection
45
+ destinationKey:(NSString *)destinationKey
46
+ collection:(NSString *)destinationCollection
47
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
48
+ {
49
+ return [[YapDatabaseRelationshipEdge alloc] initWithName:name
50
+ sourceKey:sourceKey
51
+ collection:sourceCollection
52
+ destinationKey:destinationKey
53
+ collection:destinationCollection
54
+ nodeDeleteRules:rules];
55
+ }
56
+
57
+ + (instancetype)edgeWithName:(NSString *)name
58
+ sourceKey:(NSString *)sourceKey
59
+ collection:(NSString *)sourceCollection
60
+ destinationFilePath:(NSString *)destinationFilePath
61
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
62
+ {
63
+ return [[YapDatabaseRelationshipEdge alloc] initWithName:name
64
+ sourceKey:sourceKey
65
+ collection:sourceCollection
66
+ destinationFilePath:destinationFilePath
67
+ nodeDeleteRules:rules];
68
+ }
69
+
70
+ #pragma mark Init
71
+
72
+ /**
73
+ * Public init method.
74
+ * Suitable for use with YapDatabaseRelationshipNode protocol.
75
+ **/
76
+ - (id)initWithName:(NSString *)inName
77
+ destinationKey:(NSString *)dstKey
78
+ collection:(NSString *)dstCollection
79
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
80
+ {
81
+ if (inName == nil) return nil; // Edge requires name
82
+ if (dstKey == nil) return nil; // Edge requires destination
83
+
84
+ if ((self = [super init]))
85
+ {
86
+ name = [inName copy];
87
+
88
+ destinationKey = [dstKey copy];
89
+ destinationCollection = dstCollection ? [dstCollection copy] : @"";
90
+
91
+ nodeDeleteRules = rules;
92
+ isManualEdge = NO;
93
+ }
94
+ return self;
95
+ }
96
+
97
+ /**
98
+ * Public init method.
99
+ * Suitable for use with YapDatabaseRelationshipNode protocol.
100
+ **/
101
+ - (id)initWithName:(NSString *)inName destinationFilePath:(NSString *)dstFilePath
102
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
103
+ {
104
+ if (inName == nil) return nil; // Edge requires name
105
+ if (dstFilePath == nil) return nil; // Edge requires destination
106
+
107
+ if ((self = [super init]))
108
+ {
109
+ name = [inName copy];
110
+
111
+ destinationFilePath = [dstFilePath copy];
112
+
113
+ nodeDeleteRules = rules;
114
+ isManualEdge = NO;
115
+
116
+ flags = YDB_FlagsHasDestinationRowid; // no need for destinationRowid lookup
117
+ }
118
+ return self;
119
+ }
120
+
121
+ /**
122
+ * Public init method.
123
+ * Suitable for use with manual edge management.
124
+ **/
125
+ - (id)initWithName:(NSString *)inName
126
+ sourceKey:(NSString *)srcKey
127
+ collection:(NSString *)srcCollection
128
+ destinationKey:(NSString *)dstKey
129
+ collection:(NSString *)dstCollection
130
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
131
+ {
132
+ if (inName == nil) return nil; // Edge requires name
133
+ if (srcKey == nil) return nil; // Edge requires source
134
+ if (dstKey == nil) return nil; // Edge requires destination
135
+
136
+ if ((self = [super init]))
137
+ {
138
+ name = [inName copy];
139
+
140
+ sourceKey = [srcKey copy];
141
+ sourceCollection = srcCollection ? [srcCollection copy] : @"";
142
+
143
+ destinationKey = [dstKey copy];
144
+ destinationCollection = dstCollection ? [dstCollection copy] : @"";
145
+
146
+ nodeDeleteRules = rules;
147
+ isManualEdge = YES;
148
+ }
149
+ return self;
150
+ }
151
+
152
+ - (id)initWithName:(NSString *)inName sourceKey:(NSString *)srcKey
153
+ collection:(NSString *)srcCollection
154
+ destinationFilePath:(NSString *)dstFilePath
155
+ nodeDeleteRules:(YDB_NodeDeleteRules)rules
156
+ {
157
+ if (inName == nil) return nil; // Edge requires name
158
+ if (srcKey == nil) return nil; // Edge requires source
159
+ if (dstFilePath == nil) return nil; // Edge requires destination
160
+
161
+ if ((self = [super init]))
162
+ {
163
+ name = [inName copy];
164
+
165
+ sourceKey = [srcKey copy];
166
+ sourceCollection = srcCollection ? [srcCollection copy] : @"";
167
+
168
+ destinationFilePath = [dstFilePath copy];
169
+
170
+ nodeDeleteRules = rules;
171
+ isManualEdge = YES;
172
+
173
+ flags = YDB_FlagsHasDestinationRowid; // no need for destinationRowid lookup
174
+ }
175
+ return self;
176
+ }
177
+
178
+ /**
179
+ * Internal init method.
180
+ * This method is used when reading an edge from a row in the database.
181
+ **/
182
+ - (id)initWithRowid:(int64_t)rowid
183
+ name:(NSString *)inName
184
+ src:(int64_t)src
185
+ dst:(int64_t)dst
186
+ dstFilePath:(NSString *)dstFilePath
187
+ rules:(int)rules
188
+ manual:(BOOL)manual
189
+ {
190
+ if ((self = [super init]))
191
+ {
192
+ name = [inName copy];
193
+ destinationFilePath = [dstFilePath copy];
194
+ nodeDeleteRules = rules;
195
+ isManualEdge = manual;
196
+
197
+ edgeRowid = rowid;
198
+ sourceRowid = src;
199
+ destinationRowid = dst;
200
+
201
+ flags = YDB_FlagsHasSourceRowid | YDB_FlagsHasDestinationRowid | YDB_FlagsHasEdgeRowid;
202
+ }
203
+ return self;
204
+ }
205
+
206
+ #pragma mark NSCoding
207
+
208
+ - (id)initWithCoder:(NSCoder *)decoder
209
+ {
210
+ if ((self = [super init]))
211
+ {
212
+ name = [decoder decodeObjectForKey:@"name"];
213
+
214
+ sourceKey = [decoder decodeObjectForKey:@"sourceKey"];
215
+ sourceCollection = [decoder decodeObjectForKey:@"sourceCollection"];
216
+
217
+ destinationKey = [decoder decodeObjectForKey:@"destinationKey"];
218
+ destinationCollection = [decoder decodeObjectForKey:@"destinationCollection"];
219
+
220
+ destinationFilePath = [decoder decodeObjectForKey:@"destinationFilePath"];
221
+
222
+ nodeDeleteRules = [decoder decodeIntForKey:@"nodeDeleteRules"];
223
+ isManualEdge = [decoder decodeBoolForKey:@"isManualEdge"];
224
+
225
+ if (destinationFilePath)
226
+ flags = YDB_FlagsHasDestinationRowid;
227
+ else
228
+ flags = YDB_FlagsNone;
229
+ }
230
+ return self;
231
+ }
232
+
233
+ - (void)encodeWithCoder:(NSCoder *)coder
234
+ {
235
+ [coder encodeObject:name forKey:@"name"];
236
+
237
+ [coder encodeObject:sourceKey forKey:@"sourceKey"];
238
+ [coder encodeObject:sourceCollection forKey:@"sourceCollection"];
239
+
240
+ [coder encodeObject:destinationKey forKey:@"destinationKey"];
241
+ [coder encodeObject:destinationCollection forKey:@"destinationCollection"];
242
+
243
+ [coder encodeObject:destinationFilePath forKey:@"destinationFilePath"];
244
+
245
+ [coder encodeInt:nodeDeleteRules forKey:@"nodeDeleteRules"];
246
+ [coder encodeBool:isManualEdge forKey:@"isManualEdge"];
247
+ }
248
+
249
+ #pragma mark NSCopying
250
+
251
+ - (id)copyWithZone:(NSZone *)zone
252
+ {
253
+ YapDatabaseRelationshipEdge *copy = [[YapDatabaseRelationshipEdge alloc] init];
254
+
255
+ copy->name = name;
256
+ copy->sourceKey = sourceKey;
257
+ copy->sourceCollection = sourceCollection;
258
+ copy->destinationKey = destinationKey;
259
+ copy->destinationCollection = destinationCollection;
260
+ copy->destinationFilePath = destinationFilePath;
261
+ copy->nodeDeleteRules = nodeDeleteRules;
262
+ copy->isManualEdge = isManualEdge;
263
+
264
+ copy->edgeRowid = edgeRowid;
265
+ copy->sourceRowid = sourceRowid;
266
+ copy->destinationRowid = destinationRowid;
267
+
268
+ copy->edgeAction = YDB_EdgeActionNone; // Return a clean copy
269
+ copy->flags = YDB_FlagsNone; // Return a clean copy
270
+
271
+ // Set appropriate flags
272
+
273
+ if ((flags & YDB_FlagsHasSourceRowid))
274
+ copy->flags |= YDB_FlagsHasSourceRowid;
275
+
276
+ if ((flags & YDB_FlagsHasDestinationRowid) || destinationFilePath)
277
+ copy->flags |= YDB_FlagsHasDestinationRowid;
278
+
279
+ if ((flags & YDB_FlagsHasEdgeRowid))
280
+ copy->flags |= YDB_FlagsHasEdgeRowid;
281
+
282
+ return copy;
283
+ }
284
+
285
+ - (id)copyWithSourceKey:(NSString *)newSrcKey collection:(NSString *)newSrcCollection rowid:(int64_t)newSrcRowid
286
+ {
287
+ YapDatabaseRelationshipEdge *copy = [[YapDatabaseRelationshipEdge alloc] init];
288
+
289
+ copy->name = name;
290
+ copy->sourceKey = [newSrcKey copy];
291
+ copy->sourceCollection = [newSrcCollection copy];
292
+ copy->destinationKey = destinationKey;
293
+ copy->destinationCollection = destinationCollection;
294
+ copy->destinationFilePath = destinationFilePath;
295
+ copy->nodeDeleteRules = nodeDeleteRules;
296
+ copy->isManualEdge = NO; // Force proper value
297
+
298
+ copy->edgeRowid = edgeRowid;
299
+ copy->sourceRowid = newSrcRowid;
300
+ copy->destinationRowid = destinationRowid;
301
+
302
+ copy->edgeAction = YDB_EdgeActionNone; // Return a clean copy
303
+ copy->flags = YDB_FlagsNone; // Return a clean copy
304
+
305
+ // Set appropriate flags
306
+
307
+ copy->flags |= YDB_FlagsHasSourceRowid;
308
+
309
+ if ((flags & YDB_FlagsHasDestinationRowid) || destinationFilePath)
310
+ copy->flags |= YDB_FlagsHasDestinationRowid;
311
+
312
+ if ((flags & YDB_FlagsHasEdgeRowid))
313
+ copy->flags |= YDB_FlagsHasEdgeRowid;
314
+
315
+ return copy;
316
+ }
317
+
318
+ #pragma mark Comparison
319
+
320
+ /**
321
+ * Compares two manual edges to see if they represent the same relationship.
322
+ * That is, if both edges are manual edges, and the following are equal:
323
+ *
324
+ * - name
325
+ * - sourceKey / sourceCollection
326
+ * - destinationKey / destinationCollection
327
+ * - destinationFilePath
328
+ *
329
+ * The nodeDeleteRules do NOT need to match.
330
+ **/
331
+ - (BOOL)matchesManualEdge:(YapDatabaseRelationshipEdge *)edge
332
+ {
333
+ if (edge == nil) return NO;
334
+
335
+ if (!isManualEdge) return NO;
336
+ if (!edge->isManualEdge) return NO;
337
+
338
+ if (![name isEqualToString:edge->name]) return NO;
339
+
340
+ if (![sourceKey isEqualToString:edge->sourceKey]) return NO;
341
+ if (![sourceCollection isEqualToString:edge->sourceCollection]) return NO;
342
+
343
+ if (destinationFilePath)
344
+ {
345
+ if (![destinationFilePath isEqualToString:edge->destinationFilePath]) return NO;
346
+ }
347
+ else
348
+ {
349
+ if (![destinationKey isEqualToString:edge->destinationKey]) return NO;
350
+ if (![destinationCollection isEqualToString:edge->destinationCollection]) return NO;
351
+ }
352
+
353
+ return YES;
354
+ }
355
+
356
+ #pragma mark Description
357
+
358
+ - (NSString *)description
359
+ {
360
+ NSMutableString *rules = [NSMutableString stringWithCapacity:64];
361
+
362
+ if (nodeDeleteRules & YDB_NotifyIfSourceDeleted)
363
+ [rules appendString:@"NotifyIfSourceDeleted, "];
364
+
365
+ if (nodeDeleteRules & YDB_NotifyIfDestinationDeleted)
366
+ [rules appendString:@"NotifyIfDestinationDeleted, "];
367
+
368
+ if (nodeDeleteRules & YDB_DeleteSourceIfDestinationDeleted)
369
+ [rules appendString:@"DeleteSourceIfDestinationDeleted, "];
370
+
371
+ if (nodeDeleteRules & YDB_DeleteDestinationIfSourceDeleted)
372
+ [rules appendString:@"DeleteDestinationIfSourceDeleted, "];
373
+
374
+ if (nodeDeleteRules & YDB_DeleteSourceIfAllDestinationsDeleted)
375
+ [rules appendString:@"DeleteSourceIfAllDestinationsDeleted, "];
376
+
377
+ if (nodeDeleteRules & YDB_DeleteDestinationIfAllSourcesDeleted)
378
+ [rules appendString:@"DeleteDestinationIfAllSourcesDeleted, "];
379
+
380
+ if ([rules length] > 0)
381
+ [rules deleteCharactersInRange:NSMakeRange([rules length] - 2, 2)];
382
+
383
+ NSMutableString *description = [NSMutableString stringWithCapacity:128];
384
+
385
+ [description appendFormat:@"<YapDatabaseRelationshipEdge[%p]", self];
386
+ [description appendFormat:@" name(%@)", name];
387
+
388
+ if (sourceKey)
389
+ [description appendFormat:@" src(%@, %@)", sourceKey, (sourceCollection ?: @"")];
390
+
391
+ if (destinationKey)
392
+ [description appendFormat:@" dst(%@, %@)", destinationKey, (destinationCollection ?: @"")];
393
+ else
394
+ [description appendFormat:@" dstFilePath(%@)", destinationFilePath];
395
+
396
+ [description appendFormat:@" rules(%@)", rules];
397
+
398
+ if (isManualEdge)
399
+ {
400
+ [description appendString:@" manual"];
401
+ }
402
+
403
+ [description appendString:@">"];
404
+
405
+ return description;
406
+ }
407
+
408
+ @end