Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Added some models

  • Loading branch information...
commit 72d8219c9b772999647ef1564c815434e4ee5dd6 1 parent 3b06f09
Amit Kumar authored
Showing with 4,239 additions and 3,634 deletions.
  1. +4 −0 Gemfile.lock
  2. +29 −0 app/app_delegate.rb
  3. +7 −1 app/controllers/curve_plot_controller.rb
  4. +5 −0 app/core_ext/ui_color.rb
  5. +20 −2 app/models/brand.rb
  6. +24 −0 app/models/curve.rb
  7. +4 −2 app/models/lever.rb
  8. +22 −19 lib/plot/curve_plot.rb
  9. +3 −0  vendor/Podfile.lock
  10. +312 −0 vendor/Pods/.build/Pods/NSFNanoBag.h
  11. +37 −0 vendor/Pods/.build/Pods/NSFNanoBag_Private.h
  12. +542 −0 vendor/Pods/.build/Pods/NSFNanoEngine.h
  13. +69 −0 vendor/Pods/.build/Pods/NSFNanoEngine_Private.h
  14. +125 −0 vendor/Pods/.build/Pods/NSFNanoExpression.h
  15. +35 −0 vendor/Pods/.build/Pods/NSFNanoExpression_Private.h
  16. +323 −0 vendor/Pods/.build/Pods/NSFNanoGlobals.h
  17. +99 −0 vendor/Pods/.build/Pods/NSFNanoGlobals_Private.h
  18. +323 −0 vendor/Pods/.build/Pods/NSFNanoObject.h
  19. +119 −0 vendor/Pods/.build/Pods/NSFNanoObjectProtocol.h
  20. +35 −0 vendor/Pods/.build/Pods/NSFNanoObject_Private.h
  21. +123 −0 vendor/Pods/.build/Pods/NSFNanoPredicate.h
  22. +35 −0 vendor/Pods/.build/Pods/NSFNanoPredicate_Private.h
  23. +137 −0 vendor/Pods/.build/Pods/NSFNanoResult.h
  24. +43 −0 vendor/Pods/.build/Pods/NSFNanoResult_Private.h
  25. +383 −0 vendor/Pods/.build/Pods/NSFNanoSearch.h
  26. +48 −0 vendor/Pods/.build/Pods/NSFNanoSearch_Private.h
  27. +124 −0 vendor/Pods/.build/Pods/NSFNanoSortDescriptor.h
  28. +475 −0 vendor/Pods/.build/Pods/NSFNanoStore.h
  29. +57 −0 vendor/Pods/.build/Pods/NSFNanoStore_Private.h
  30. +463 −0 vendor/Pods/.build/Pods/NanoStore.h
  31. +37 −0 vendor/Pods/.build/Pods/NanoStore_Private.h
  32. BIN  vendor/Pods/.build/libPods.a
  33. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTAnnotation.h
  34. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTAnnotationHostLayer.h
  35. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTAxis.h
  36. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTAxisLabel.h
  37. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTAxisLabelGroup.h
  38. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTAxisSet.h
  39. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTAxisTitle.h
  40. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTBarPlot.h
  41. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTBorderedLayer.h
  42. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTColor.h
  43. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTColorSpace.h
  44. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTConstraints.h
  45. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTDefinitions.h
  46. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTDerivedXYGraph.h
  47. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTExceptions.h
  48. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTFill.h
  49. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTGradient.h
  50. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTGraph.h
  51. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTGraphHostingView.h
  52. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTGridLineGroup.h
  53. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTGridLines.h
  54. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTImage.h
  55. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTLayer.h
  56. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTLayerAnnotation.h
  57. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTLegend.h
  58. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTLegendEntry.h
  59. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTLimitBand.h
  60. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTLineCap.h
  61. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTLineStyle.h
  62. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTMutableLineStyle.h
  63. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTMutableNumericData+TypeConversion.h
  64. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTMutableNumericData.h
  65. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTMutablePlotRange.h
  66. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTMutableShadow.h
  67. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTMutableTextStyle.h
  68. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTNumericData+TypeConversion.h
  69. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTNumericData.h
  70. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTNumericDataType.h
  71. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPathExtensions.h
  72. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPieChart.h
  73. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlatformSpecificCategories.h
  74. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlatformSpecificDefines.h
  75. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlatformSpecificFunctions.h
  76. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlot.h
  77. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlotArea.h
  78. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlotAreaFrame.h
  79. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlotGroup.h
  80. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlotRange.h
  81. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlotSpace.h
  82. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlotSpaceAnnotation.h
  83. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTPlotSymbol.h
  84. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTRangePlot.h
  85. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTResponder.h
  86. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTScatterPlot.h
  87. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTShadow.h
  88. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTTextLayer.h
  89. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTTextStyle.h
  90. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTTextStylePlatformSpecific.h
  91. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTTheme.h
  92. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTTimeFormatter.h
  93. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTTradingRangePlot.h
  94. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTUtilities.h
  95. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTXYAxis.h
  96. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTXYAxisSet.h
  97. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTXYGraph.h
  98. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CPTXYPlotSpace.h
  99. +1 −0  vendor/Pods/BuildHeaders/CorePlot/CorePlot-CocoaTouch.h
  100. +1 −0  vendor/Pods/BuildHeaders/CorePlot/NSCoderExtensions.h
  101. +1 −0  vendor/Pods/BuildHeaders/CorePlot/NSDecimalNumberExtensions.h
  102. +1 −0  vendor/Pods/BuildHeaders/CorePlot/NSNumberExtensions.h
  103. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTConstraintsFixed.h
  104. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTConstraintsRelative.h
  105. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTDarkGradientTheme.h
  106. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTFillColor.h
  107. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTFillGradient.h
  108. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTFillImage.h
  109. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTPlainBlackTheme.h
  110. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTPlainWhiteTheme.h
  111. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTSlateTheme.h
  112. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTStocksTheme.h
  113. +1 −0  vendor/Pods/BuildHeaders/CorePlot/_CPTXYTheme.h
  114. +1 −0  vendor/Pods/BuildHeaders/CorePlot/mainpage.h
  115. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoBag.h
  116. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoBag_Private.h
  117. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoEngine.h
  118. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoEngine_Private.h
  119. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoExpression.h
  120. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoExpression_Private.h
  121. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoGlobals.h
  122. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoGlobals_Private.h
  123. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoObject.h
  124. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoObjectProtocol.h
  125. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoObject_Private.h
  126. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoPredicate.h
  127. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoPredicate_Private.h
  128. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoResult.h
  129. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoResult_Private.h
  130. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoSearch.h
  131. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoSearch_Private.h
  132. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoSortDescriptor.h
  133. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoStore.h
  134. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NSFNanoStore_Private.h
  135. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NanoStore.h
  136. +1 −0  vendor/Pods/BuildHeaders/NanoStore/NanoStore_Private.h
  137. +0 −34 vendor/Pods/Headers/CorePlot/CPTAnnotation.h
  138. +1 −0  vendor/Pods/Headers/CorePlot/CPTAnnotation.h
  139. +0 −19 vendor/Pods/Headers/CorePlot/CPTAnnotationHostLayer.h
  140. +1 −0  vendor/Pods/Headers/CorePlot/CPTAnnotationHostLayer.h
  141. +0 −265 vendor/Pods/Headers/CorePlot/CPTAxis.h
  142. +1 −0  vendor/Pods/Headers/CorePlot/CPTAxis.h
  143. +0 −34 vendor/Pods/Headers/CorePlot/CPTAxisLabel.h
  144. +1 −0  vendor/Pods/Headers/CorePlot/CPTAxisLabel.h
  145. +0 −7 vendor/Pods/Headers/CorePlot/CPTAxisLabelGroup.h
  146. +1 −0  vendor/Pods/Headers/CorePlot/CPTAxisLabelGroup.h
  147. +0 −6 vendor/Pods/Headers/CorePlot/CPTAxisLabelTests.h
  148. +0 −20 vendor/Pods/Headers/CorePlot/CPTAxisSet.h
  149. +1 −0  vendor/Pods/Headers/CorePlot/CPTAxisSet.h
  150. +0 −7 vendor/Pods/Headers/CorePlot/CPTAxisTitle.h
  151. +1 −0  vendor/Pods/Headers/CorePlot/CPTAxisTitle.h
  152. +0 −134 vendor/Pods/Headers/CorePlot/CPTBarPlot.h
  153. +1 −0  vendor/Pods/Headers/CorePlot/CPTBarPlot.h
  154. +0 −16 vendor/Pods/Headers/CorePlot/CPTBorderedLayer.h
  155. +1 −0  vendor/Pods/Headers/CorePlot/CPTBorderedLayer.h
  156. +0 −42 vendor/Pods/Headers/CorePlot/CPTColor.h
  157. +1 −0  vendor/Pods/Headers/CorePlot/CPTColor.h
  158. +0 −21 vendor/Pods/Headers/CorePlot/CPTColorSpace.h
  159. +1 −0  vendor/Pods/Headers/CorePlot/CPTColorSpace.h
  160. +0 −6 vendor/Pods/Headers/CorePlot/CPTColorSpaceTests.h
  161. +0 −6 vendor/Pods/Headers/CorePlot/CPTColorTests.h
  162. +0 −38 vendor/Pods/Headers/CorePlot/CPTConstraints.h
  163. +1 −0  vendor/Pods/Headers/CorePlot/CPTConstraints.h
  164. +0 −6 vendor/Pods/Headers/CorePlot/CPTDarkGradientThemeTests.h
  165. +0 −28 vendor/Pods/Headers/CorePlot/CPTDataSourceTestCase.h
  166. +0 −136 vendor/Pods/Headers/CorePlot/CPTDefinitions.h
  167. +1 −0  vendor/Pods/Headers/CorePlot/CPTDefinitions.h
  168. +0 −6 vendor/Pods/Headers/CorePlot/CPTDerivedXYGraph.h
  169. +1 −0  vendor/Pods/Headers/CorePlot/CPTDerivedXYGraph.h
  170. +0 −10 vendor/Pods/Headers/CorePlot/CPTExceptions.h
  171. +1 −0  vendor/Pods/Headers/CorePlot/CPTExceptions.h
  172. +0 −38 vendor/Pods/Headers/CorePlot/CPTFill.h
  173. +1 −0  vendor/Pods/Headers/CorePlot/CPTFill.h
  174. +0 −6 vendor/Pods/Headers/CorePlot/CPTFillTests.h
  175. +0 −100 vendor/Pods/Headers/CorePlot/CPTGradient.h
  176. +1 −0  vendor/Pods/Headers/CorePlot/CPTGradient.h
  177. +0 −6 vendor/Pods/Headers/CorePlot/CPTGradientTests.h
  178. +0 −136 vendor/Pods/Headers/CorePlot/CPTGraph.h
  179. +1 −0  vendor/Pods/Headers/CorePlot/CPTGraph.h
  180. +1 −0  vendor/Pods/Headers/CorePlot/CPTGraphHostingView.h
  181. +0 −14 vendor/Pods/Headers/CorePlot/CPTGridLineGroup.h
  182. +1 −0  vendor/Pods/Headers/CorePlot/CPTGridLineGroup.h
  183. +0 −15 vendor/Pods/Headers/CorePlot/CPTGridLines.h
  184. +1 −0  vendor/Pods/Headers/CorePlot/CPTGridLines.h
  185. +0 −36 vendor/Pods/Headers/CorePlot/CPTImage.h
  186. +1 −0  vendor/Pods/Headers/CorePlot/CPTImage.h
  187. +0 −6 vendor/Pods/Headers/CorePlot/CPTImageTests.h
  188. +0 −109 vendor/Pods/Headers/CorePlot/CPTLayer.h
  189. +1 −0  vendor/Pods/Headers/CorePlot/CPTLayer.h
  190. +0 −20 vendor/Pods/Headers/CorePlot/CPTLayerAnnotation.h
  191. +1 −0  vendor/Pods/Headers/CorePlot/CPTLayerAnnotation.h
  192. +0 −135 vendor/Pods/Headers/CorePlot/CPTLegend.h
  193. +1 −0  vendor/Pods/Headers/CorePlot/CPTLegend.h
  194. +0 −40 vendor/Pods/Headers/CorePlot/CPTLegendEntry.h
  195. +1 −0  vendor/Pods/Headers/CorePlot/CPTLegendEntry.h
  196. +0 −25 vendor/Pods/Headers/CorePlot/CPTLimitBand.h
  197. +1 −0  vendor/Pods/Headers/CorePlot/CPTLimitBand.h
  198. +0 −69 vendor/Pods/Headers/CorePlot/CPTLineCap.h
  199. +1 −0  vendor/Pods/Headers/CorePlot/CPTLineCap.h
  200. +0 −37 vendor/Pods/Headers/CorePlot/CPTLineStyle.h
  201. +1 −0  vendor/Pods/Headers/CorePlot/CPTLineStyle.h
  202. +0 −6 vendor/Pods/Headers/CorePlot/CPTLineStyleTests.h
  203. +0 −17 vendor/Pods/Headers/CorePlot/CPTMutableLineStyle.h
  204. +1 −0  vendor/Pods/Headers/CorePlot/CPTMutableLineStyle.h
  205. +0 −23 vendor/Pods/Headers/CorePlot/CPTMutableNumericData+TypeConversion.h
  206. +1 −0  vendor/Pods/Headers/CorePlot/CPTMutableNumericData+TypeConversion.h
  207. +0 −29 vendor/Pods/Headers/CorePlot/CPTMutableNumericData.h
  208. +1 −0  vendor/Pods/Headers/CorePlot/CPTMutableNumericData.h
  209. +0 −6 vendor/Pods/Headers/CorePlot/CPTMutableNumericDataTests.h
  210. +0 −6 vendor/Pods/Headers/CorePlot/CPTMutableNumericDataTypeConversionTests.h
  211. +0 −29 vendor/Pods/Headers/CorePlot/CPTMutablePlotRange.h
  212. +1 −0  vendor/Pods/Headers/CorePlot/CPTMutablePlotRange.h
  213. +0 −14 vendor/Pods/Headers/CorePlot/CPTMutableShadow.h
  214. +1 −0  vendor/Pods/Headers/CorePlot/CPTMutableShadow.h
  215. +0 −14 vendor/Pods/Headers/CorePlot/CPTMutableTextStyle.h
  216. +1 −0  vendor/Pods/Headers/CorePlot/CPTMutableTextStyle.h
  217. +0 −23 vendor/Pods/Headers/CorePlot/CPTNumericData+TypeConversion.h
  218. +1 −0  vendor/Pods/Headers/CorePlot/CPTNumericData+TypeConversion.h
  219. +0 −56 vendor/Pods/Headers/CorePlot/CPTNumericData.h
  220. +1 −0  vendor/Pods/Headers/CorePlot/CPTNumericData.h
  221. +0 −6 vendor/Pods/Headers/CorePlot/CPTNumericDataTests.h
  222. +0 −44 vendor/Pods/Headers/CorePlot/CPTNumericDataType.h
  223. +1 −0  vendor/Pods/Headers/CorePlot/CPTNumericDataType.h
  224. +0 −6 vendor/Pods/Headers/CorePlot/CPTNumericDataTypeConversionPerformanceTests.h
  225. +0 −6 vendor/Pods/Headers/CorePlot/CPTNumericDataTypeConversionTests.h
  226. +0 −15 vendor/Pods/Headers/CorePlot/CPTPathExtensions.h
  227. +1 −0  vendor/Pods/Headers/CorePlot/CPTPathExtensions.h
  228. +0 −132 vendor/Pods/Headers/CorePlot/CPTPieChart.h
  229. +1 −0  vendor/Pods/Headers/CorePlot/CPTPieChart.h
  230. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlatformSpecificCategories.h
  231. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlatformSpecificDefines.h
  232. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlatformSpecificFunctions.h
  233. +0 −249 vendor/Pods/Headers/CorePlot/CPTPlot.h
  234. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlot.h
  235. +0 −56 vendor/Pods/Headers/CorePlot/CPTPlotArea.h
  236. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlotArea.h
  237. +0 −16 vendor/Pods/Headers/CorePlot/CPTPlotAreaFrame.h
  238. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlotAreaFrame.h
  239. +0 −14 vendor/Pods/Headers/CorePlot/CPTPlotGroup.h
  240. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlotGroup.h
  241. +0 −65 vendor/Pods/Headers/CorePlot/CPTPlotRange.h
  242. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlotRange.h
  243. +0 −11 vendor/Pods/Headers/CorePlot/CPTPlotRangeTests.h
  244. +0 −166 vendor/Pods/Headers/CorePlot/CPTPlotSpace.h
  245. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlotSpace.h
  246. +0 −16 vendor/Pods/Headers/CorePlot/CPTPlotSpaceAnnotation.h
  247. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlotSpaceAnnotation.h
  248. +0 −11 vendor/Pods/Headers/CorePlot/CPTPlotSpaceTests.h
  249. +0 −74 vendor/Pods/Headers/CorePlot/CPTPlotSymbol.h
  250. +1 −0  vendor/Pods/Headers/CorePlot/CPTPlotSymbol.h
  251. +0 −50 vendor/Pods/Headers/CorePlot/CPTRangePlot.h
  252. +1 −0  vendor/Pods/Headers/CorePlot/CPTRangePlot.h
  253. +0 −53 vendor/Pods/Headers/CorePlot/CPTResponder.h
  254. +1 −0  vendor/Pods/Headers/CorePlot/CPTResponder.h
  255. +0 −130 vendor/Pods/Headers/CorePlot/CPTScatterPlot.h
  256. +1 −0  vendor/Pods/Headers/CorePlot/CPTScatterPlot.h
  257. +0 −12 vendor/Pods/Headers/CorePlot/CPTScatterPlotTests.h
  258. +0 −27 vendor/Pods/Headers/CorePlot/CPTShadow.h
  259. +1 −0  vendor/Pods/Headers/CorePlot/CPTShadow.h
  260. +0 −6 vendor/Pods/Headers/CorePlot/CPTTestCase.h
  261. +0 −29 vendor/Pods/Headers/CorePlot/CPTTextLayer.h
  262. +1 −0  vendor/Pods/Headers/CorePlot/CPTTextLayer.h
  263. +0 −53 vendor/Pods/Headers/CorePlot/CPTTextStyle.h
  264. +1 −0  vendor/Pods/Headers/CorePlot/CPTTextStyle.h
  265. +1 −0  vendor/Pods/Headers/CorePlot/CPTTextStylePlatformSpecific.h
  266. +0 −6 vendor/Pods/Headers/CorePlot/CPTTextStyleTests.h
  267. +0 −53 vendor/Pods/Headers/CorePlot/CPTTheme.h
  268. +1 −0  vendor/Pods/Headers/CorePlot/CPTTheme.h
  269. +0 −6 vendor/Pods/Headers/CorePlot/CPTThemeTests.h
  270. +0 −19 vendor/Pods/Headers/CorePlot/CPTTimeFormatter.h
  271. +1 −0  vendor/Pods/Headers/CorePlot/CPTTimeFormatter.h
  272. +0 −6 vendor/Pods/Headers/CorePlot/CPTTimeFormatterTests.h
  273. +0 −70 vendor/Pods/Headers/CorePlot/CPTTradingRangePlot.h
  274. +1 −0  vendor/Pods/Headers/CorePlot/CPTTradingRangePlot.h
  275. +0 −121 vendor/Pods/Headers/CorePlot/CPTUtilities.h
  276. +1 −0  vendor/Pods/Headers/CorePlot/CPTUtilities.h
  277. +0 −6 vendor/Pods/Headers/CorePlot/CPTUtilitiesTests.h
  278. +0 −18 vendor/Pods/Headers/CorePlot/CPTXYAxis.h
  279. +1 −0  vendor/Pods/Headers/CorePlot/CPTXYAxis.h
  280. +0 −12 vendor/Pods/Headers/CorePlot/CPTXYAxisSet.h
  281. +1 −0  vendor/Pods/Headers/CorePlot/CPTXYAxisSet.h
  282. +0 −16 vendor/Pods/Headers/CorePlot/CPTXYGraph.h
  283. +1 −0  vendor/Pods/Headers/CorePlot/CPTXYGraph.h
  284. +0 −25 vendor/Pods/Headers/CorePlot/CPTXYPlotSpace.h
  285. +1 −0  vendor/Pods/Headers/CorePlot/CPTXYPlotSpace.h
  286. +0 −11 vendor/Pods/Headers/CorePlot/CPTXYPlotSpaceTests.h
  287. +1 −0  vendor/Pods/Headers/CorePlot/CorePlot-CocoaTouch.h
  288. +0 −37 vendor/Pods/Headers/CorePlot/NSCoderExtensions.h
  289. +1 −0  vendor/Pods/Headers/CorePlot/NSCoderExtensions.h
  290. +0 −9 vendor/Pods/Headers/CorePlot/NSDecimalNumberExtensions.h
  291. +1 −0  vendor/Pods/Headers/CorePlot/NSDecimalNumberExtensions.h
  292. +0 −16 vendor/Pods/Headers/CorePlot/NSNumberExtensions.h
  293. +1 −0  vendor/Pods/Headers/CorePlot/NSNumberExtensions.h
  294. +0 −26 vendor/Pods/Headers/CorePlot/_CPTConstraintsFixed.h
  295. +1 −0  vendor/Pods/Headers/CorePlot/_CPTConstraintsFixed.h
  296. +0 −24 vendor/Pods/Headers/CorePlot/_CPTConstraintsRelative.h
  297. +1 −0  vendor/Pods/Headers/CorePlot/_CPTConstraintsRelative.h
  298. +0 −6 vendor/Pods/Headers/CorePlot/_CPTDarkGradientTheme.h
  299. +1 −0  vendor/Pods/Headers/CorePlot/_CPTDarkGradientTheme.h
  300. +0 −20 vendor/Pods/Headers/CorePlot/_CPTFillColor.h
Sorry, we could not display the entire diff because too many files (370) changed.
4 Gemfile.lock
View
@@ -31,6 +31,9 @@ GEM
cocoapods (>= 0.9.1)
multi_json (1.3.7)
multipart-post (1.1.5)
+ nano-store (0.3.13)
+ bubble-wrap (~> 1.1.0)
+ motion-cocoapods (~> 1.1.0)
octokit (1.7.0)
addressable (~> 2.2)
faraday (~> 0.8)
@@ -50,3 +53,4 @@ DEPENDENCIES
bubble-wrap
cocoapods (= 0.13.0)
motion-cocoapods (~> 1.1.2)
+ nano-store
29 app/app_delegate.rb
View
@@ -1,6 +1,11 @@
class AppDelegate
def application(application, didFinishLaunchingWithOptions:launchOptions)
+
+ define_nano_storage_option
+ create_levers
+ create_brands_and_associate_levers
+
@window = UIWindow.alloc.initWithFrame(App.bounds)
@window.makeKeyAndVisible
@@ -10,6 +15,30 @@ def application(application, didFinishLaunchingWithOptions:launchOptions)
true
end
+ def define_nano_storage_option
+ NanoStore.shared_store = NanoStore.store(:memory)
+ end
+
+ def create_levers
+ @lever_names = ["TV", "Umbrella TV", "OOH", "Display", "Facebook", "Umbrella Viral FB", "Positive Social GRP"]
+ end
+
+ def create_brands_and_associate_levers
+ @brands = [Brand.create(:name => "Brand A", :description => "Brand Alpha")]
+
+ brand = @brands[0]
+
+ brand.levers << Lever.create(:name => @lever_names[0], :color => "A2AD01".to_color)
+ brand.levers << Lever.create(:name => @lever_names[1], :color => "E47C33".to_color)
+ brand.levers << Lever.create(:name => @lever_names[0], :color => "CF2A35".to_color)
+ brand.levers << Lever.create(:name => @lever_names[0], :color => "006600".to_color)
+ brand.levers << Lever.create(:name => @lever_names[0], :color => "370066".to_color)
+ brand.levers << Lever.create(:name => @lever_names[0], :color => "1EB4B8".to_color)
+ brand.levers << Lever.create(:name => @lever_names[0], :color => "E47C33".to_color)
+ brand.levers << Lever.create(:name => @lever_names[0], :color => "1CA4EE".to_color)
+
+ end
+
# attr_accessor :viewController, :window
# def application(application, didFinishLaunchingWithOptions:launchOptions)
8 app/controllers/curve_plot_controller.rb
View
@@ -8,7 +8,7 @@ def viewDidLoad
theme = CPTTheme.themeNamed KCPTPlainWhiteTheme
@plot = CurvePlot.alloc.init
@plot.delegate = self
- @plot.renderInLayer(@curve_hosting_view, withTheme:theme)
+ @plot.renderInLayer(@curve_hosting_view, withTheme:theme, andCurves:curves)
@horizontal_zoom.value = 0
@curve_hosting_view.round_corners(8)
@@ -27,4 +27,10 @@ def zoom_x(sender)
@plot.zoom_x_by(sender.value)
end
+ def curves
+ @brands = App.delegate.instance_variable_get(:@brands)
+
+ @brands[0].curves
+ end
+
end
5 app/core_ext/ui_color.rb
View
@@ -0,0 +1,5 @@
+class UIColor
+ def to_cpt_color
+ CPTColor.alloc.initWithColor(self.CGColor)
+ end
+end
22 app/models/brand.rb
View
@@ -1,5 +1,23 @@
-class Brand
+class Brand < NanoStore::Model
-
+ attribute :name
+ attribute :description
+
+ bag :levers
+
+ def curves
+ start = 0
+ levers.collect do |lever|
+ start += 1
+ {
+ :name => lever.name,
+ :color => lever.color.to_cpt_color,
+ :static_point => start,
+ :draggable_point => start+1,
+ :fn => lambda {|p| (start+1) * p * p},
+ :data => (0..10).to_a
+ }
+ end
+ end
end
24 app/models/curve.rb
View
@@ -0,0 +1,24 @@
+class Curve
+
+ def self.for_brand(brand)
+ [
+ {
+ :name => "TV",
+ :data => (0..10).to_a,
+ :color => CPTColor.orangeColor,
+ :static_point => 4,
+ :draggable_point => 3,
+ :fn => lambda {|p| 4 * p * p}
+ },
+ {
+ :name => "Umbrella_TV",
+ :data => (0..5).to_a,
+ :color => CPTColor.greenColor,
+ :static_point => 2,
+ :draggable_point => 3,
+ :fn => lambda {|p| 0.5 * p * p}
+ }
+ ]
+ end
+
+end
6 app/models/lever.rb
View
@@ -1,5 +1,7 @@
-class Lever
+class Lever < NanoStore::Model
- attr_accessor :name, :kind
+ attribute :name
+ attribute :kind
+ attribute :color
end
41 lib/plot/curve_plot.rb
View
@@ -4,31 +4,34 @@ class CurvePlot
def init
if(super)
# @data = (0..10).to_a
- @curves = [
- {
- :name => "TV",
- :data => (0..10).to_a,
- :color => CPTColor.orangeColor,
- :static_point => 4,
- :draggable_point => 3,
- :fn => lambda {|p| 4 * p * p}
- },
- {
- :name => "Umbrella_TV",
- :data => (0..5).to_a,
- :color => CPTColor.greenColor,
- :static_point => 2,
- :draggable_point => 3,
- :fn => lambda {|p| 0.5 * p * p}
- }
- ]
+ # @curves =
+
+ # [
+ # {
+ # :name => "TV",
+ # :data => (0..10).to_a,
+ # :color => CPTColor.orangeColor,
+ # :static_point => 4,
+ # :draggable_point => 3,
+ # :fn => lambda {|p| 4 * p * p}
+ # },
+ # {
+ # :name => "Umbrella_TV",
+ # :data => (0..5).to_a,
+ # :color => CPTColor.greenColor,
+ # :static_point => 2,
+ # :draggable_point => 3,
+ # :fn => lambda {|p| 0.5 * p * p}
+ # }
+ # ]
@draggable_points = {}
end
self
end
- def renderInLayer(hosting_view, withTheme:theme)
+ def renderInLayer(hosting_view, withTheme:theme, andCurves:curves)
+ @curves = curves
bounds = hosting_view.bounds
# create and assign chart to the hosting view.
3  vendor/Podfile.lock
View
@@ -1,5 +1,8 @@
PODS:
- CorePlot (1.1)
+ - NanoStore (2.1.8)
DEPENDENCIES:
- CorePlot
+ - NanoStore (~> 2.1.4)
+ - NanoStore (~> 2.5.3)
312 vendor/Pods/.build/Pods/NSFNanoBag.h
View
@@ -0,0 +1,312 @@
+/*
+ NSFNanoBag.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+/*! @file NSFNanoBag.h
+ @brief A bag is a loose collection of objects stored in a document store.
+ */
+
+/** @class NSFNanoBag
+ * A bag is a loose collection of objects stored in a document store.
+ *
+ * @note
+ * The objects must conform to the \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink. For your convenience, NanoStore provides you with NSFNanoObject, which is the standard
+ * way of storing and retrieving objects from/to a bag.
+ *
+ * @par
+ * It's more efficient to make your storage objects \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant, thus eliminating the need to convert your objects to/from
+ * objects of type NSFNanoObject.
+ *
+ * @details <b>Example:</b>
+ @code
+ // Instantiate a NanoStore and open it
+ NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFMemoryStoreType path:nil error:nil];
+ [nanoStore removeAllObjectsFromStoreAndReturnError:nil];
+
+ // Add some data to a bag
+ NSFNanoBag *bag = [NSFNanoBag bag];
+ NSDictionary *info = ...;
+ NSFNanoObject *obj1 = [NSFNanoObject nanoObjectWithDictionary:info];
+ NSFNanoObject *obj2 = [NSFNanoObject nanoObjectWithDictionary:info];
+ NSFNanoObject *obj3 = [NSFNanoObject nanoObjectWithDictionary:info];
+ [bag addObjectsFromArray:[NSArray arrayWithObjects:obj1, obj2, obj3, nil] error:nil];
+
+ // Add the bag and its objects to the document store
+ [nanoStore addObject:bag error:nil];
+
+ // Obtain the bags from the document store
+ NSArray *bags = [nanoStore bags];
+
+ // Close the document store
+ [nanoStore closeWithError:nil];
+ @endcode
+*/
+
+#import "NSFNanoObjectProtocol.h"
+
+@interface NSFNanoBag : NSObject <NSFNanoObjectProtocol, NSCopying>
+
+/** * The store where the bag is located. */
+@property (nonatomic, weak, readonly) NSFNanoStore *store;
+/** * The name of the bag. */
+@property (nonatomic, copy, readwrite) NSString *name;
+/** * The UUID of the bag. */
+@property (nonatomic, copy, readonly) NSString *key;
+/** * Dictionary of NSString (key) and id<NSFNanoObjectProtocol> (value). */
+@property (nonatomic, readonly) NSDictionary *savedObjects;
+/** * Dictionary of NSString (key) and id<NSFNanoObjectProtocol> (value). */
+@property (nonatomic, readonly) NSDictionary *unsavedObjects;
+/** * Dictionary of NSString (key) and id<NSFNanoObjectProtocol> (value). */
+@property (nonatomic, readonly) NSDictionary *removedObjects;
+/** * To determine whether the bag has uncommited changes. */
+@property (nonatomic, assign, readonly) BOOL hasUnsavedChanges;
+
+/** @name Creating and Initializing Bags
+ */
+
+//@{
+
+/** * Creates and returns an empty bag.
+ * @return An empty bag upon success, nil otherwise.
+ */
+
++ (NSFNanoBag *)bag;
+
+/** * Creates and returns a bag adding to it the objects contained in the given array.
+ * @param theObjects an array of objects conforming to the \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink.
+ * @return A bag only containing the objects with conform to the \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink upon success, nil otherwise.
+ * @throws NSFUnexpectedParameterException is thrown if theObjects is nil.
+ * @warning If theObjects is nil, an NSFUnexpectedParameterException will be thrown. Use + bag; instead.
+ * @see \link initBagWithNanoObjects: - (NSFNanoBag*)initBagWithNanoObjects:(NSArray *)theObjects \endlink
+ */
+
++ (NSFNanoBag *)bagWithObjects:(NSArray *)theObjects;
+
+/** * Creates and returns an empty bag with the specified name
+ * @param theName the name of the bag. Can be nil.
+ * @return An empty bag upon success, nil otherwise.
+ */
+
++ bagWithName:(NSString *)theName;
+
+/** * Creates and returns a bag with the specified name adding to it the objects contained in the given array.
+ * @param theName the name of the bag. Can be nil.
+ * @param theObjects is a required array of objects conforming to the \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink.
+ * @return A bag only containing the objects with conform to the \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink upon success, nil otherwise.
+ * @throws NSFUnexpectedParameterException is thrown if theObjects is nil.
+ * @warning If theObjects is nil, an NSFUnexpectedParameterException will be thrown.
+ * @see \link initBagWithNanoObjects: - (NSFNanoBag*)initBagWithNanoObjects:(NSArray *)theObjects \endlink
+ */
+
++ bagWithName:(NSString *)theName andObjects:(NSArray *)theObjects;
+
+/** * Initializes a newly allocated bag with the specified name adding to it the objects contained in the given array.
+ * @param theName the name of the bag. Can be nil.
+ * @param theObjects is a required array of objects conforming to the \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink.
+ * @return A bag only containing the objects with conform to the \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink upon success, nil otherwise.
+ * @throws NSFUnexpectedParameterException is thrown if theObjects is nil.
+ * @warning If theObjects is nil, an NSFUnexpectedParameterException will be thrown.
+ * @see \link bagWithObjects: + (NSFNanoBag*)bagWithObjects:(NSArray *)theObjects \endlink
+ */
+
+- (id)initBagWithName:(NSString *)theName andObjects:(NSArray *)someObjects;
+
+//@}
+
+/** @name Adding and Removing Objects
+ */
+
+//@{
+
+/** * Adds an \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant object to the bag.
+ * @param theObject is added to the bag.
+ * @param outError is used if an error occurs. May be NULL.
+ * @return YES upon success, NO otherwise.
+ * @warning This value cannot be nil and it must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
+ * @throws NSFNonConformingNanoObjectProtocolException is thrown if the object is non-\link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink compliant.
+ * @see \link addObjectsFromArray:error: - (BOOL)addObjectsFromArray:(NSArray *)theObjects error:(out NSError **)outError \endlink
+ */
+
+- (BOOL)addObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError;
+
+/** * Adds a series of \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant objects to the bag.
+ * @param theObjects is an array of objects to be added to the bag. The objects must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
+ * @param outError is used if an error occurs. May be NULL.
+ * @return YES upon success, NO otherwise.
+ * @warning The objects of the array must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
+ * @throws NSFNonConformingNanoObjectProtocolException is thrown if the object is non-\link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink compliant.
+ * @see \link addObject:error: - (BOOL)addObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError \endlink
+ */
+
+- (BOOL)addObjectsFromArray:(NSArray *)theObjects error:(out NSError **)outError;
+
+/** * Removes the specified object from the bag.
+ * @param theObject the object to be removed from the bag.
+ * @warning The object must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
+ * @see \link removeObjectsInArray: - (void)removeObjectsInArray:(NSArray *)theObjects \endlink
+ * @see \link removeObjectWithKey: - (void)removeObjectWithKey:(NSString *)theObjectKey \endlink
+ * @see \link removeObjectsWithKeysInArray: - (void)removeObjectsWithKeysInArray:(NSArray *)theKeys \endlink
+ * @see \link removeAllObjects - (void)removeAllObjects \endlink
+ */
+
+- (void)removeObject:(id <NSFNanoObjectProtocol>)theObject;
+
+/** * Empties the bag of all its elements.
+ * @see \link removeObject: - (void)removeObject:(id <NSFNanoObjectProtocol>)theObject \endlink
+ * @see \link removeObjectsInArray: - (void)removeObjectsInArray:(NSArray *)theObjects \endlink
+ * @see \link removeObjectWithKey: - (void)removeObjectWithKey:(NSString *)theObjectKey \endlink
+ * @see \link removeObjectsWithKeysInArray: - (void)removeObjectsWithKeysInArray:(NSArray *)theKeys \endlink
+ */
+
+- (void)removeAllObjects;
+
+/** * Removes the list of objects from the bag.
+ * @param theObjects the list of objects to be removed from the bag.
+ * @warning The objects of the array must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
+ * @see \link removeObject: - (void)removeObject:(id <NSFNanoObjectProtocol>)theObject \endlink
+ * @see \link removeObjectWithKey: - (void)removeObjectWithKey:(NSString *)theObjectKey \endlink
+ * @see \link removeObjectsWithKeysInArray: - (void)removeObjectsWithKeysInArray:(NSArray *)theKeys \endlink
+ * @see \link removeAllObjects - (void)removeAllObjects \endlink
+ */
+
+- (void)removeObjectsInArray:(NSArray *)theObjects;
+
+/** * Removes the object with a given key from the bag.
+ * @param theObjectKey the key of the object to be removed from the bag.
+ * @warning The object referenced by theObjectKey must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
+ * @see \link removeObject: - (void)removeObject:(id <NSFNanoObjectProtocol>)theObject \endlink
+ * @see \link removeObjectsInArray: - (void)removeObjectsInArray:(NSArray *)theObjects \endlink
+ * @see \link removeObjectsWithKeysInArray: - (void)removeObjectsWithKeysInArray:(NSArray *)theKeys \endlink
+ * @see \link removeAllObjects - (void)removeAllObjects \endlink
+ */
+
+- (void)removeObjectWithKey:(NSString *)theObjectKey;
+
+/** * Removes from the bag the objects specified by elements in a given array.
+ * @param theKeys an array of objects specifying the keys to remove from the bag
+ * @warning The objects referenced by theKeys must be \link NSFNanoObjectProtocol::initNanoObjectFromDictionaryRepresentation:forKey:store: NSFNanoObjectProtocol\endlink-compliant.
+ * @see \link removeObject: - (void)removeObject:(id <NSFNanoObjectProtocol>)theObject \endlink
+ * @see \link removeObjectsInArray: - (void)removeObjectsInArray:(NSArray *)theObjects \endlink
+ * @see \link removeObjectWithKey: - (void)removeObjectWithKey:(NSString *)theObjectKey \endlink
+ * @see \link removeAllObjects - (void)removeAllObjects \endlink
+ */
+
+- (void)removeObjectsWithKeysInArray:(NSArray *)theKeys;
+
+//@}
+
+/** @name Saving, Reloading and Undoing
+ */
+
+//@{
+
+/** * Saves the bag and its contents. Also, saves all the changes made since the last save.
+ * @param outError is used if an error occurs. May be NULL.
+ * @return YES upon success, NO otherwise.
+ * @note Check property hasUnsavedChanges to find out whether the bag has unsaved contents.
+ * @see \link reloadBagWithError: - (BOOL)reloadBagWithError:(out NSError **)outError \endlink
+ * @see \link undoChangesWithError: - (BOOL)undoChangesWithError:(out NSError **)outError \endlink
+ */
+
+- (BOOL)saveAndReturnError:(out NSError **)outError;
+
+/** * Refreshes the bag to match the contents stored in the document store. The unsaved contents are preserved.
+ * @param outError is used if an error occurs. May be NULL.
+ * @return YES upon success, NO otherwise.
+ * @note Check properties savedObjects, unsavedObjects and removedObjects to find out the current state of the bag.
+ * @see \link saveAndReturnError: - (BOOL)saveAndReturnError:(out NSError **)outError \endlink
+ * @see \link undoChangesWithError: - (BOOL)undoChangesWithError:(out NSError **)outError \endlink
+ */
+
+- (BOOL)reloadBagWithError:(out NSError **)outError;
+
+/** * Discards the changes made in the bag.
+ * @param outError is used if an error occurs. May be NULL.
+ * @return YES upon success, NO otherwise.
+ * @note Check properties savedObjects, unsavedObjects and removedObjects to find out the current state of the bag.
+ * @see \link saveAndReturnError: - (BOOL)saveAndReturnError:(out NSError **)outError \endlink
+ * @see \link reloadBagWithError: - (BOOL)reloadBagWithError:(out NSError **)outError \endlink
+ */
+
+- (BOOL)undoChangesWithError:(out NSError **)outError;
+
+//@}
+
+/** @name Inflating and Deflating
+ */
+
+//@{
+
+/** * Inflates the bag by reconstructing the objects flattened with - (void)deflateBag;
+ * @note Check properties savedObjects, unsavedObjects and removedObjects to find out the current state of the bag.
+ * @see \link deflateBag - (void)deflateBag \endlink
+ */
+
+- (void)inflateBag;
+
+/** * Releases memory by "flattening" the objects from the bag.
+ * @note Check properties savedObjects, unsavedObjects and removedObjects to find out the current state of the bag.
+ * @see \link inflateBag - (void)inflateBag \endlink
+ */
+
+- (void)deflateBag;
+
+//@}
+
+/** @name Miscellaneous
+ */
+
+//@{
+
+/** * Returns the number of objects currently in the bag.
+ * @return The number of objects currently in the bag.
+ */
+
+- (NSUInteger)count;
+
+/** * Compares the receiving bag to another bag.
+ * @param otherNanoBag is a bag.
+ * @return YES if the contents of otherNanoBag are equal to the contents of the receiving bag, otherwise NO.
+ */
+
+- (BOOL)isEqualToNanoBag:(NSFNanoBag *)otherNanoBag;
+
+/** * Returns a dictionary that contains the information stored in the bag.
+ * @note Check properties savedObjects, unsavedObjects and removedObjects to find out the current state of the bag.
+ * @see \link description - (NSString *)description \endlink
+ */
+
+- (NSDictionary *)dictionaryRepresentation;
+
+/** * Returns a string representation of the bag.
+ * @note Check properties savedObjects, unsavedObjects and removedObjects to find out the current state of the bag.
+ * @see \link dictionaryRepresentation - (NSDictionary *)dictionaryRepresentation \endlink
+ */
+
+- (NSString *)description;
+
+//@}
+
+@end
37 vendor/Pods/.build/Pods/NSFNanoBag_Private.h
View
@@ -0,0 +1,37 @@
+/*
+ NSFNanoBag_Private.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+#import "NSFNanoBag.h"
+
+/** \cond */
+
+@interface NSFNanoBag (Private)
+- (void)_setStore:(NSFNanoStore *)aStore;
+- (BOOL)_saveInStore:(NSFNanoStore *)someStore error:(out NSError **)outError;
+- (void)_inflateObjectsWithKeys:(NSArray *)someKeys;
+@end
+
+/** \endcond */
542 vendor/Pods/.build/Pods/NSFNanoEngine.h
View
@@ -0,0 +1,542 @@
+/*
+ NSFNanoBag.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+/*! @file NSFNanoEngine.h
+ @brief A wrapper around SQLite, it provides convenience methods as well as "raw" access to the database.
+ */
+
+/** @class NSFNanoEngine
+ * A wrapper around SQLite, it provides convenience methods as well as "raw" access to the database.
+ */
+
+#import "sqlite3.h"
+
+#import "NSFNanoGlobals.h"
+#import "NSFNanoGlobals.h"
+
+@class NSFNanoResult;
+
+@interface NSFNanoEngine : NSObject
+
+/** * A reference to the SQLite database. */
+@property (nonatomic, assign, readonly) sqlite3 *sqlite;
+/** * The file path where the database is located. */
+@property (nonatomic, copy, readonly) NSString *path;
+/** * The cache mechanism being used. */
+@property (nonatomic, assign, readwrite) NSFCacheMethod cacheMethod;
+
+/** @name Creating and Initializing NanoEngine
+ */
+
+//@{
+
+/** Creates and returns an engine object at a given file path.
+ * @param thePath the file path where the document store will be created. Must not be nil.
+ * @return An engine object upon success, nil otherwise.
+ * @note To manipulate the document store, you must first open it.
+ * @see - (id)initWithPath:(NSString *)thePath;
+ * @see - (BOOL)openWithCacheMethod:(NSFCacheMethod)theCacheMethod useFastMode:(BOOL)useFastMode;
+ */
+
++ (id)databaseWithPath:(NSString *)thePath;
+
+/** Initializes a newly allocated document store at a given file path.
+ * @param thePath the file path where the document store will be created. Must not be nil.
+ * @return An engine object upon success, nil otherwise.
+ * @note To manipulate the document store, you must first open it.
+ * @see + (id)databaseWithPath:(NSString *)thePath;
+ * @see - (BOOL)openWithCacheMethod:(NSFCacheMethod)theCacheMethod useFastMode:(BOOL)useFastMode;
+ */
+
+- (id)initWithPath:(NSString *)thePath;
+
+//@}
+
+/** @name Opening and Closing
+ */
+
+//@{
+
+/** Opens the engine, making it ready for manipulation.
+ * @param theCacheMethod allows to specify hwo the data will be read from the database:. This setting incurs a tradeoff between speed and memory usage.
+ * @param useFastMode if set to YES, the document store is opened with all performance turned on (more risky in case of failure). Setting it to NO is slower, but safer. See the note below for more information.
+ * @return YES upon success, NO otherwise.
+ * @note
+ * When FastMode is activated NanoStore continues without pausing as soon as it has handed data off to the operating system.
+ * If the application running NanoStore crashes, the data will be safe, but the database might become corrupted if the operating system crashes
+ * or the computer loses power before that data has been written to the disk surface.
+ * On the other hand, some operations are as much as 50 or more times faster with FastMode activated.
+ *
+ * @par
+ * If FastMode is deactivated, NanoStore will pause at critical moments to make sure that data has actually been written to the disk surface
+ * before continuing. This ensures that if the operating system crashes or if there is a power failure, the database will be uncorrupted after rebooting.
+ * Deactivating FastMode is very safe, but it is also slower.
+ */
+
+- (BOOL)openWithCacheMethod:(NSFCacheMethod)theCacheMethod useFastMode:(BOOL)useFastMode;
+
+/** Closes the database.
+ * @return YES upon success, NO otherwise.
+ */
+
+- (BOOL)close;
+
+//@}
+
+/** @name Accessors
+ */
+
+//@{
+
+/** Checks whether the document store is open or closed.
+ * @see - (void)close;
+ */
+
+- (BOOL)isDatabaseOpen;
+
+/** Checks whether a transaction is currently active.
+ * @return YES if a transaction is currently active, NO otherwise.
+ */
+
+- (BOOL)isTransactionActive;
+
+/** Sets the busy timeout.
+ * @param theTimeout is number of milliseconds that SQLite will wait to retry a busy operation.
+ * @note The acceptable range is between 100 and 5000 milliseconds. If the value is out of range, the 250 millisecond default timeout will be set instead.
+ * @see - (unsigned int)busyTimeout;
+ */
+
+- (void)setBusyTimeout:(unsigned int)theTimeout;
+
+/** Returns the current busy timeout.
+ * @see - (void)setBusyTimeout:(unsigned int)theTimeout;
+ */
+
+- (unsigned int)busyTimeout;
+
+/** Returns the recommended cache size based on the system resources available.
+ * @return The recommended cache size in number of pages.
+ */
+
++ (NSUInteger)recommendedCacheSize;
+
+/** Sets the cache size.
+ * @param numberOfPages is the number of pages.
+ * @return YES upon success, NO otherwise.
+ * @see + (NSUInteger)recommendedCacheSize;
+ * @see - (NSUInteger)cacheSize;
+ */
+
+- (BOOL)setCacheSize:(NSUInteger)numberOfPages;
+
+/** Returns the cache size.
+ * @return The current cache size.
+ * @see + (NSUInteger)recommendedCacheSize;
+ * @see - (BOOL)setCacheSize:(NSUInteger)numberOfPages;
+ */
+
+- (NSUInteger)cacheSize;
+
+/** Returns the system's page size
+ */
+
++ (NSInteger)systemPageSize;
+
+/** Sets the page size.
+ * @param numberOfBytes is the size of the page.
+ * @return YES upon success, NO otherwise.
+ * @see + (NSInteger)systemPageSize;
+ * @see - (NSUInteger)pageSize;
+ */
+
+- (BOOL)setPageSize:(NSUInteger)numberOfBytes;
+
+/** Returns the page size.
+ * @return The current page size.
+ * @see + (NSInteger)systemPageSize;
+ * @see - (BOOL)setPageSize:(NSUInteger)numberOfBytes;
+ */
+
+- (NSUInteger)pageSize;
+
+/** Sets the text encoding type.
+ * @param theEncodingType is the encoding type. Can be NSFEncodingUTF8 or NSFEncodingUTF16.
+ * @return YES upon success, NO otherwise.
+ * @see - (NSFEncodingType)encoding;
+ */
+
+- (BOOL)setEncodingType:(NSFEncodingType)theEncodingType;
+
+/** Returns the encoding type.
+ * @return The current encoding type.
+ * @see - (BOOL)setEncodingType:(NSFEncodingType)theEncodingType;
+ */
+
+- (NSFEncodingType)encoding;
+
+/** Returns the encoding type from its string equivalent.
+ * @return The encoding type if successful, NSFEncodingUnknown otherwise.
+ * @see + (NSString *)NSFEncodingTypeToNSString:(NSFEncodingType)value;
+ */
+
++ (NSFEncodingType)NSStringToNSFEncodingType:(NSString *)value;
+
+/** Returns the string equivalent of an encoding type.
+ * @return The string equivalent if successful, nil otherwise.
+ * @see + (NSFEncodingType)NSStringToNSFEncodingType:(NSString *)value;
+ */
+
++ (NSString *)NSFEncodingTypeToNSString:(NSFEncodingType)value;
+
+/** Sets the synchronous mode.
+ * @param theSynchronousMode is the synchronous mode. Can be SynchronousModeOff, SynchronousModeNormal or SynchronousModeFull.
+ * @see - (NSFSynchronousMode)synchronousMode;
+ */
+
+- (void)setSynchronousMode:(NSFSynchronousMode)theSynchronousMode;
+
+/** Returns the synchronous mode.
+ * @return The current synchronous mode.
+ * @see - (void)setSynchronousMode:(NSFSynchronousMode)theSynchronousMode;
+ */
+
+- (NSFSynchronousMode)synchronousMode;
+
+/** Sets the temporary storage mode.
+ * @param theTempStoreMode is the temporary storage mode. Can be TempStoreModeDefault, TempStoreModeFile or TempStoreModeMemory.
+ * @see - (NSFTempStoreMode)tempStoreMode;
+ */
+
+- (void)setTempStoreMode:(NSFTempStoreMode)theTempStoreMode;
+
+/** Returns the temporary storage mode.
+ * @return The current temporary storage mode.
+ * @see - (void)setTempStoreMode:(NSFTempStoreMode)theTempStoreMode;
+ */
+
+- (NSFTempStoreMode)tempStoreMode;
+
+/** * Journal mode.
+ * These values represent the options used by SQLite to the the journal mode for databases associated with the current database connection.
+
+ @par
+ The <b>DELETE</b> journaling mode is the normal behavior. In the <b>DELETE</b> mode, the rollback journal is deleted at the conclusion
+ of each transaction. Indeed, the delete operation is the action that causes the transaction to commit. (See the document titled
+ Atomic Commit In SQLite for additional detail.)
+
+ @par
+ The <b>TRUNCATE</b> journaling mode commits transactions by truncating the rollback journal to zero-length instead of deleting it.
+ On many systems, truncating a file is much faster than deleting the file since the containing directory does not need to be changed.
+
+ @par
+ The <b>PERSIST</b> journaling mode prevents the rollback journal from being deleted at the end of each transaction. Instead, the header
+ of the journal is overwritten with zeros. This will prevent other database connections from rolling the journal back. The <b>PERSIST</b>
+ journaling mode is useful as an optimization on platforms where deleting or truncating a file is much more expensive than overwriting
+ the first block of a file with zeros.
+
+ @par
+ The <b>MEMORY</b> journaling mode stores the rollback journal in volatile RAM. This saves disk I/O but at the expense of database safety
+ and integrity. If the application using SQLite crashes in the middle of a transaction when the <b>MEMORY</b> journaling mode is set, then
+ the database file will very likely go corrupt.
+
+ @par
+ The <b>WAL</b> journaling mode uses a write-ahead log instead of a rollback journal to implement transactions. The <b>WAL</b> journaling mode is
+ persistent; after being set it stays in effect across multiple database connections and after closing and reopening the database. A database
+ in <b>WAL</b> journaling mode can only be accessed by SQLite version 3.7.0 or later.
+
+ @par
+ The <b>OFF</b> journaling mode disables the rollback journal completely. No rollback journal is ever created and hence there is never a
+ rollback journal to delete. The <b>OFF</b> journaling mode disables the atomic commit and rollback capabilities of SQLite. The <b>ROLLBACK</b> command
+ no longer works; it behaves in an undefined way. Applications must avoid using the <b>ROLLBACK</b> command when the journal mode is <b>OFF</b>.
+ If the application crashes in the middle of a transaction when the <b>OFF</b> journaling mode is set, then the database file will very likely go corrupt.
+
+ @note
+ The journal_mode for an in-memory database is either <b>MEMORY</b> or <b>OFF</b> and can not be changed to a different value. An attempt to change
+ the journal_mode of an in-memory database to any setting other than <b>MEMORY</b> or <b>OFF</b> is ignored. Note also that the journal_mode cannot be changed
+ while a transaction is active.
+
+ @see NSFNanoEngine
+ */
+
+- (NSFJournalModeMode)journalModeAndReturnError:(out NSError **)outError;
+
+/** Returns the journal mode.
+ * @return The current journal mode.
+ * @see - (NSFJournalModeMode)journalModeAndReturnError:(out NSError **)outError;
+ */
+- (BOOL)setJournalMode:(NSFJournalModeMode)theMode;
+
+/** Returns a new array containing the datatypes recognized by NanoStore.
+ * @return A new array containing the datatypes recognized by NanoStore.
+ */
+
++ (NSSet *)sharedNanoStoreEngineDatatypes;
+
+/** Returns the NanoStore engine version.
+ * @return The NanoStore engine version.
+ */
+
++ (NSString *)nanoStoreEngineVersion;
+
+/** Returns the SQLite version.
+ * @return The SQLite version.
+ */
+
++ (NSString *)sqliteVersion;
+
+//@}
+
+/** @name Transactions
+ */
+
+//@{
+
+/** Starts a transaction.
+ * @return YES upon success, NO otherwise.
+ * @see - (BOOL)beginTransaction;
+ * @see - (BOOL)beginDeferredTransaction;
+ * @see - (BOOL)commitTransaction;
+ * @see - (BOOL)rollbackTransaction;
+ * @see - (BOOL)isTransactionActive;
+ */
+
+- (BOOL)beginTransaction;
+
+/** Starts a deferred transaction.
+ * @return YES upon success, NO otherwise.
+ * @see - (BOOL)beginTransaction;
+ * @see - (BOOL)commitTransaction;
+ * @see - (BOOL)rollbackTransaction;
+ * @see - (BOOL)isTransactionActive;
+ */
+
+- (BOOL)beginDeferredTransaction;
+
+/** Commits a transaction.
+ * @return YES upon success, NO otherwise.
+ * @see - (BOOL)beginTransaction;
+ * @see - (BOOL)beginDeferredTransaction;
+ * @see - (BOOL)rollbackTransaction;
+ * @see - (BOOL)isTransactionActive;
+ */
+
+- (BOOL)commitTransaction;
+
+/** Rolls back a transaction.
+ * @return YES upon success, NO otherwise.
+ * @see - (BOOL)beginTransaction;
+ * @see - (BOOL)beginDeferredTransaction;
+ * @see - (BOOL)commitTransaction;
+ * @see - (BOOL)isTransactionActive;
+ */
+
+- (BOOL)rollbackTransaction;
+
+//@}
+
+/** @name Everything About Tables
+ */
+
+//@{
+
+/** Creates a table.
+ * @param theTable the name of the table. Must not be nil.
+ * @param theColumns the names of the columns. Must not be nil.
+ * @param theDatatypes the datatypes of the columns. Must not be nil.
+ * @see - (BOOL)dropTable:(NSString *)theTable;
+ * @return YES upon success, NO otherwise.
+ * @note
+ * Allowed datatypes: NSFNanoTypeRowUID, NSFNanoTypeString, NSFNanoTypeData, NSFNanoTypeDate and NSFNanoTypeNumber.
+ * @throws NSFUnexpectedParameterException is thrown if any of the parameters are nil.
+ * @throws NSFUnexpectedParameterException is thrown if the number of columns and datatypes are not equal.
+ */
+
+- (BOOL)createTable:(NSString *)theTable withColumns:(NSArray *)theColumns datatypes:(NSArray *)theDatatypes;
+
+/** Returns a new array containing the tables found in the main document store.
+ * @return A new array containing the tables in the main document store, or an empty array if none is found.
+ * @see - (NSDictionary *)allTables;
+ * @see - (NSArray *)temporaryTables;
+ */
+
+- (NSArray *)tables;
+
+/** Returns a new array containing the tables found in the main and attached document stores.
+ * @return A new array containing the tables in the main and attached document stores, or an empty array if none is found.
+ * @note
+ * The dictionary key is the document store name and its value, an array of the tables associated with that document store.
+ * @see - (NSArray *)tables;
+ * @see - (NSArray *)temporaryTables;
+ */
+
+- (NSDictionary *)allTables;
+
+/** Returns a new array containing the columns for a given table.
+ * @param theTable is the name of the table.
+ * @return A new array containing the columns for a given table, or an empty array if none is found.
+ */
+
+- (NSArray *)columnsForTable:(NSString *)theTable;
+
+/** Returns a new array containing the temporary tables found in the main document store.
+ * @return A new array containing the temporary tables in the main document store, or an empty array if none is found.
+ * @see - (NSArray *)tables;
+ * @see - (NSDictionary *)allTables;
+ */
+
+- (NSArray *)temporaryTables;
+
+/** Returns a new array containing the datatypes for a given table.
+ * @param theTable is the name of the table.
+ * @return A new array containing the datatypes for a given table, or an empty array if none is found.
+ */
+
+- (NSArray *)datatypesForTable:(NSString *)theTable;
+
+/** Removes the table from the document store.
+ * @param theTable is the name of the table.
+ * @return YES upon success, NO otherwise.
+ * @see - (BOOL)createTable:(NSString *)theTable withColumns:(NSArray *)theColumns datatypes:(NSArray *)theDatatypes;
+ */
+
+- (BOOL)dropTable:(NSString *)theTable;
+
+//@}
+
+/** @name Everything about Indexes
+ */
+
+//@{
+
+/** Creates an index.
+ * @param theColumn is the name of the column.
+ * @param theTable is the name of the table.
+ * @param isUnique whether the index should be unique or allow duplicates.
+ * @return YES upon success, NO otherwise.
+ * @see - (void)dropIndex:(NSString *)indexName;
+ */
+
+- (BOOL)createIndexForColumn:(NSString *)theColumn table:(NSString *)theTable isUnique:(BOOL)isUnique;
+
+/** Returns a new array containing the indexes found in the main document store.
+ * @return A new array containing the indexes in the main document store, or an empty array if none is found.
+ */
+
+- (NSArray *)indexes;
+
+/** Returns a new array containing the indexes found for a given table.
+ * @return A new array containing the indexes for a given table, or an empty array if none is found.
+ */
+
+- (NSArray *)indexedColumnsForTable:(NSString *)theTable;
+
+/** Removes an index.
+ * @param theIndex is the name of the index to be removed.
+ * @see - (BOOL)createIndexForColumn:(NSString *)theColumn table:(NSString *)theTable isUnique:(BOOL)isUnique;
+ */
+
+- (void)dropIndex:(NSString *)theIndex;
+
+//@}
+
+/** @name Database Maintenance
+ */
+
+//@{
+
+/** Compacts the database, attempting to reclaim unused space.
+ * @return YES upon success, NO otherwise.
+ * @note If a transaction is open, the operation will not proceed and NO will be returned instead.
+ */
+
+- (BOOL)compact;
+
+/** Performs an integrity check on the database.
+ * @return YES upon success, NO otherwise.
+ * @note If a transaction is open, the operation will not proceed and NO will be returned instead.
+ */
+
+- (BOOL)integrityCheck;
+
+//@}
+
+/** @name Searching and Retrieving
+ */
+
+//@{
+
+/** Executes a SQL statement.
+ * @param theSQLStatement is the SQL statement to be executed. Must not be nil or an empty string.
+ * @return Returns a NSFNanoResult.
+ * @throws NSFUnexpectedParameterException is thrown if the statement is nil or an empty string.
+ * @attention Check NSFNanoResult's error property to find out if there was a problem executing the statement.
+ * @note The result set will always contain string values. If you need to obtain NanoObjects instead, use the NSFNanoSearch class.
+ * @see NSFNanoSearch
+ */
+
+- (NSFNanoResult *)executeSQL:(NSString *)theSQLStatement;
+
+/** Returns the largest ROWUID for a given table.
+ * @param theTable is the table from which to obtain the largest ROWUID. Must not be nil.
+ * @return The largest ROWUID in use.
+ * @throws NSFUnexpectedParameterException is thrown if the table is nil.
+ */
+
+- (long long)maxRowUIDForTable:(NSString *)theTable;
+
+//@}
+
+/** @name Miscellaneous
+ */
+
+//@{
+
+/** Returns a string containing the base 64 representation of a data element.
+ * @return A string encoded in base 64 format.
+ */
+
++ (NSString *)encodeDataToBase64:(NSData *)theData;
+
+/** Returns a data element containing from a base 64 formatted string.
+ * @return A data element.
+ */
+
++ (NSData *)decodeDataFromBase64:(NSString *)theEncodedData;
+
+/** Returns a UUID string
+ * @return A string containing a representation of a UUID.
+ */
+
++ (NSString *)stringWithUUID;
+
+/** Returns a string representation of the engine.
+ */
+
+- (NSString *)description;
+
+//@}
+
+@end
69 vendor/Pods/.build/Pods/NSFNanoEngine_Private.h
View
@@ -0,0 +1,69 @@
+/*
+ * NSFNanoEngine_Private.h
+ * A lightweight Cocoa wrapper for SQLite
+ *
+ * Written by Tito Ciuro (21-Jan-2003)
+
+ Copyright (c) 2004, Tito Ciuro
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ • Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ • Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ • Neither the name of Tito Ciuro nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+*/
+
+#import "NSFNanoEngine.h"
+#import "NSFNanoGlobals_Private.h"
+#import "NSFNanoResult.h"
+
+/** \cond */
+
+@interface NSFNanoEngine (Private)
++ (NSArray *)NSFP_sharedROWIDKeywords;
+- (NSString *)NSFP_cacheMethodToString;
+- (NSString*)NSFP_nestedDescriptionWithPrefixedSpace:(NSString *)prefixedSpace;
++ (NSDictionary *)_plistToDictionary:(NSString *)aPlist;
+- (NSFNanoDatatype)NSFP_datatypeForTable:(NSString *)table column:(NSString *)column;
++ (void)NSFP_decodeQuantum:(unsigned char *)dest andSource:(const char *)src;
+- (void)NSFP_setFullColumnNamesEnabled;
+- (NSArray *)NSFP_flattenAllTables;
+- (NSInteger)NSFP_prepareSQLite3Statement:(sqlite3_stmt **)aStatement theSQLStatement:(NSString *)aSQLQuery;
+- (NSFNanoDatatype)NSFP_datatypeForColumn:(NSString *)tableAndColumn;
++ (int)NSFP_stripBitsFromExtendedResultCode:(int)extendedResult;
+
+- (BOOL)NSFP_beginTransactionMode:(NSString *)theSQLStatement;
+- (BOOL)NSFP_createTable:(NSString *)table withColumns:(NSArray *)tableColumns datatypes:(NSArray *)tableDatatypes isTemporary:(BOOL)isTemporaryFlag;
+- (BOOL)NSFP_removeColumn:(NSString *)column fromTable:(NSString *)table;
+- (void)NSFP_rebuildDatatypeCache;
+- (BOOL)NSFP_insertStringValues:(NSArray *)values forColumns:(NSArray *)columns table:(NSString *)table;
+
+- (void)NSFP_sqlString:(NSMutableString*)theSQLStatement appendingTags:(NSArray *)tags quoteTags:(BOOL)flag;
+- (void)NSFP_sqlString:(NSMutableString*)theSQLStatement appendingTags:(NSArray *)columns;
+- (BOOL)NSFP_sqlString:(NSMutableString*)theSQLStatement forTable:(NSString *)table withColumns:(NSArray *)columns datatypes:(NSArray *)datatypes;
+
+- (NSInteger)NSFP_ROWIDPresenceLocation:(NSArray *)tableColumns datatypes:(NSArray *)datatypes;
+- (BOOL)NSFP_isColumnROWIDAlias:(NSString *)column forTable:(NSString *)table;
+
+- (NSString *)NSFP_prefixWithDotDelimiter:(NSString *)tableAndColumn;
+- (NSString *)NSFP_suffixWithDotDelimiter:(NSString *)tableAndColumn;
+
+- (void)NSFP_installCommitCallback;
+- (void)NSFP_uninstallCommitCallback;
+@end
+
+/** \endcond */
125 vendor/Pods/.build/Pods/NSFNanoExpression.h
View
@@ -0,0 +1,125 @@
+/*
+ NSFNanoExpression.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+#import "NSFNanoGlobals.h"
+
+@class NSFNanoPredicate;
+
+/*! @file NSFNanoExpression.h
+ @brief A unit that describes a series of predicates and its operators.
+ */
+
+/** @class NSFNanoExpression
+ * A unit that describes a series of predicates and its operators.
+ * @details <b>Example:</b>
+ @code
+ // Instantiate a NanoStore and open it
+ NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFMemoryStoreType path:nil error:nil];
+
+ // Prepare the expression
+ NSFNanoPredicate *attribute = [NSFNanoPredicate predicateWithColumn:NSFAttributeColumn matching:NSFEqualTo value:@"FirstName"];
+ NSFNanoPredicate *value = [NSFNanoPredicate predicateWithColumn:NSFValueColumn matching:NSFEqualTo value:@"Joe"];
+ NSFNanoExpression *expression = [NSFNanoExpression expressionWithPredicate:attribute];
+ [expression addPredicate:value withOperator:NSFAnd];
+
+ // Setup the search with the document store and a given expression
+ NSFNanoSearch *search = [NSFNanoSearch searchWithStore:nanoStore];
+ [search setExpressions:[NSArray arrayWithObject:expression]];
+
+ // Obtain the matching objects
+ NSDictionary *searchResults = [search searchObjectsWithReturnType:NSFReturnObjects error:nil];
+
+ // Close the document store
+ [nanoStore closeWithError:nil];
+ @endcode
+ */
+
+@interface NSFNanoExpression : NSObject
+
+/** * Array of NSFNanoPredicate */
+@property (nonatomic, readonly) NSArray *predicates;
+/** * Array of NSNumber wrapping \link NSFGlobals::NSFOperator NSFOperator \endlink */
+@property (nonatomic, readonly) NSArray *operators;
+
+/** @name Creating and Initializing Expressions
+ */
+
+//@{
+
+/** * Creates and returns an expression with a given predicate.
+ * @param thePredicate the predicate used to initialize the expression. Must not be nil.
+ * @return An expression upon success, nil otherwise.
+ * @warning The parameter thePredicate must not be nil.
+ * @throws NSFUnexpectedParameterException is thrown if the predicate is nil.
+ * @see \link initWithPredicate: - (id)initWithPredicate:(NSFNanoPredicate *)aPredicate \endlink
+ */
+
++ (NSFNanoExpression*)expressionWithPredicate:(NSFNanoPredicate *)thePredicate;
+
+/** * Initializes a newly allocated expression with a given expression.
+ * @param thePredicate the predicate used to initialize the expression. Must not be nil.
+ * @return An expression upon success, nil otherwise.
+ * @warning The parameter thePredicate must not be nil.
+ * @throws NSFUnexpectedParameterException is thrown if the predicate is nil.
+ * @see \link expressionWithPredicate: + (NSFNanoExpression*)expressionWithPredicate:(NSFNanoPredicate *)thePredicate \endlink
+ */
+
+- (id)initWithPredicate:(NSFNanoPredicate *)thePredicate;
+
+//@}
+
+/** @name Adding a Predicate
+ */
+
+//@{
+
+/** * Adds a predicate to the expression.
+ * @param thePredicate is added to the expression.
+ * @param theOperator specifies the operation (AND/OR) to be applied.
+ * @warning The parameter thePredicate must not be nil.
+ * @throws NSFUnexpectedParameterException is thrown if the predicate is nil.
+ */
+
+- (void)addPredicate:(NSFNanoPredicate *)thePredicate withOperator:(NSFOperator)theOperator;
+
+//@}
+
+/** @name Miscellaneous
+ */
+
+//@{
+
+/** * Returns a string representation of the expression.
+ * @note Check properties predicates and operators to find out the current state of the expression.
+ */
+
+- (NSString *)description;
+
+//@}
+
+@end
35 vendor/Pods/.build/Pods/NSFNanoExpression_Private.h
View
@@ -0,0 +1,35 @@
+/*
+ NSFNanoExpression_Private.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+#import "NSFNanoExpression.h"
+
+/** \cond */
+
+@interface NSFNanoExpression (Private)
+// Just a placeholder.
+@end
+
+/** \endcond */
323 vendor/Pods/.build/Pods/NSFNanoGlobals.h
View
@@ -0,0 +1,323 @@
+/*
+ NSFNanoGlobals.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+
+/*! @file NSFNanoGlobals.h
+ @brief Public available constants to be used in NanoStore.
+ */
+
+/** * If turned on, NanoStore will log debugging information to Console. */
+extern void NSFSetIsDebugOn (BOOL flag);
+
+/** * Determine whether NanoStore debugging services are turned on. */
+extern BOOL NSFIsDebugOn (void);
+
+/** * The mode used by NSFNanoEngine to manipulate data in the document store.
+ * If FastMode is activated, the document store is opened with all performance turned on (more risky in case of failure). Deactivating it makes it slower,
+ * but safer.
+ *
+ * When FastMode is activated NanoStore continues without pausing as soon as it has handed data off to the operating system.
+ * If the application running NanoStore crashes, the data will be safe, but the database might become corrupted if the operating system crashes
+ * or the computer loses power before that data has been written to the disk surface.
+ * On the other hand, some operations are as much as 50 or more times faster with FastMode activated.
+ *
+ * If FastMode is deactivated, NanoStore will pause at critical moments to make sure that data has actually been written to the disk surface
+ * before continuing. This ensures that if the operating system crashes or if there is a power failure, the database will be uncorrupted after rebooting.
+ * Deactivating FastMode is very safe, but it is also slower.
+ */
+typedef enum {
+ /** * The default mode is slower but safer. */
+ NSFEngineProcessingDefaultMode = 1,
+ /** * The fast mode is very quick but unsafe. */
+ NSFEngineProcessingFastMode
+} NSFEngineProcessingMode;
+
+/** * Datatypes used by NanoStore.
+ @note Additional information can be found on the SQLite website: http://www.sqlite.org/datatype3.html
+ */
+typedef enum {
+ /** * Used when NanoStore doesn't know the datatype it has read back from the document store. Its string value equivalent is <b>UNKNOWN</b>.*/
+ NSFNanoTypeUnknown = -1,
+ /** * Used to define the <i>RowID</i> column type in SQLite tables. Only used if you create your own table via NSFNanoEngine. Its string equivalent is <b>INTEGER</b>. */
+ NSFNanoTypeRowUID,
+ /** * Used to store NSData elements. Its string equivalent is <b>BLOB</b>. */
+ NSFNanoTypeData,
+ /** * Used to store NSString elements. Its string equivalent is <b>BLOB</b>. */
+ NSFNanoTypeString,
+ /** * Used to store NSDate elements in the format <i>yyyy-MM-dd HH:mm:ss:SSS</i>. Its string equivalent is <b>TEXT</b>. */
+ NSFNanoTypeDate,
+ /** * Used to store NSNumber elements. Its string equivalent is <b>REAL</b>. */
+ NSFNanoTypeNumber
+} NSFNanoDatatype;
+
+/** * Returns the name of a NSFNanoDatatype datatype as a string. */
+extern NSString * NSFStringFromNanoDataType (NSFNanoDatatype aNanoDatatype);
+
+/** * Obtains a NSFNanoDatatype datatype by name. */
+extern NSFNanoDatatype NSFNanoDatatypeFromString (NSString *aNanoDatatype);
+
+/** * Types of backing store supported by NanoStore.
+ * These values represent the storage options available when generating a NanoStore.
+ @see NSFNanoStore
+*/
+typedef enum {
+ /** * Create the transient backing store in RAM. Its contents are lost when the process exits. Fastest, uses more RAM. */
+ NSFMemoryStoreType = 1,
+ /** * Create a transient temporary backing store on disk. Its contents are lost when the process exits. Slower, uses less RAM than NSFMemoryStoreType. */
+ NSFTemporaryStoreType,
+ /** * Create a persistant backing store on disk. Its contents are lost when the process exits. Slower, uses less RAM than NSFMemoryStoreType. */
+ NSFPersistentStoreType
+} NSFNanoStoreType;
+
+/** * Aggregate functions.
+ * These functions represent the options available to obtain aggregate results quickly and efficiently.
+ * @note Instead of sum(), total() is invoked instead because sum() will throw an "integer overflow" exception
+ * if all inputs are integers or NULL and an integer overflow occurs at any point during the computation. On
+ * the other hand, total() never throws an integer overflow.
+ @see \link NSFNanoSearch::aggregateOperation:onAttribute: -(NSNumber *)aggregateOperation:(NSFAggregateFunctionType)theFunctionType onAttribute:(NSString *)theAttribute \endlink
+ */
+
+typedef enum {
+ /** * It invokes the avg() function. */
+ NSFAverage = 1,
+ /** * It invokes the count() function. */
+ NSFCount,
+ /** * It invokes the max() function. */
+ NSFMax,
+ /** * It invokes the min() function. */
+ NSFMin,
+ /** * It invokes the total() function. See note above for additional information. */
+ NSFTotal
+} NSFAggregateFunctionType;
+
+/** * Comparison options.
+ * These values represent the options available to some of the classes’ search and comparison methods.
+ @see NSFNanoPredicate, NSFNanoSearch
+ */
+typedef enum {
+ /** * Equal to (case sensitive) */
+ NSFEqualTo = 0,
+ /** * Begins with (case sensitive) */
+ NSFBeginsWith,
+ /** * Contains (case sensitive) */
+ NSFContains,
+ /** * Ends with (case sensitive) */
+ NSFEndsWith,
+
+ /** * Equal to (case insensitive) */
+ NSFInsensitiveEqualTo,
+ /** * Begins with (case insensitive) */
+ NSFInsensitiveBeginsWith,
+ /** * Contains (case insensitive) */
+ NSFInsensitiveContains,
+ /** * Ends with (case insensitive) */
+ NSFInsensitiveEndsWith,
+
+ /** * Greater Ththanan */
+ NSFGreaterThan,
+ /** * Less than */
+ NSFLessThan
+} NSFMatchType;
+
+/** * Column types for the Attributes table.
+ * These values represent the columns available used for searching.
+ @see NSFNanoPredicate
+ */
+typedef enum {
+ /** * The key column. */
+ NSFKeyColumn = 1,
+ /** * The attribute column. */
+ NSFAttributeColumn,
+ /** * The value column. */
+ NSFValueColumn
+} NSFTableColumnType;
+
+/** * Comparison criteria operators.
+ * These values represent the operations available for concatenating predicates in an expression.
+ @see NSFNanoExpression, NSFNanoPredicate
+ */
+typedef enum {
+ /** * And */
+ NSFAnd = 1,
+ /** * Or */
+ NSFOr,
+} NSFOperator;
+
+/** * Date comparison options.
+ * These values represent the options available when searching and comparing dates.
+ @see NSFNanoSearch, NSFNanoPredicate
+ */
+typedef enum {
+ /** * Before the specified date */
+ NSFBeforeDate = 1,
+ /** * On the exact date */
+ NSFOnDate,
+ /** * After the specified date */
+ NSFAfterDate
+} NSFDateMatchType;
+
+/** * Obtaining search results options.
+ * These values represent the options used by the search mechanism to return results.
+ @see NSFNanoSearch
+ */
+typedef enum {
+ /** * Returns the objects. */
+ NSFReturnObjects = 1,
+ /** * Returns the keys */
+ NSFReturnKeys,
+} NSFReturnType;
+
+/** * Caching mechanism options.
+ * These values represent the options used by the search mechanism to cache results.
+ @see NSFNanoEngine
+ */
+typedef enum {
+ /** * Load data at as soon as it's available. Uses more memory, but data is available quicker. */
+ CacheAllData = 1,
+ /** * Loads data lazily. First access to data is slow because it retrieves it from disk, but is faster on subsequent requests because the data already exists in memory. */
+ CacheDataOnDemand,
+ /** * Don't cache data. Slowest mode, uses less memory because it retrieves data from disk every time it's needed. */
+ DoNotCacheData,
+} NSFCacheMethod;
+
+/** * Text encoding options.
+ * The following constants are provided by SQLite as possible string encodings.
+ @see NSFNanoEngine
+ */
+typedef enum {
+ /** * An 8-bit representation of Unicode characters. */
+ NSFEncodingUTF8 = 1,
+ /** * A 16-bit representation of Unicode characters. */
+ NSFEncodingUTF16,
+ /** * The encoding representation could not be determined. */
+ NSFEncodingUnknown
+} NSFEncodingType;
+
+/** * Synchronous options.
+ * These values represent the options used to manipulate the synchronous flag. In NSFNanoEngine it's obtained via
+ * \link NSFNanoEngine::setSynchronousMode: - (void)setSynchronousMode:(NSFSynchronousMode)theSynchronousMode \endlink
+
+ @see NSFNanoStore, NSFNanoEngine
+ */
+typedef enum {
+ /** * SQLite continues without pausing as soon as it has handed data off to the operating system.
+ If the application running SQLite crashes, the data will be safe, but the database might become corrupted if
+ the operating system crashes or the computer loses power before that data has been written to the disk surface.
+ On the other hand, some operations are as much as 50 or more times faster with synchronous OFF. */
+ SynchronousModeOff = 0,
+ /** * SQLite will still pause at the most critical moments, but less often than in FULL mode.
+ There is a very small (though non-zero) chance that a power failure at just the wrong time could corrupt the database
+ in NORMAL mode. But in practice, you are more likely to suffer a catastrophic disk failure or some other unrecoverable
+ hardware fault. */
+ SynchronousModeNormal,
+ /** * SQLite will pause at critical moments to make sure that data has actually been written to
+ the disk surface before continuing. This ensures that if the operating system crashes or if there is a power failure,
+ the database will be uncorrupted after rebooting. FULL synchronous is very safe, but it is also slower. */
+ SynchronousModeFull,
+} NSFSynchronousMode;
+
+/** * Temporary files location options.
+ * These values represent the options used by SQLite to create the temporary files it creates.
+ @see NSFNanoEngine
+ */
+typedef enum {
+ /** * When temp_store is DEFAULT (0), the compile-time C preprocessor macro SQLITE_TEMP_STORE is used to determine
+ where temporary tables and indices are stored. */
+ TempStoreModeDefault = 0,
+ /** * When temp_store is FILE (1) temporary tables and indices are stored in a file. The temp_store_directory pragma
+ can be used to specify the directory containing temporary files when FILE is specified. When the temp_store setting is changed,
+ all existing temporary tables, indices, triggers, and views are immediately deleted. */
+ TempStoreModeFile,
+ /** * When temp_store is MEMORY (2) temporary tables and indices are kept in as if they were pure in-memory databases memory. */
+ TempStoreModeMemory,
+} NSFTempStoreMode;
+
+/** * Journal mode.
+ * These values represent the options used by SQLite to the the journal mode for databases associated with the current database connection.
+ @note Note that the journal_mode for an in-memory database is either MEMORY or OFF and can not be changed to a different value. An attempt to change
+ the journal_mode of an in-memory database to any setting other than MEMORY or OFF is ignored. Note also that the journal_mode cannot be changed
+ while a transaction is active.
+ @see NSFNanoEngine
+ */
+typedef enum {
+ /** * The DELETE journaling mode is the normal behavior. In the DELETE mode, the rollback journal is deleted at the conclusion
+ of each transaction. Indeed, the delete operation is the action that causes the transaction to commit. (See the document titled
+ Atomic Commit In SQLite for additional detail.) */
+ JournalModeDelete = 0,
+ /** * The TRUNCATE journaling mode commits transactions by truncating the rollback journal to zero-length instead of deleting it.
+ On many systems, truncating a file is much faster than deleting the file since the containing directory does not need to be changed. */
+ JournalModeTruncate,
+ /** * The PERSIST journaling mode prevents the rollback journal from being deleted at the end of each transaction. Instead, the header
+ of the journal is overwritten with zeros. This will prevent other database connections from rolling the journal back. The PERSIST
+ journaling mode is useful as an optimization on platforms where deleting or truncating a file is much more expensive than overwriting
+ the first block of a file with zeros. */
+ JournalModePersist,
+ /** * The MEMORY journaling mode stores the rollback journal in volatile RAM. This saves disk I/O but at the expense of database safety
+ and integrity. If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then
+ the database file will very likely go corrupt. */
+ JournalModeMemory,
+ /** * The WAL journaling mode uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is
+ persistent; after being set it stays in effect across multiple database connections and after closing and reopening the database. A database
+ in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. */
+ JournalModeWAL,
+ /** * The OFF journaling mode disables the rollback journal completely. No rollback journal is ever created and hence there is never a
+ rollback journal to delete. The OFF journaling mode disables the atomic commit and rollback capabilities of SQLite. The ROLLBACK command
+ no longer works; it behaves in an undefined way. Applications must avoid using the ROLLBACK command when the journal mode is OFF.
+ If the application crashes in the middle of a transaction when the OFF journaling mode is set, then the database file will very likely go corrupt. */
+ JournalModeOFF
+} NSFJournalModeMode;
+
+/** * Memory-backed document store descriptor.
+ * This value represents the descriptor used by NanoStore to identify memory-backed document stores. In NSFNanoStore is available via
+ * \link NSFNanoStore::filePath - (NSString *)filePath \endlink (assuming the document store was
+ * created as a memory-backed document store). In NSFNanoEngine, it's available via its <i>path</i> property.
+ @see NSFNanoStore, NSFNanoEngine
+ */
+extern NSString * const NSFMemoryDatabase;
+
+/** * Temporary store descriptor.
+ * This value represents the descriptor used by NanoStore to identify temporary document stores. In NSFNanoStore is available via
+ * \link NSFNanoStore::filePath - (NSString *)filePath \endlink (assuming the document store was
+ * created as a temporary document store). In NSFNanoEngine, it's available via its \link NSFNanoEngine::path - (NSString *)path \endlink property.
+ @see NSFNanoStore, NSFNanoEngine
+ */
+extern NSString * const NSFTemporaryDatabase;
+
+/** * NanoStore's error code. This value is used by NanoStore when reporting errors.
+ */
+extern NSInteger const NSFNanoStoreErrorKey;
+
+/** * Exception used when an unexpected parameter has been detected. */
+extern NSString * const NSFUnexpectedParameterException;
+/** * Exception used when a non-confirming NSFNanoObjectProtocol object has been detected. */
+extern NSString * const NSFNonConformingNanoObjectProtocolException;
+/** * Exception used when a NSFNanoObjectProtocol object is not behaving properly (i.e its <i>key</i> property does not return a correct value). */
+extern NSString * const NSFNanoObjectBehaviorException;
+/** * Exception used when a problem occurs while manipulating the document store
+ * (adding, updating, deleting, opening a transaction, commit, etc.).
+ */
+extern NSString * const NSFNanoStoreUnableToManipulateStoreException;
99 vendor/Pods/.build/Pods/NSFNanoGlobals_Private.h
View
@@ -0,0 +1,99 @@
+/*
+ NSFNanoGlobals_Private.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+#import <Foundation/Foundation.h>
+#import "NSFNanoGlobals.h"
+
+/** \cond */
+
+/*
+ The following types are supported by Property Lists:
+
+ CFArray
+ CFDictionary
+ CFData
+ CFString
+ CFDate
+ CFNumber
+ CFBoolean
+
+ Since NanoStore associates an attribute with an atomic value (i.e. non-collection),
+ the following data types are recognized:
+
+ CFData
+ CFString
+ CFDate
+ CFNumber
+
+ Note: there isn't a dedicated data type homologous to CFBoolean in Cocoa. Therefore,
+ NSNumber will be used for that purpose.
+
+ */
+
+extern NSString * NSFStringFromMatchType (NSFMatchType aMatchType);
+
+extern void _NSFLog (NSString *format, ...);
+
+extern NSString * const NSFVersionKey;
+extern NSString * const NSFDomainKey;
+
+extern NSString * const NSFKeys;
+extern NSString * const NSFValues;
+extern NSString * const NSFKey;
+extern NSString * const NSFValue;
+extern NSString * const NSFDatatype;
+extern NSString * const NSFCalendarDate;
+extern NSString * const NSFObjectClass;
+extern NSString * const NSFPlist;
+extern NSString * const NSFAttribute;
+
+#pragma mark -
+
+extern NSString * const NSF_Private_NSFKeys_NSFKey;
+extern NSString * const NSF_Private_NSFKeys_NSFPlist;
+extern NSString * const NSF_Private_NSFValues_NSFKey;
+extern NSString * const NSF_Private_NSFValues_NSFAttribute;
+extern NSString * const NSF_Private_NSFValues_NSFValue;
+extern NSString * const NSF_Private_NSFNanoBag_Name;
+extern NSString * const NSF_Private_NSFNanoBag_NSFKey;
+extern NSString * const NSF_Private_NSFNanoBag_NSFObjectKeys;
+extern NSString * const NSF_Private_ToDeleteTableKey;
+
+extern NSInteger const NSF_Private_InvalidParameterDataCodeKey;
+extern NSInteger const NSF_Private_MacOSXErrorCodeKey;
+
+#pragma mark -
+
+extern NSString * const NSFP_TableIdentifier;
+extern NSString * const NSFP_ColumnIdentifier;
+extern NSString * const NSFP_DatatypeIdentifier;
+extern NSString * const NSFP_FullDatatypeIdentifier;
+
+extern NSString * const NSFRowIDColumnName; // SQLite's standard UID property
+
+extern NSString * const NSFP_SchemaTable; // Private, reserved NSF table name to store datatypes
+
+/** \endcond */
323 vendor/Pods/.build/Pods/NSFNanoObject.h
View
@@ -0,0 +1,323 @@
+/*
+ NSFNanoObject.h
+ NanoStore
+
+ Copyright (c) 2010 Webbo, L.L.C. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without modification, are permitted
+ provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice, this list of conditions
+ and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright notice, this list of conditions
+ and the following disclaimer in the documentation and/or other materials provided with the distribution.
+ * Neither the name of Webbo nor the names of its contributors may be used to endorse or promote
+ products derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+ */
+
+/*! @file NSFNanoObject.h
+ @brief A generic class that implements all the basic behavior required of a NanoStore object.
+ */
+
+/** @class NSFNanoObject
+ The basic unit of data in NanoStore is called NanoObject. A NanoObject is any object which conforms to the NSFNanoObjectProtocol protocol.
+
+ @section notaflatworld_sec It's not a flat World
+
+ Most database solutions force the developer to think in a two-dimensional space (rows and columns), forcing the developer to plan the schema ahead of
+ time. This situation is not ideal because in most cases schema refinements could be required, oftentimes impacting the code as well.
+
+ NanoStore goes beyond that allowing the developer to store objects in their natural form. These objects must conform to the NSFNanoObjectProtocol
+ protocol, providing NanoStore with the NSDictionary that will be stored. By using a dictionary data can be inspected very quickly, and it also allows the
+ structure to be defined in a hierarchical fashion as well, due to the fact that it includes support for nested collections (of type NSDictionary and NSArray.)
+ Each inner-object is indexed automatically, thus allowing to quickly find objects which contain a specific key and/or value.
+
+ By default, NanoStore allows objects to be stored without any sense of relationship to other objects. This simple format, while powerful, is limited because
+ the developer has to keep track of the relationships among objects. Some applications may need to relate objects, some of them perhaps of different nature or class
+ type. This is exactly what NanoBag (represented by the NSFNanoBag class) does: it allows any object conforming to the NSFNanoObjectProtocol protocol to be
+ added to the bag. By saving the bag with one single call, the new and/or modified are taken care of seamlessly.
+
+ The NSFNanoBag API is rich, allowing the developer to add, remove, reload and undo its changes, deflate it (thus saving memory) and inflate it whenever it's
+ required. In addition, it provides methods to obtain all bags, specific bags matching some keys, and bags containing a specific object
+ (see NSFNanoStore for more information).
+
+ <b>Structure of a NanoObject object</b>
+
+ At its core, a NanoObject is nothing more than a wrapper around two properties:
+
+ - A dictionary which contains the metadata (provided by the developer)
+ - A key (UUID) that identifies the object (provided by NanoStore)
+
+ The dictionary <i>must</i> be serializable, which means that only the following data types are allowed:
+
+ - NSArray
+ - NSDictionary
+ - NSString
+ - NSData (*)
+ - NSDate
+ - NSNumber
+
+ (*) The data type NSData is allowed, but it will be excluded from the indexing process.
+
+ To save and retrieve objects from the document store, NanoStore moves the data around by encapsulating it in NanoObjects. In order to store the objects in
+ NanoStore the developer has three options:
+
+ - Use the NSFNanoObject class directly
+ - Expand your custom classes by inheriting from NSFNanoObject
+ - Expand your custom classes by implementing the NSFNanoObjectProtocol protocol
+
+ Regardless of the route you decide to take, NanoStore will be able to store and retrieve objects from the document store seamlessly. The beauty of this system is that
+ NanoStore returns the object as it was stored, that is, instantiating an object of the class that was originally stored.
+
+ @note
+ If the document store is opened by another application that doesn't implement the object that was stored, NanoStore will instantiate a
+ NSFNanoObject instead, thus allowing the app to retrieve the data seamlessly. If the object is then updated by this application, the original
+ class name will be honored.
+
+ <b>Example:</b>
+
+ - App A stores an object of class <i>Car</i>.
+ - App B retrieves the object, but since it doesn't know anything about the class <i>Car</i>, NanoStore returns a NSFNanoObject.
+ - App B updates the object, perhaps adding a timestamp or additional information. NanoStore saves it as a <i>Car</i>, not as a NSFNanoObject.
+ - App A retrieves the updated object as a <i>Car</i> object, in exactly the same format as it was originally stored.
+
+ @section workingwithnanoobject_sec Working with a NanoObject
+
+ There are three basic operations that NanoStore can perform with a NanoObject:
+
+ - Add it to the document store
+ - Update an existing object in the document store
+ - Remove it from the document store
+
+ To add an object, instantiate a \link NSFNanoObject::nanoObject NanoObject, \endlink populate it and add it to the document store.
+
+ @details <b>Example:</b>
+ @code
+ // Instantiate a NanoStore and open it
+ NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFMemoryStoreType path:nil error:nil];
+
+ // Generate an empty NanoObject
+ NSFNanoObject *object = [NSFNanoObject nanoObject];
+
+ // Add some data
+ [object setObject:@"Doe" forKey:@"kLastName"];
+ [object setObject:@"John" forKey:@"kFirstName"];
+ [object setObject:[NSArray arrayWithObjects:@"jdoe@foo.com", @"jdoe@bar.com", nil] forKey:@"kEmails"];
+
+ // Add it to the document store
+ [nanoStore addObject:object error:nil];
+
+ // Close the document store
+ [nanoStore closeWithError:nil];
+ @endcode
+
+ Alternatively, you can instantiate a \link NSFNanoObject::nanoObject NanoObject \endlink providing a dictionary via \link NSFNanoObject::nanoObjectWithDictionary: + (NSFNanoObject*)nanoObjectWithDictionary:(NSDictionary *)theDictionary. \endlink
+ NanoStore will assign a UUID automatically when the \link NSFNanoObject::nanoObjectWithDictionary: NanoObject \endlink
+ is instantiated. This means that requesting the key from the \link NSFNanoObject::nanoObjectWithDictionary: NanoObject \endlink will return a valid UUID.
+ The same holds true for objects that inherit from NSFNanoObject. However, classes that implement the NSFNanoObjectProtocol protocol should
+ make sure they return a valid key via \link NSFNanoObjectProtocol::nanoObjectKey - (NSString *)nanoObjectKey \endlink
+
+ @warning
+ If an attempt is made to add or remove an object without a valid key, an exception of type \ref NSFGlobals::NSFNanoObjectBehaviorException
+ "NSFNanoObjectBehaviorException" will be raised.
+
+ To update an object, simply modify the object and add it to the document store. NanoStore will replace the existing object with the one being added.
+
+ @details <b>Example:</b>
+ @code
+ // Instantiate and open a NanoStore
+ NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFMemoryStoreType path:nil error:nil];
+
+ // Assuming the dictionary exists, instantiate a NanoObject
+ NSDictionary *info = ...;
+ NSFNanoObject *object = [NSFNanoObject nanoObjectWithDictionary:info];
+
+ // Add the NanoObject to the document store
+ [nanoStore addObject:object error:nil];
+
+ // Update the NanoObject with new data
+ [object setObject:@"foo" forKey:@"SomeKey"];
+
+ // Update the NanoObject in the document store
+ [nanoStore addObject:object error:nil];
+ @endcode
+
+ To remove an object, there are several options available. The most common methods are found in NSFNanoStore:
+
+ - \link NSFNanoStore::removeObject:error: - (BOOL)removeObject:(id <NSFNanoObjectProtocol>)theObject error:(out NSError **)outError \endlink
+ - \link NSFNanoStore::removeObjectsWithKeysInArray:error: - (BOOL)removeObjectsWithKeysInArray:(NSArray *)theKeys error:(out NSError **)outError \endlink
+ - \link NSFNanoStore::removeObjectsInArray:error: - (BOOL)removeObjectsInArray:(NSArray *)theObjects error:(out NSError **)outError \endlink
+
+ @details <b>Example:</b>
+ @code
+ // Instantiate and open a NanoStore
+ NSFNanoStore *nanoStore = [NSFNanoStore createAndOpenStoreWithType:NSFMemoryStoreType path:nil error:nil];
+
+ // Assuming the dictionary exists, instantiate a NanoObject
+ NSDictionary *info = ...;
+ NSFNanoObject *object = [NSFNanoObject nanoObjectWithDictionary:info];
+
+ // Add the NanoObject to the document store
+ [nanoStore addObject:object error:nil];
+
+ // Remove the object
+ [nanoStore removeObject:object error:nil];
+
+ // ... or you could pass the key instead
+ [nanoStore removeObjectsWithKeysInArray:[NSArray arrayWithObjects:[object nanoObjectKey], nil] error:nil];
+ @endcode
+ */
+
+#import "NanoStore.h"
+
+@interface NSFNanoObject : NSObject <NSFNanoObjectProtocol, NSCopying>
+
+/** * The UUID of the NanoObject. */
+@property (nonatomic, copy, readonly) NSString *key;
+/** * The user-supplied information of the NanoObject. */
+@property (nonatomic, copy, readonly) NSDictionary *info;
+/** * The class name used to store the NanoObject. */
+@property (nonatomic, copy, readonly) NSString *originalClassString;
+
+/** @name Creating and Initializing a NanoObject
+ */
+
+//@{
+
+/** * Creates and returns an empty NanoObject.
+ * @return An empty NanoObject upon success, nil otherwise.
+ */
+
++ (NSFNanoObject*)nanoObject;
+
+/** * Creates and returns a NanoObject with the given dictionary.
+ * @param theDictionary the information associated with the object. Must not be nil.
+ * @return An initialized object upon success, nil otherwise.
+ * @attention The dictionary must be serializable. For more information, please read the Property List Programming Guide.
+ * @see \link initFromDictionaryRepresentation: - (id)initFromDictionaryRepresentation:(NSDictionary *)theDictionary \endlink
+ */
+
++ (NSFNanoObject*)nanoObjectWithDictionary:(NSDictionary *)theDictionary;
+
+/** * Creates and returns a NanoObject with the given dictionary and key.
+ * @param theDictionary the information associated with the object. Must not be nil.
+ * @param theKey the object key associated with the object. If nil, a new key will be assigned.
+ * @return An initialized object upon success, nil otherwise.
+ * @attention The dictionary must be serializable. For more information, please read the Property List Programming Guide.
+ * @see \link initFromDictionaryRepresentation: - (id)initFromDictionaryRepresentation:(NSDictionary *)theDictionary \endlink
+ */
+
++ (NSFNanoObject*)nanoObjectWithDictionary:(NSDictionary *)theDictionary key:(NSString *)theKey;
+
+/** * Initializes a newly allocated NanoObject with the given dictionary.
+ * @param theDictionary the information associated with the object. Must not be nil.
+ * @return An initialized object upon success, nil otherwise.
+ * @attention The dictionary must be serializable. For more information, please read the Property List Programming Guide.
+ * @see \link nanoObjectWithDictionary: + (NSFNanoObject*)nanoObjectWithDictionary:(NSDictionary *)theDictionary \endlink
+ */
+
+- (id)initFromDictionaryRepresentation:(NSDictionary *)theDictionary;
+
+/** * Initializes a newly allocated NanoObject with the given dictionary and key.
+ * @param theDictionary the information associated with the object. Must not be nil.
+ * @param theKey the object key associated with the object. If nil, a new key will be assigned.
+ * @return An initialized object upon success, nil otherwise.
+ * @attention The dictionary must be serializable. For more information, please read the Property List Programming Guide.
+ */
+
+- (id)initFromDictionaryRepresentation:(NSDictionary *)theDictionary key:(NSString *)theKey;
+
+//@}
+
+/** @name Setting and Removing Contents
+ */
+
+//@{
+
+/** * Adds the entries from a dictionary to the NanoObject.
+ * @param otherDictionary The dictionary from which to add entries.
+*/
+
+- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary;
+
+/** * Adds a given key-value pair to the NanoObject.
+ * @param anObject the value for key. Must not be nil.
+ * @param aKey the key for value. Must not be nil.
+ * @note Raises an NSInvalidArgumentException if <i>aKey</i> or <i>anObject</i> is nil. If you need to represent a nil value in the dictionary, use NSNull.
+ * @see \link removeObjectForKey: - (void)removeObjectForKey:(NSString *)aKey \endlink
+ */
+
+- (void)setObject:(id)anObject forKey:(NSString *)aKey;
+
+/** * Returns the value associated with a given key.
+ * @param aKey the key for value. Must not be nil.
+ * @note Raises an NSInvalidArgumentException if <i>aKey</i> or <i>anObject</i> is nil. If you need to represent a nil value in the dictionary, use NSNull.
+ * @see \link setObject:forKey: - (void)setObject:(id)anObject forKey:(NSString *)aKey \endlink
+ */
+
+- (id)objectForKey:(NSString *)aKey;
+
+/** * Removes a given key and its associated value from the NanoObject.
+ * @param aKey the key to remove. Must not be nil.
+ * @note Does nothing if <i>aKey</i> does not exist.
+ * @see \link setObject:forKey: - (void)setObject:(id)anObject forKey:(NSString *)aKey \endlink
+ */
+
+- (void)removeObjectForKey:(NSString *)aKey;
+
+/** * Empties the NanoObject of its entries.
+ * @see \link removeObjectForKey: - (void)removeObjectForKey:(NSString *)aKey \endlink
+ * @see \link removeObjectsForKeys: - (void)removeObjectsForKeys:(NSArray *)keyArray \endlink
+ */
+
+- (void)removeAllObjects;
+
+/** * Removes from the NanoObject entries specified by elements in a given array.
+ * @param keyArray An array of objects specifying the keys to remove.
+ * @note If a key in <i>keyArray</i> does not exist, the entry is ignored.