ribit 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (650) hide show
  1. data/INSTALL +52 -0
  2. data/LICENSE +343 -0
  3. data/README +42 -0
  4. data/bin/ribit +26 -0
  5. data/bin/ribit-setup +153 -0
  6. data/bin/ribitd +18 -0
  7. data/doc/TODO.txt +207 -0
  8. data/doc/devdiary.txt +258 -0
  9. data/doc/diagrams/content-classes.dia +0 -0
  10. data/doc/diagrams/main-classes.dia +0 -0
  11. data/doc/diagrams/page-rendering-classes.dia +0 -0
  12. data/doc/diagrams/ribitservlet-classes.dia +0 -0
  13. data/doc/examples/xhtml-example.html +64 -0
  14. data/doc/notes.txt +7 -0
  15. data/doc/rdoc/classes/ActionAdapter.html +137 -0
  16. data/doc/rdoc/classes/ActionAdapter.src/M000160.html +26 -0
  17. data/doc/rdoc/classes/ActionElement.html +179 -0
  18. data/doc/rdoc/classes/ActionElement.src/M000204.html +19 -0
  19. data/doc/rdoc/classes/ActionElement.src/M000205.html +18 -0
  20. data/doc/rdoc/classes/ActionManager.html +187 -0
  21. data/doc/rdoc/classes/ActionManager.src/M000237.html +19 -0
  22. data/doc/rdoc/classes/ActionManager.src/M000238.html +22 -0
  23. data/doc/rdoc/classes/ActionManager.src/M000239.html +22 -0
  24. data/doc/rdoc/classes/ActionManager.src/M000240.html +23 -0
  25. data/doc/rdoc/classes/Assert.html +229 -0
  26. data/doc/rdoc/classes/Assert.src/M000369.html +20 -0
  27. data/doc/rdoc/classes/Assert.src/M000370.html +18 -0
  28. data/doc/rdoc/classes/Assert.src/M000371.html +20 -0
  29. data/doc/rdoc/classes/Assert.src/M000372.html +18 -0
  30. data/doc/rdoc/classes/Assert.src/M000373.html +20 -0
  31. data/doc/rdoc/classes/Assert.src/M000374.html +18 -0
  32. data/doc/rdoc/classes/Assert.src/M000375.html +22 -0
  33. data/doc/rdoc/classes/Assert/AssertionFailedException.html +117 -0
  34. data/doc/rdoc/classes/BaseTag.html +166 -0
  35. data/doc/rdoc/classes/BaseTag.src/M000049.html +20 -0
  36. data/doc/rdoc/classes/BoldContainer.html +139 -0
  37. data/doc/rdoc/classes/BoldContainer.src/M000164.html +18 -0
  38. data/doc/rdoc/classes/BoldParser.html +156 -0
  39. data/doc/rdoc/classes/BoldParser.src/M000247.html +18 -0
  40. data/doc/rdoc/classes/BoldParser.src/M000248.html +18 -0
  41. data/doc/rdoc/classes/CachedPage.html +187 -0
  42. data/doc/rdoc/classes/CachedPage.src/M000244.html +20 -0
  43. data/doc/rdoc/classes/CachedPage.src/M000245.html +27 -0
  44. data/doc/rdoc/classes/CachedPage.src/M000246.html +18 -0
  45. data/doc/rdoc/classes/CancelAction.html +179 -0
  46. data/doc/rdoc/classes/CancelAction.src/M000165.html +22 -0
  47. data/doc/rdoc/classes/CancelAction.src/M000166.html +20 -0
  48. data/doc/rdoc/classes/CancelAction.src/M000167.html +21 -0
  49. data/doc/rdoc/classes/CancelCategoryAction.html +164 -0
  50. data/doc/rdoc/classes/CancelCategoryAction.src/M000115.html +22 -0
  51. data/doc/rdoc/classes/CancelCategoryAction.src/M000116.html +20 -0
  52. data/doc/rdoc/classes/CategoriesPage.html +212 -0
  53. data/doc/rdoc/classes/CategoriesPage.src/M000232.html +27 -0
  54. data/doc/rdoc/classes/CategoriesPage.src/M000233.html +18 -0
  55. data/doc/rdoc/classes/CategoriesPage.src/M000234.html +73 -0
  56. data/doc/rdoc/classes/CategoriesPage.src/M000235.html +29 -0
  57. data/doc/rdoc/classes/CategoriesPage.src/M000236.html +59 -0
  58. data/doc/rdoc/classes/CategoryBarActionElement.html +139 -0
  59. data/doc/rdoc/classes/CategoryBarActionElement.src/M000069.html +18 -0
  60. data/doc/rdoc/classes/CategoryBarNextLevelActionElement.html +139 -0
  61. data/doc/rdoc/classes/CategoryBarNextLevelActionElement.src/M000026.html +18 -0
  62. data/doc/rdoc/classes/CategoryFormAction.html +169 -0
  63. data/doc/rdoc/classes/CategoryFormAction.src/M000148.html +18 -0
  64. data/doc/rdoc/classes/CategoryFormAction.src/M000149.html +30 -0
  65. data/doc/rdoc/classes/CategoryFormActionAdapter.html +171 -0
  66. data/doc/rdoc/classes/CategoryFormActionAdapter.src/M000112.html +19 -0
  67. data/doc/rdoc/classes/CategoryFormActionAdapter.src/M000113.html +18 -0
  68. data/doc/rdoc/classes/CategoryFormActionAdapter.src/M000114.html +18 -0
  69. data/doc/rdoc/classes/CompositeAction.html +186 -0
  70. data/doc/rdoc/classes/CompositeAction.src/M000119.html +19 -0
  71. data/doc/rdoc/classes/CompositeAction.src/M000120.html +18 -0
  72. data/doc/rdoc/classes/CompositeAction.src/M000121.html +21 -0
  73. data/doc/rdoc/classes/CompositeAction.src/M000122.html +18 -0
  74. data/doc/rdoc/classes/CompositeLinkActionElement.html +156 -0
  75. data/doc/rdoc/classes/CompositeLinkActionElement.src/M000196.html +20 -0
  76. data/doc/rdoc/classes/CompositeLinkActionElement.src/M000197.html +41 -0
  77. data/doc/rdoc/classes/Constants.html +198 -0
  78. data/doc/rdoc/classes/Container.html +281 -0
  79. data/doc/rdoc/classes/Container.src/M000251.html +19 -0
  80. data/doc/rdoc/classes/Container.src/M000252.html +18 -0
  81. data/doc/rdoc/classes/Container.src/M000253.html +18 -0
  82. data/doc/rdoc/classes/Container.src/M000254.html +18 -0
  83. data/doc/rdoc/classes/Container.src/M000255.html +27 -0
  84. data/doc/rdoc/classes/Container.src/M000256.html +18 -0
  85. data/doc/rdoc/classes/Container.src/M000257.html +18 -0
  86. data/doc/rdoc/classes/Container.src/M000258.html +18 -0
  87. data/doc/rdoc/classes/Container.src/M000259.html +18 -0
  88. data/doc/rdoc/classes/Container.src/M000260.html +23 -0
  89. data/doc/rdoc/classes/ContentDoc.html +236 -0
  90. data/doc/rdoc/classes/ContentDoc.src/M000129.html +22 -0
  91. data/doc/rdoc/classes/ContentDoc.src/M000130.html +18 -0
  92. data/doc/rdoc/classes/ContentDoc.src/M000131.html +20 -0
  93. data/doc/rdoc/classes/ContentDoc.src/M000132.html +18 -0
  94. data/doc/rdoc/classes/ContentDoc.src/M000133.html +18 -0
  95. data/doc/rdoc/classes/ContentDoc.src/M000134.html +18 -0
  96. data/doc/rdoc/classes/ContentDoc.src/M000135.html +18 -0
  97. data/doc/rdoc/classes/ContentParser.html +176 -0
  98. data/doc/rdoc/classes/ContentParser.src/M000176.html +30 -0
  99. data/doc/rdoc/classes/ContentParser.src/M000177.html +28 -0
  100. data/doc/rdoc/classes/ContentParser.src/M000178.html +55 -0
  101. data/doc/rdoc/classes/CurrentList.html +209 -0
  102. data/doc/rdoc/classes/CurrentList.src/M000228.html +19 -0
  103. data/doc/rdoc/classes/CurrentList.src/M000229.html +18 -0
  104. data/doc/rdoc/classes/CurrentList.src/M000230.html +18 -0
  105. data/doc/rdoc/classes/CurrentList.src/M000231.html +18 -0
  106. data/doc/rdoc/classes/DataContainer.html +234 -0
  107. data/doc/rdoc/classes/DataContainer.src/M000101.html +26 -0
  108. data/doc/rdoc/classes/DataContainer.src/M000102.html +24 -0
  109. data/doc/rdoc/classes/DataContainer.src/M000103.html +23 -0
  110. data/doc/rdoc/classes/DataContainer.src/M000104.html +26 -0
  111. data/doc/rdoc/classes/DataContainer.src/M000105.html +22 -0
  112. data/doc/rdoc/classes/DataContainer.src/M000106.html +18 -0
  113. data/doc/rdoc/classes/DataStorage.html +199 -0
  114. data/doc/rdoc/classes/DataStorage.src/M000031.html +23 -0
  115. data/doc/rdoc/classes/DataStorage.src/M000032.html +36 -0
  116. data/doc/rdoc/classes/DataStorage.src/M000033.html +25 -0
  117. data/doc/rdoc/classes/DataStorage.src/M000034.html +30 -0
  118. data/doc/rdoc/classes/DataStorage.src/M000035.html +21 -0
  119. data/doc/rdoc/classes/DefaultAction.html +187 -0
  120. data/doc/rdoc/classes/DefaultAction.src/M000014.html +23 -0
  121. data/doc/rdoc/classes/DefaultAction.src/M000015.html +36 -0
  122. data/doc/rdoc/classes/DefaultAction.src/M000016.html +38 -0
  123. data/doc/rdoc/classes/DefaultLoggerFactory.html +140 -0
  124. data/doc/rdoc/classes/DefaultLoggerFactory.src/M000169.html +19 -0
  125. data/doc/rdoc/classes/DirectLinkContainer.html +156 -0
  126. data/doc/rdoc/classes/DirectLinkContainer.src/M000209.html +19 -0
  127. data/doc/rdoc/classes/DirectLinkContainer.src/M000210.html +18 -0
  128. data/doc/rdoc/classes/DirectLinkParser.html +137 -0
  129. data/doc/rdoc/classes/DirectLinkParser.src/M000168.html +39 -0
  130. data/doc/rdoc/classes/DivTag.html +150 -0
  131. data/doc/rdoc/classes/DivTag.src/M000030.html +19 -0
  132. data/doc/rdoc/classes/EditAction.html +177 -0
  133. data/doc/rdoc/classes/EditAction.src/M000056.html +24 -0
  134. data/doc/rdoc/classes/EditAction.src/M000057.html +64 -0
  135. data/doc/rdoc/classes/EditActionAdapter.html +139 -0
  136. data/doc/rdoc/classes/EditActionAdapter.src/M000002.html +20 -0
  137. data/doc/rdoc/classes/EditCategoryAction.html +176 -0
  138. data/doc/rdoc/classes/EditCategoryAction.src/M000126.html +24 -0
  139. data/doc/rdoc/classes/EditCategoryAction.src/M000127.html +39 -0
  140. data/doc/rdoc/classes/EditCategoryActionAdapter.html +139 -0
  141. data/doc/rdoc/classes/EditCategoryActionAdapter.src/M000021.html +20 -0
  142. data/doc/rdoc/classes/EditCategoryPage.html +242 -0
  143. data/doc/rdoc/classes/EditCategoryPage.src/M000036.html +29 -0
  144. data/doc/rdoc/classes/EditCategoryPage.src/M000037.html +18 -0
  145. data/doc/rdoc/classes/EditCategoryPage.src/M000038.html +18 -0
  146. data/doc/rdoc/classes/EditCategoryPage.src/M000039.html +18 -0
  147. data/doc/rdoc/classes/EditCategoryPage.src/M000040.html +109 -0
  148. data/doc/rdoc/classes/EditCategoryPage.src/M000041.html +60 -0
  149. data/doc/rdoc/classes/EditCategoryPage.src/M000042.html +29 -0
  150. data/doc/rdoc/classes/EditNewActionAdapter.html +156 -0
  151. data/doc/rdoc/classes/EditNewActionAdapter.src/M000220.html +20 -0
  152. data/doc/rdoc/classes/EditNewActionAdapter.src/M000221.html +23 -0
  153. data/doc/rdoc/classes/EditPage.html +212 -0
  154. data/doc/rdoc/classes/EditPage.src/M000064.html +33 -0
  155. data/doc/rdoc/classes/EditPage.src/M000065.html +18 -0
  156. data/doc/rdoc/classes/EditPage.src/M000066.html +18 -0
  157. data/doc/rdoc/classes/EditPage.src/M000067.html +18 -0
  158. data/doc/rdoc/classes/EditPage.src/M000068.html +112 -0
  159. data/doc/rdoc/classes/EmphasisContainer.html +156 -0
  160. data/doc/rdoc/classes/EmphasisContainer.src/M000003.html +20 -0
  161. data/doc/rdoc/classes/EmphasisContainer.src/M000004.html +19 -0
  162. data/doc/rdoc/classes/EmphasisParser.html +176 -0
  163. data/doc/rdoc/classes/EmphasisParser.src/M000076.html +19 -0
  164. data/doc/rdoc/classes/EmphasisParser.src/M000077.html +18 -0
  165. data/doc/rdoc/classes/EmphasisParser.src/M000078.html +45 -0
  166. data/doc/rdoc/classes/EscapeParser.html +137 -0
  167. data/doc/rdoc/classes/EscapeParser.src/M000150.html +26 -0
  168. data/doc/rdoc/classes/ExpireMetaTag.html +139 -0
  169. data/doc/rdoc/classes/ExpireMetaTag.src/M000241.html +18 -0
  170. data/doc/rdoc/classes/FilePersistentStorageHandler.html +207 -0
  171. data/doc/rdoc/classes/FilePersistentStorageHandler.src/M000215.html +27 -0
  172. data/doc/rdoc/classes/FilePersistentStorageHandler.src/M000216.html +21 -0
  173. data/doc/rdoc/classes/FilePersistentStorageHandler.src/M000217.html +19 -0
  174. data/doc/rdoc/classes/FilePersistentStorageHandler.src/M000218.html +19 -0
  175. data/doc/rdoc/classes/FilePersistentStorageHandler.src/M000219.html +20 -0
  176. data/doc/rdoc/classes/FormAction.html +169 -0
  177. data/doc/rdoc/classes/FormAction.src/M000081.html +18 -0
  178. data/doc/rdoc/classes/FormAction.src/M000082.html +30 -0
  179. data/doc/rdoc/classes/FormActionAdapter.html +171 -0
  180. data/doc/rdoc/classes/FormActionAdapter.src/M000086.html +19 -0
  181. data/doc/rdoc/classes/FormActionAdapter.src/M000087.html +18 -0
  182. data/doc/rdoc/classes/FormActionAdapter.src/M000088.html +18 -0
  183. data/doc/rdoc/classes/FormActionElement.html +169 -0
  184. data/doc/rdoc/classes/FormActionElement.src/M000044.html +18 -0
  185. data/doc/rdoc/classes/FormActionElement.src/M000045.html +18 -0
  186. data/doc/rdoc/classes/FormActionElement.src/M000046.html +23 -0
  187. data/doc/rdoc/classes/FormInputTag.html +165 -0
  188. data/doc/rdoc/classes/FormInputTag.src/M000161.html +21 -0
  189. data/doc/rdoc/classes/HiddenFormInputTag.html +139 -0
  190. data/doc/rdoc/classes/HiddenFormInputTag.src/M000027.html +18 -0
  191. data/doc/rdoc/classes/IDataStorage.html +170 -0
  192. data/doc/rdoc/classes/IDataStorage.src/M000382.html +18 -0
  193. data/doc/rdoc/classes/IDataStorage.src/M000383.html +18 -0
  194. data/doc/rdoc/classes/IDataStorage.src/M000384.html +18 -0
  195. data/doc/rdoc/classes/ItalicContainer.html +139 -0
  196. data/doc/rdoc/classes/ItalicContainer.src/M000128.html +18 -0
  197. data/doc/rdoc/classes/ItalicParser.html +156 -0
  198. data/doc/rdoc/classes/ItalicParser.src/M000207.html +18 -0
  199. data/doc/rdoc/classes/ItalicParser.src/M000208.html +18 -0
  200. data/doc/rdoc/classes/LinkActionElement.html +184 -0
  201. data/doc/rdoc/classes/LinkActionElement.src/M000005.html +18 -0
  202. data/doc/rdoc/classes/LinkActionElement.src/M000006.html +18 -0
  203. data/doc/rdoc/classes/LinkActionElement.src/M000007.html +18 -0
  204. data/doc/rdoc/classes/LinkActionElement.src/M000008.html +18 -0
  205. data/doc/rdoc/classes/LinkTag.html +187 -0
  206. data/doc/rdoc/classes/LinkTag.src/M000153.html +34 -0
  207. data/doc/rdoc/classes/LinkTag.src/M000154.html +18 -0
  208. data/doc/rdoc/classes/LinkTag.src/M000155.html +20 -0
  209. data/doc/rdoc/classes/ListContainer.html +156 -0
  210. data/doc/rdoc/classes/ListContainer.src/M000174.html +18 -0
  211. data/doc/rdoc/classes/ListContainer.src/M000175.html +19 -0
  212. data/doc/rdoc/classes/ListItemContainer.html +156 -0
  213. data/doc/rdoc/classes/ListItemContainer.src/M000028.html +19 -0
  214. data/doc/rdoc/classes/ListItemContainer.src/M000029.html +19 -0
  215. data/doc/rdoc/classes/ListParser.html +144 -0
  216. data/doc/rdoc/classes/ListParser.src/M000195.html +147 -0
  217. data/doc/rdoc/classes/ListParserUtils.html +141 -0
  218. data/doc/rdoc/classes/ListParserUtils.src/M000385.html +23 -0
  219. data/doc/rdoc/classes/Localization.html +209 -0
  220. data/doc/rdoc/classes/Localization.src/M000311.html +40 -0
  221. data/doc/rdoc/classes/Localization.src/M000312.html +23 -0
  222. data/doc/rdoc/classes/Log4r.html +111 -0
  223. data/doc/rdoc/classes/Log4r/ExtendedRollingFileOutputter.html +178 -0
  224. data/doc/rdoc/classes/Log4r/ExtendedRollingFileOutputter.src/M000380.html +25 -0
  225. data/doc/rdoc/classes/Log4r/ExtendedRollingFileOutputter.src/M000381.html +33 -0
  226. data/doc/rdoc/classes/LoggerFactory.html +152 -0
  227. data/doc/rdoc/classes/LoggerFactory.src/M000062.html +22 -0
  228. data/doc/rdoc/classes/LoggerFactory.src/M000063.html +18 -0
  229. data/doc/rdoc/classes/MetaTag.html +166 -0
  230. data/doc/rdoc/classes/MetaTag.src/M000118.html +20 -0
  231. data/doc/rdoc/classes/NoCacheMetaTag.html +139 -0
  232. data/doc/rdoc/classes/NoCacheMetaTag.src/M000043.html +18 -0
  233. data/doc/rdoc/classes/PageRequest.html +259 -0
  234. data/doc/rdoc/classes/PageRequest.src/M000179.html +20 -0
  235. data/doc/rdoc/classes/PageRequest.src/M000180.html +18 -0
  236. data/doc/rdoc/classes/PageRequest.src/M000181.html +18 -0
  237. data/doc/rdoc/classes/PageRequest.src/M000182.html +18 -0
  238. data/doc/rdoc/classes/PageRequest.src/M000183.html +19 -0
  239. data/doc/rdoc/classes/PageRequest.src/M000184.html +23 -0
  240. data/doc/rdoc/classes/PageRequest.src/M000185.html +23 -0
  241. data/doc/rdoc/classes/PageRequest.src/M000186.html +19 -0
  242. data/doc/rdoc/classes/PageRequest.src/M000187.html +18 -0
  243. data/doc/rdoc/classes/PageResponse.html +250 -0
  244. data/doc/rdoc/classes/PageResponse.src/M000092.html +18 -0
  245. data/doc/rdoc/classes/PageResponse.src/M000093.html +18 -0
  246. data/doc/rdoc/classes/PageResponse.src/M000094.html +18 -0
  247. data/doc/rdoc/classes/PageResponse.src/M000095.html +18 -0
  248. data/doc/rdoc/classes/PageResponse.src/M000096.html +18 -0
  249. data/doc/rdoc/classes/PageResponse.src/M000097.html +18 -0
  250. data/doc/rdoc/classes/PageResponse.src/M000098.html +18 -0
  251. data/doc/rdoc/classes/PageResponse.src/M000099.html +18 -0
  252. data/doc/rdoc/classes/ParagraphContainer.html +156 -0
  253. data/doc/rdoc/classes/ParagraphContainer.src/M000158.html +19 -0
  254. data/doc/rdoc/classes/ParagraphContainer.src/M000159.html +24 -0
  255. data/doc/rdoc/classes/ParagraphParser.html +137 -0
  256. data/doc/rdoc/classes/ParagraphParser.src/M000151.html +42 -0
  257. data/doc/rdoc/classes/PersistentStorageHandler.html +182 -0
  258. data/doc/rdoc/classes/PersistentStorageHandler.src/M000376.html +18 -0
  259. data/doc/rdoc/classes/PersistentStorageHandler.src/M000377.html +18 -0
  260. data/doc/rdoc/classes/PersistentStorageHandler.src/M000378.html +18 -0
  261. data/doc/rdoc/classes/PersistentStorageHandler.src/M000379.html +18 -0
  262. data/doc/rdoc/classes/Pid.html +182 -0
  263. data/doc/rdoc/classes/Pid.src/M000083.html +18 -0
  264. data/doc/rdoc/classes/Pid.src/M000084.html +24 -0
  265. data/doc/rdoc/classes/Pid.src/M000085.html +18 -0
  266. data/doc/rdoc/classes/Properties.html +184 -0
  267. data/doc/rdoc/classes/Properties.src/M000058.html +18 -0
  268. data/doc/rdoc/classes/Properties.src/M000059.html +18 -0
  269. data/doc/rdoc/classes/Properties.src/M000060.html +18 -0
  270. data/doc/rdoc/classes/Properties.src/M000061.html +27 -0
  271. data/doc/rdoc/classes/PropertyList.html +187 -0
  272. data/doc/rdoc/classes/PropertyList.src/M000017.html +19 -0
  273. data/doc/rdoc/classes/PropertyList.src/M000018.html +23 -0
  274. data/doc/rdoc/classes/PropertyList.src/M000019.html +23 -0
  275. data/doc/rdoc/classes/PropertyList.src/M000020.html +18 -0
  276. data/doc/rdoc/classes/RawAttribute.html +154 -0
  277. data/doc/rdoc/classes/RawAttribute.src/M000249.html +20 -0
  278. data/doc/rdoc/classes/RawAttribute.src/M000250.html +21 -0
  279. data/doc/rdoc/classes/RawPage.html +171 -0
  280. data/doc/rdoc/classes/RawPage.src/M000107.html +19 -0
  281. data/doc/rdoc/classes/RawPage.src/M000108.html +18 -0
  282. data/doc/rdoc/classes/RawPage.src/M000109.html +18 -0
  283. data/doc/rdoc/classes/ReferenceLinkContainer.html +156 -0
  284. data/doc/rdoc/classes/ReferenceLinkContainer.src/M000213.html +20 -0
  285. data/doc/rdoc/classes/ReferenceLinkContainer.src/M000214.html +19 -0
  286. data/doc/rdoc/classes/Ribit.html +124 -0
  287. data/doc/rdoc/classes/Ribit/ContentStore.html +236 -0
  288. data/doc/rdoc/classes/Ribit/ContentStore.src/M000304.html +23 -0
  289. data/doc/rdoc/classes/Ribit/ContentStore.src/M000305.html +29 -0
  290. data/doc/rdoc/classes/Ribit/ContentStore.src/M000306.html +25 -0
  291. data/doc/rdoc/classes/Ribit/ContentStore.src/M000307.html +49 -0
  292. data/doc/rdoc/classes/Ribit/ContentStore.src/M000308.html +18 -0
  293. data/doc/rdoc/classes/Ribit/ContentStore.src/M000309.html +73 -0
  294. data/doc/rdoc/classes/Ribit/ContentStore.src/M000310.html +51 -0
  295. data/doc/rdoc/classes/Ribit/FileWriter.html +162 -0
  296. data/doc/rdoc/classes/Ribit/FileWriter.src/M000289.html +19 -0
  297. data/doc/rdoc/classes/Ribit/FileWriter.src/M000290.html +32 -0
  298. data/doc/rdoc/classes/Ribit/Repository.html +174 -0
  299. data/doc/rdoc/classes/Ribit/Repository.src/M000276.html +18 -0
  300. data/doc/rdoc/classes/Ribit/Repository.src/M000277.html +18 -0
  301. data/doc/rdoc/classes/Ribit/Repository.src/M000278.html +18 -0
  302. data/doc/rdoc/classes/Ribit/RibitLogger.html +137 -0
  303. data/doc/rdoc/classes/Ribit/RibitLogger.src/M000301.html +18 -0
  304. data/doc/rdoc/classes/Ribit/RibitLoggerConfig.html +182 -0
  305. data/doc/rdoc/classes/Ribit/RibitLoggerConfig.src/M000279.html +18 -0
  306. data/doc/rdoc/classes/Ribit/RibitLoggerConfig.src/M000280.html +23 -0
  307. data/doc/rdoc/classes/Ribit/RibitLoggerConfig.src/M000281.html +21 -0
  308. data/doc/rdoc/classes/Ribit/RibitLoggerConfig.src/M000282.html +18 -0
  309. data/doc/rdoc/classes/Ribit/RibitLoggerFactory.html +154 -0
  310. data/doc/rdoc/classes/Ribit/RibitLoggerFactory.src/M000287.html +18 -0
  311. data/doc/rdoc/classes/Ribit/RibitLoggerFactory.src/M000288.html +25 -0
  312. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.html +229 -0
  313. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.src/M000294.html +26 -0
  314. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.src/M000295.html +18 -0
  315. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.src/M000296.html +18 -0
  316. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.src/M000297.html +18 -0
  317. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.src/M000298.html +18 -0
  318. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.src/M000299.html +18 -0
  319. data/doc/rdoc/classes/Ribit/RibitLoggerImpl.src/M000300.html +18 -0
  320. data/doc/rdoc/classes/Ribit/RibitLoggerWrapper.html +210 -0
  321. data/doc/rdoc/classes/Ribit/RibitLoggerWrapper.src/M000291.html +20 -0
  322. data/doc/rdoc/classes/Ribit/RibitLoggerWrapper.src/M000292.html +32 -0
  323. data/doc/rdoc/classes/Ribit/RibitLoggerWrapper.src/M000293.html +18 -0
  324. data/doc/rdoc/classes/Ribit/Writer.html +163 -0
  325. data/doc/rdoc/classes/Ribit/Writer.src/M000302.html +18 -0
  326. data/doc/rdoc/classes/Ribit/Writer.src/M000303.html +21 -0
  327. data/doc/rdoc/classes/RibitConfig.html +247 -0
  328. data/doc/rdoc/classes/RibitConfig.src/M000072.html +32 -0
  329. data/doc/rdoc/classes/RibitConfig.src/M000073.html +18 -0
  330. data/doc/rdoc/classes/RibitConfig.src/M000074.html +18 -0
  331. data/doc/rdoc/classes/RibitConfig.src/M000075.html +18 -0
  332. data/doc/rdoc/classes/RibitConfigParser.html +140 -0
  333. data/doc/rdoc/classes/RibitConfigParser.src/M000117.html +45 -0
  334. data/doc/rdoc/classes/RibitData.html +128 -0
  335. data/doc/rdoc/classes/RibitData/CategoriesWriter.html +169 -0
  336. data/doc/rdoc/classes/RibitData/CategoriesWriter.src/M000338.html +18 -0
  337. data/doc/rdoc/classes/RibitData/CategoriesWriter.src/M000339.html +27 -0
  338. data/doc/rdoc/classes/RibitData/CategoriesWriter.src/M000340.html +24 -0
  339. data/doc/rdoc/classes/RibitData/Category.html +485 -0
  340. data/doc/rdoc/classes/RibitData/Category.src/M000313.html +27 -0
  341. data/doc/rdoc/classes/RibitData/Category.src/M000314.html +36 -0
  342. data/doc/rdoc/classes/RibitData/Category.src/M000315.html +22 -0
  343. data/doc/rdoc/classes/RibitData/Category.src/M000316.html +18 -0
  344. data/doc/rdoc/classes/RibitData/Category.src/M000317.html +18 -0
  345. data/doc/rdoc/classes/RibitData/Category.src/M000318.html +18 -0
  346. data/doc/rdoc/classes/RibitData/Category.src/M000319.html +18 -0
  347. data/doc/rdoc/classes/RibitData/Category.src/M000320.html +18 -0
  348. data/doc/rdoc/classes/RibitData/Category.src/M000321.html +18 -0
  349. data/doc/rdoc/classes/RibitData/Category.src/M000322.html +18 -0
  350. data/doc/rdoc/classes/RibitData/Category.src/M000323.html +18 -0
  351. data/doc/rdoc/classes/RibitData/Category.src/M000324.html +18 -0
  352. data/doc/rdoc/classes/RibitData/Category.src/M000325.html +18 -0
  353. data/doc/rdoc/classes/RibitData/Category.src/M000326.html +18 -0
  354. data/doc/rdoc/classes/RibitData/Category.src/M000327.html +36 -0
  355. data/doc/rdoc/classes/RibitData/Category.src/M000328.html +18 -0
  356. data/doc/rdoc/classes/RibitData/Category.src/M000329.html +48 -0
  357. data/doc/rdoc/classes/RibitData/Category.src/M000330.html +45 -0
  358. data/doc/rdoc/classes/RibitData/Category.src/M000331.html +30 -0
  359. data/doc/rdoc/classes/RibitData/Category.src/M000332.html +25 -0
  360. data/doc/rdoc/classes/RibitData/Category.src/M000333.html +18 -0
  361. data/doc/rdoc/classes/RibitData/CategoryParser.html +217 -0
  362. data/doc/rdoc/classes/RibitData/CategoryParser.src/M000357.html +18 -0
  363. data/doc/rdoc/classes/RibitData/CategoryParser.src/M000358.html +29 -0
  364. data/doc/rdoc/classes/RibitData/CategoryParser.src/M000359.html +31 -0
  365. data/doc/rdoc/classes/RibitData/CategoryParser.src/M000360.html +27 -0
  366. data/doc/rdoc/classes/RibitData/CategoryParser.src/M000361.html +45 -0
  367. data/doc/rdoc/classes/RibitData/Page.html +313 -0
  368. data/doc/rdoc/classes/RibitData/Page.src/M000362.html +33 -0
  369. data/doc/rdoc/classes/RibitData/Page.src/M000363.html +22 -0
  370. data/doc/rdoc/classes/RibitData/Page.src/M000364.html +18 -0
  371. data/doc/rdoc/classes/RibitData/Page.src/M000365.html +18 -0
  372. data/doc/rdoc/classes/RibitData/Page.src/M000366.html +18 -0
  373. data/doc/rdoc/classes/RibitData/Page.src/M000367.html +46 -0
  374. data/doc/rdoc/classes/RibitData/Page.src/M000368.html +26 -0
  375. data/doc/rdoc/classes/RibitData/PageParser.html +190 -0
  376. data/doc/rdoc/classes/RibitData/PageParser.src/M000334.html +19 -0
  377. data/doc/rdoc/classes/RibitData/PageParser.src/M000335.html +32 -0
  378. data/doc/rdoc/classes/RibitData/PageParser.src/M000336.html +42 -0
  379. data/doc/rdoc/classes/RibitData/PageParser.src/M000337.html +21 -0
  380. data/doc/rdoc/classes/RibitData/RibitData.html +389 -0
  381. data/doc/rdoc/classes/RibitData/RibitData.src/M000341.html +26 -0
  382. data/doc/rdoc/classes/RibitData/RibitData.src/M000342.html +22 -0
  383. data/doc/rdoc/classes/RibitData/RibitData.src/M000343.html +18 -0
  384. data/doc/rdoc/classes/RibitData/RibitData.src/M000344.html +36 -0
  385. data/doc/rdoc/classes/RibitData/RibitData.src/M000345.html +18 -0
  386. data/doc/rdoc/classes/RibitData/RibitData.src/M000346.html +25 -0
  387. data/doc/rdoc/classes/RibitData/RibitData.src/M000347.html +18 -0
  388. data/doc/rdoc/classes/RibitData/RibitData.src/M000348.html +22 -0
  389. data/doc/rdoc/classes/RibitData/RibitData.src/M000349.html +18 -0
  390. data/doc/rdoc/classes/RibitData/RibitData.src/M000350.html +30 -0
  391. data/doc/rdoc/classes/RibitData/RibitData.src/M000351.html +18 -0
  392. data/doc/rdoc/classes/RibitData/RibitData.src/M000352.html +48 -0
  393. data/doc/rdoc/classes/RibitData/RibitData.src/M000353.html +30 -0
  394. data/doc/rdoc/classes/RibitData/RibitData.src/M000354.html +22 -0
  395. data/doc/rdoc/classes/RibitData/RibitData.src/M000355.html +22 -0
  396. data/doc/rdoc/classes/RibitData/RibitData.src/M000356.html +22 -0
  397. data/doc/rdoc/classes/RibitData/RibitDataException.html +113 -0
  398. data/doc/rdoc/classes/RibitException.html +117 -0
  399. data/doc/rdoc/classes/RibitLinkContainer.html +156 -0
  400. data/doc/rdoc/classes/RibitLinkContainer.src/M000211.html +85 -0
  401. data/doc/rdoc/classes/RibitLinkContainer.src/M000212.html +18 -0
  402. data/doc/rdoc/classes/RibitLinkParser.html +137 -0
  403. data/doc/rdoc/classes/RibitLinkParser.src/M000100.html +50 -0
  404. data/doc/rdoc/classes/RibitServlet.html +196 -0
  405. data/doc/rdoc/classes/RibitServlet.src/M000222.html +37 -0
  406. data/doc/rdoc/classes/RibitServlet.src/M000223.html +53 -0
  407. data/doc/rdoc/classes/RibitServlet.src/M000224.html +39 -0
  408. data/doc/rdoc/classes/RibitServlet.src/M000225.html +19 -0
  409. data/doc/rdoc/classes/RootContainer.html +139 -0
  410. data/doc/rdoc/classes/RootContainer.src/M000206.html +19 -0
  411. data/doc/rdoc/classes/SaveAction.html +164 -0
  412. data/doc/rdoc/classes/SaveAction.src/M000162.html +24 -0
  413. data/doc/rdoc/classes/SaveAction.src/M000163.html +116 -0
  414. data/doc/rdoc/classes/SaveCategoryAction.html +164 -0
  415. data/doc/rdoc/classes/SaveCategoryAction.src/M000047.html +24 -0
  416. data/doc/rdoc/classes/SaveCategoryAction.src/M000048.html +97 -0
  417. data/doc/rdoc/classes/SectionContainer.html +156 -0
  418. data/doc/rdoc/classes/SectionContainer.src/M000070.html +19 -0
  419. data/doc/rdoc/classes/SectionContainer.src/M000071.html +20 -0
  420. data/doc/rdoc/classes/SectionParser.html +137 -0
  421. data/doc/rdoc/classes/SectionParser.src/M000152.html +41 -0
  422. data/doc/rdoc/classes/SelectOptionTag.html +177 -0
  423. data/doc/rdoc/classes/SelectOptionTag.src/M000156.html +22 -0
  424. data/doc/rdoc/classes/SelectOptionTag.src/M000157.html +18 -0
  425. data/doc/rdoc/classes/StyleSheetAction.html +182 -0
  426. data/doc/rdoc/classes/StyleSheetAction.src/M000226.html +31 -0
  427. data/doc/rdoc/classes/StyleSheetAction.src/M000227.html +36 -0
  428. data/doc/rdoc/classes/TextContainer.html +214 -0
  429. data/doc/rdoc/classes/TextContainer.src/M000050.html +19 -0
  430. data/doc/rdoc/classes/TextContainer.src/M000051.html +18 -0
  431. data/doc/rdoc/classes/TextContainer.src/M000052.html +18 -0
  432. data/doc/rdoc/classes/TextContainer.src/M000053.html +18 -0
  433. data/doc/rdoc/classes/TextContainer.src/M000054.html +18 -0
  434. data/doc/rdoc/classes/TextContainer.src/M000055.html +18 -0
  435. data/doc/rdoc/classes/TextPage.html +226 -0
  436. data/doc/rdoc/classes/TextPage.src/M000198.html +29 -0
  437. data/doc/rdoc/classes/TextPage.src/M000199.html +18 -0
  438. data/doc/rdoc/classes/TextPage.src/M000200.html +54 -0
  439. data/doc/rdoc/classes/TextPage.src/M000201.html +36 -0
  440. data/doc/rdoc/classes/TextPage.src/M000202.html +46 -0
  441. data/doc/rdoc/classes/TextPage.src/M000203.html +25 -0
  442. data/doc/rdoc/classes/URL.html +182 -0
  443. data/doc/rdoc/classes/URL.src/M000123.html +24 -0
  444. data/doc/rdoc/classes/URL.src/M000124.html +19 -0
  445. data/doc/rdoc/classes/URL.src/M000125.html +35 -0
  446. data/doc/rdoc/classes/UnformattedContentContainer.html +156 -0
  447. data/doc/rdoc/classes/UnformattedContentContainer.src/M000079.html +20 -0
  448. data/doc/rdoc/classes/UnformattedContentContainer.src/M000080.html +20 -0
  449. data/doc/rdoc/classes/UnformattedContentParser.html +137 -0
  450. data/doc/rdoc/classes/UnformattedContentParser.src/M000194.html +49 -0
  451. data/doc/rdoc/classes/ViewAction.html +221 -0
  452. data/doc/rdoc/classes/ViewAction.src/M000009.html +25 -0
  453. data/doc/rdoc/classes/ViewAction.src/M000010.html +20 -0
  454. data/doc/rdoc/classes/ViewAction.src/M000011.html +77 -0
  455. data/doc/rdoc/classes/ViewAction.src/M000012.html +18 -0
  456. data/doc/rdoc/classes/ViewAction.src/M000013.html +22 -0
  457. data/doc/rdoc/classes/ViewActionAdapter.html +186 -0
  458. data/doc/rdoc/classes/ViewActionAdapter.src/M000022.html +20 -0
  459. data/doc/rdoc/classes/ViewActionAdapter.src/M000023.html +24 -0
  460. data/doc/rdoc/classes/ViewActionAdapter.src/M000024.html +20 -0
  461. data/doc/rdoc/classes/ViewActionAdapter.src/M000025.html +21 -0
  462. data/doc/rdoc/classes/ViewCategoriesAction.html +211 -0
  463. data/doc/rdoc/classes/ViewCategoriesAction.src/M000261.html +25 -0
  464. data/doc/rdoc/classes/ViewCategoriesAction.src/M000262.html +20 -0
  465. data/doc/rdoc/classes/ViewCategoriesAction.src/M000263.html +61 -0
  466. data/doc/rdoc/classes/ViewCategoriesAction.src/M000264.html +22 -0
  467. data/doc/rdoc/classes/ViewCategoriesActionAdapter.html +171 -0
  468. data/doc/rdoc/classes/ViewCategoriesActionAdapter.src/M000089.html +18 -0
  469. data/doc/rdoc/classes/ViewCategoriesActionAdapter.src/M000090.html +24 -0
  470. data/doc/rdoc/classes/ViewCategoriesActionAdapter.src/M000091.html +18 -0
  471. data/doc/rdoc/classes/W3CValidatorLinkActionAdapter.html +156 -0
  472. data/doc/rdoc/classes/W3CValidatorLinkActionAdapter.src/M000110.html +26 -0
  473. data/doc/rdoc/classes/W3CValidatorLinkActionAdapter.src/M000111.html +18 -0
  474. data/doc/rdoc/classes/WebAction.html +165 -0
  475. data/doc/rdoc/classes/WebAction.src/M000242.html +18 -0
  476. data/doc/rdoc/classes/WebAction.src/M000243.html +19 -0
  477. data/doc/rdoc/classes/WebPage.html +184 -0
  478. data/doc/rdoc/classes/WebPage.src/M000170.html +17 -0
  479. data/doc/rdoc/classes/WebPage.src/M000171.html +19 -0
  480. data/doc/rdoc/classes/WebPage.src/M000172.html +18 -0
  481. data/doc/rdoc/classes/WebPage.src/M000173.html +18 -0
  482. data/doc/rdoc/classes/XHTMLDocument.html +377 -0
  483. data/doc/rdoc/classes/XHTMLDocument.src/M000136.html +26 -0
  484. data/doc/rdoc/classes/XHTMLDocument.src/M000137.html +40 -0
  485. data/doc/rdoc/classes/XHTMLDocument.src/M000138.html +20 -0
  486. data/doc/rdoc/classes/XHTMLDocument.src/M000139.html +18 -0
  487. data/doc/rdoc/classes/XHTMLDocument.src/M000140.html +18 -0
  488. data/doc/rdoc/classes/XHTMLDocument.src/M000141.html +19 -0
  489. data/doc/rdoc/classes/XHTMLDocument.src/M000142.html +21 -0
  490. data/doc/rdoc/classes/XHTMLDocument.src/M000143.html +30 -0
  491. data/doc/rdoc/classes/XHTMLDocument.src/M000144.html +18 -0
  492. data/doc/rdoc/classes/XHTMLDocument.src/M000145.html +18 -0
  493. data/doc/rdoc/classes/XHTMLDocument.src/M000146.html +23 -0
  494. data/doc/rdoc/classes/XHTMLDocument.src/M000147.html +18 -0
  495. data/doc/rdoc/classes/XHTMLException.html +117 -0
  496. data/doc/rdoc/classes/XHTMLPage.html +225 -0
  497. data/doc/rdoc/classes/XHTMLPage.src/M000188.html +20 -0
  498. data/doc/rdoc/classes/XHTMLPage.src/M000189.html +18 -0
  499. data/doc/rdoc/classes/XHTMLPage.src/M000190.html +44 -0
  500. data/doc/rdoc/classes/XHTMLPage.src/M000191.html +18 -0
  501. data/doc/rdoc/classes/XHTMLPage.src/M000192.html +54 -0
  502. data/doc/rdoc/classes/XHTMLPage.src/M000193.html +22 -0
  503. data/doc/rdoc/created.rid +1 -0
  504. data/doc/rdoc/files/CHANGES.html +150 -0
  505. data/doc/rdoc/files/INSTALL.html +169 -0
  506. data/doc/rdoc/files/LICENSE.html +449 -0
  507. data/doc/rdoc/files/README.html +176 -0
  508. data/doc/rdoc/files/lib/common/assert_rb.html +101 -0
  509. data/doc/rdoc/files/lib/common/cvs_rb.html +116 -0
  510. data/doc/rdoc/files/lib/common/datastorage_rb.html +108 -0
  511. data/doc/rdoc/files/lib/common/loggerfactory_rb.html +108 -0
  512. data/doc/rdoc/files/lib/common/pid_rb.html +101 -0
  513. data/doc/rdoc/files/lib/common/properties_rb.html +101 -0
  514. data/doc/rdoc/files/lib/common/url_rb.html +108 -0
  515. data/doc/rdoc/files/lib/log4r/outputter/extendedrollingfileoutputter_rb.html +111 -0
  516. data/doc/rdoc/files/lib/ribit/action_rb.html +116 -0
  517. data/doc/rdoc/files/lib/ribit/actionelement_rb.html +108 -0
  518. data/doc/rdoc/files/lib/ribit/common_rb.html +130 -0
  519. data/doc/rdoc/files/lib/ribit/common_rb.src/M000001.html +25 -0
  520. data/doc/rdoc/files/lib/ribit/config_rb.html +116 -0
  521. data/doc/rdoc/files/lib/ribit/constants_rb.html +101 -0
  522. data/doc/rdoc/files/lib/ribit/contentparser_rb.html +112 -0
  523. data/doc/rdoc/files/lib/ribit/contentstore_rb.html +112 -0
  524. data/doc/rdoc/files/lib/ribit/localization_rb.html +108 -0
  525. data/doc/rdoc/files/lib/ribit/main_rb.html +120 -0
  526. data/doc/rdoc/files/lib/ribit/ribit_rb.html +123 -0
  527. data/doc/rdoc/files/lib/ribit/ribitdata_rb.html +112 -0
  528. data/doc/rdoc/files/lib/ribit/ribitlogger_rb.html +111 -0
  529. data/doc/rdoc/files/lib/ribit/webpage_rb.html +118 -0
  530. data/doc/rdoc/files/lib/ribit/xhtmldocument_rb.html +109 -0
  531. data/doc/rdoc/files/lib/ribit/xhtmltag_rb.html +109 -0
  532. data/doc/rdoc/fr_class_index.html +150 -0
  533. data/doc/rdoc/fr_file_index.html +53 -0
  534. data/doc/rdoc/fr_method_index.html +411 -0
  535. data/doc/rdoc/index.html +24 -0
  536. data/doc/rdoc/rdoc-style.css +208 -0
  537. data/doc/spec.txt +42 -0
  538. data/doc/test_run_25052005.txt +108 -0
  539. data/doc/testplan.txt +87 -0
  540. data/doc/www/index.html +5 -0
  541. data/lib/common/assert.rb +72 -0
  542. data/lib/common/cvs.rb +201 -0
  543. data/lib/common/datastorage.rb +265 -0
  544. data/lib/common/loggerfactory.rb +56 -0
  545. data/lib/common/pid.rb +44 -0
  546. data/lib/common/properties.rb +89 -0
  547. data/lib/common/url.rb +64 -0
  548. data/lib/log4r/outputter/extendedrollingfileoutputter.rb +73 -0
  549. data/lib/ribit/action.rb +1106 -0
  550. data/lib/ribit/actionelement.rb +152 -0
  551. data/lib/ribit/common.rb +34 -0
  552. data/lib/ribit/config.rb +123 -0
  553. data/lib/ribit/constants.rb +50 -0
  554. data/lib/ribit/contentparser.rb +1111 -0
  555. data/lib/ribit/contentstore.rb +406 -0
  556. data/lib/ribit/localization.rb +76 -0
  557. data/lib/ribit/main.rb +114 -0
  558. data/lib/ribit/ribit.rb +319 -0
  559. data/lib/ribit/ribitdata.rb +909 -0
  560. data/lib/ribit/ribitlogger.rb +192 -0
  561. data/lib/ribit/webpage.rb +802 -0
  562. data/lib/ribit/xhtmldocument.rb +148 -0
  563. data/lib/ribit/xhtmltag.rb +189 -0
  564. data/share/config/content/1/1.xml +6 -0
  565. data/share/config/content/1/2.xml +6 -0
  566. data/share/config/content/1/3.xml +6 -0
  567. data/share/config/content/1/4.xml +6 -0
  568. data/share/config/content/1/5.xml +6 -0
  569. data/share/config/content/1/category.xml +7 -0
  570. data/share/config/content/1/files/edit-category-template.html +59 -0
  571. data/share/config/content/1/files/edit-template.html +88 -0
  572. data/share/config/content/1/files/localization_en.properties +11 -0
  573. data/share/config/content/1/files/ribit.css +215 -0
  574. data/share/config/content/1/files/view-template.html +50 -0
  575. data/share/config/content/2/1.xml +19 -0
  576. data/share/config/content/2/2.xml +54 -0
  577. data/share/config/content/2/category.xml +5 -0
  578. data/share/config/content/3/1.xml +11 -0
  579. data/share/config/content/3/3.xml +17 -0
  580. data/share/config/content/3/4.xml +28 -0
  581. data/share/config/content/3/category.xml +5 -0
  582. data/share/config/content/categories.xml +12 -0
  583. data/share/config/ribitconfig.xml +48 -0
  584. data/share/config/ribitconfig_dev.xml +41 -0
  585. data/share/config/ribitconfig_local.xml +39 -0
  586. data/share/test/config/content/1/1.xml +6 -0
  587. data/share/test/config/content/1/2.xml +6 -0
  588. data/share/test/config/content/1/3.xml +6 -0
  589. data/share/test/config/content/1/4.xml +6 -0
  590. data/share/test/config/content/1/category.xml +4 -0
  591. data/share/test/config/content/1/files/edit-template.html +50 -0
  592. data/share/test/config/content/1/files/localization_en.properties +4 -0
  593. data/share/test/config/content/1/files/ribit.css +139 -0
  594. data/share/test/config/content/1/files/view-template.html +36 -0
  595. data/share/test/config/content/2/1.xml +16 -0
  596. data/share/test/config/content/2/2.xml +25 -0
  597. data/share/test/config/content/2/category.xml +4 -0
  598. data/share/test/config/content/categories.xml +11 -0
  599. data/share/test/config/content/ribitdata.xml +348 -0
  600. data/share/test/config/ribitconfig.xml +36 -0
  601. data/share/test/test1.xml +13 -0
  602. data/share/test/test2.xml +17 -0
  603. data/share/test/test3.xml +5 -0
  604. data/test/alltests.rb +35 -0
  605. data/test/common/allcommontests.rb +40 -0
  606. data/test/common/asserttest.rb +71 -0
  607. data/test/common/cvstest.rb +117 -0
  608. data/test/common/datastoragetest.rb +151 -0
  609. data/test/common/filepersistentstoragehandlertest.rb +105 -0
  610. data/test/common/propertiestest.rb +77 -0
  611. data/test/common/urltest.rb +70 -0
  612. data/test/log4r/outputter/alllog4routputtertests.rb +28 -0
  613. data/test/log4r/outputter/extendedrollingfileoutputtertest.rb +77 -0
  614. data/test/mock/mock.rb +147 -0
  615. data/test/ribit/actionadaptertest.rb +58 -0
  616. data/test/ribit/actionelementtest.rb +147 -0
  617. data/test/ribit/actionmanagertest.rb +55 -0
  618. data/test/ribit/allribittests.rb +62 -0
  619. data/test/ribit/categoryformactiontest.rb +153 -0
  620. data/test/ribit/configtest.rb +43 -0
  621. data/test/ribit/contentparsertest.rb +404 -0
  622. data/test/ribit/contentstorestub.rb +64 -0
  623. data/test/ribit/contentstoretest.rb +222 -0
  624. data/test/ribit/editcategorypagetest.rb +121 -0
  625. data/test/ribit/formactiontest.rb +367 -0
  626. data/test/ribit/localizationtest.rb +65 -0
  627. data/test/ribit/loggertest.rb +44 -0
  628. data/test/ribit/misc/allmisctests.rb +32 -0
  629. data/test/ribit/misc/amritatest.rb +24 -0
  630. data/test/ribit/misc/debugservlet.rb +63 -0
  631. data/test/ribit/misc/postsevlet.rb +36 -0
  632. data/test/ribit/misc/rexmlcdatatest.rb +17 -0
  633. data/test/ribit/misc/rexmldoctypetest.rb +20 -0
  634. data/test/ribit/misc/rexmlreadtest.rb +13 -0
  635. data/test/ribit/misc/rexmlwritetest.rb +28 -0
  636. data/test/ribit/misc/rubytest.rb +184 -0
  637. data/test/ribit/misc/suidtest.rb +21 -0
  638. data/test/ribit/misc/suite.rb +12 -0
  639. data/test/ribit/misc/wwwtest.rb +68 -0
  640. data/test/ribit/pagerequesttest.rb +74 -0
  641. data/test/ribit/ribitdatatest.rb +404 -0
  642. data/test/ribit/ribitservlettest.rb +94 -0
  643. data/test/ribit/testdata/ribittestdata.rb +49 -0
  644. data/test/ribit/testutil/ribitstub.rb +83 -0
  645. data/test/ribit/testutil/ribittestcase.rb +66 -0
  646. data/test/ribit/viewactiontest.rb +332 -0
  647. data/test/ribit/webpagetest.rb +531 -0
  648. data/test/ribit/xhtmldocumenttest.rb +263 -0
  649. data/test/ribit/xhtmltagtest.rb +84 -0
  650. metadata +837 -0
@@ -0,0 +1,153 @@
1
+ #!/usr/bin/ruby
2
+
3
+ #--
4
+ # Copyright (C) 2004-2005 Tero Vuorelaorela
5
+ #
6
+ # This program is free software; you can redistribute it and/or modify it
7
+ # under the terms of the GNU General Public License as published by the Free
8
+ # Software Foundation; either version 2 of the License, or (at your option)
9
+ # any later version.
10
+ #
11
+ # This program is distributed in the hope that it will be useful, but WITHOUT
12
+ # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13
+ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14
+ # more details.
15
+ #
16
+ # You should have received a copy of the GNU General Public License along with
17
+ # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
18
+ # Place - Suite 330, Boston, MA 02111-1307, USA.
19
+ #++
20
+ require 'ftools'
21
+ require 'fileutils'
22
+ require 'optparse'
23
+ require 'optparse/time'
24
+ require 'ostruct'
25
+ require 'common/cvs'
26
+
27
+
28
+ # The options specified on the command line will be collected in *options*.
29
+ # We set default values here.
30
+ options = OpenStruct.new
31
+ options.all = false
32
+ options.path = []
33
+ options.cvsroot = []
34
+
35
+ opts = OptionParser.new do |opts|
36
+ opts.banner = "Usage: ribit-setup [options]"
37
+
38
+ opts.separator ""
39
+ opts.separator "Options:"
40
+
41
+ opts.on("-p", "--path PATH",
42
+ "Define the data path") do |path|
43
+ options.path << path
44
+ end
45
+
46
+ # NOTE: description is split to several lines
47
+ opts.on("-a", "--copy-all",
48
+ "If specified then all possible files are copied.",
49
+ "If not defined then ribitconfig.xml and categories.xml is skipped") do |lib|
50
+ options.all = true
51
+ end
52
+
53
+ opts.on("-c", "--from-cvs CVSROOTDIR",
54
+ "Instead of saving default files takes files from specified CVSROOT directory.") do |dir|
55
+ options.cvsroot << dir
56
+ end
57
+
58
+ # No argument, shows at tail. This will print an options summary.
59
+ opts.on_tail("-h", "--help", "Show this message") do
60
+ puts opts
61
+ exit
62
+ end
63
+
64
+ end
65
+
66
+ begin
67
+ opts.parse!(ARGV)
68
+ rescue OptionParser::InvalidOption => e
69
+ # show help and exit
70
+ puts "Invalid option(s)!"
71
+ puts opts
72
+ exit
73
+ end
74
+
75
+ if ( options.path.empty? )
76
+ puts "ERROR: No destination path defined!"
77
+ puts opts
78
+ exit
79
+ end
80
+
81
+ # if no cvsroot => copy default files
82
+ if ( options.cvsroot.empty? )
83
+ # we know this scripts is located in <ribit-installation>/bin
84
+ # and we'd like find out what is that <ribit-installation>
85
+ ribitHome = File.join( File.dirname( __FILE__ ), '..' )
86
+ configDir = File.join( ribitHome, 'share', 'config' )
87
+ destDir = options.path
88
+
89
+ if ( options.all )
90
+ puts 'Copying ribitconfig.xml'
91
+ File.cp( File.join( configDir, 'ribitconfig.xml' ), File.join( destDir, 'ribitconfig.xml' ) )
92
+ end
93
+
94
+ puts 'Copying content'
95
+ sourceContentDir = File.join( configDir, 'content' )
96
+ destContentDir = File.join( destDir, 'content' )
97
+ FileUtils.mkdir( destContentDir ) unless File.exists?( destContentDir )
98
+
99
+ # TODO: delete all only if specially requested
100
+ #if ( File.exist?( destContentDir ) )
101
+ # FileUtils.rm_rf( destContentDir )
102
+ #end
103
+ #d = Dir.new( destDir )
104
+ #d.each {|file| puts ("Got " + file) }
105
+ #puts ( "source " + sourceContentDir )
106
+
107
+ Dir.glob( sourceContentDir + "/**/*" ).each do |item|
108
+ # )
109
+ if ( /\/CVS\//.match( item ) == nil and /\/CVS$/.match( item ) == nil )
110
+ # the path contains "sourceContentDir" prefix and we want get rid of it
111
+ # (+1 comes from '/' after "sourceContentDir")
112
+ endPath = item[sourceContentDir.length + 1 , item.length]
113
+
114
+ if ( File.file?( item ) )
115
+
116
+ # if all flag is false then we might skip some files (=categories.xml)
117
+ if ( options.all or !/categories.xml$/.match( endPath ) )
118
+ puts( "Copying " + File.join( sourceContentDir, endPath ).to_s )
119
+ FileUtils.cp(
120
+ File.join( sourceContentDir, endPath ),
121
+ File.join( destContentDir, endPath ) )
122
+
123
+ FileUtils.touch( File.join( destContentDir, endPath ) )
124
+ end
125
+
126
+ elsif( !File.exists?( File.join( destContentDir, endPath ) ) )
127
+ FileUtils.mkdir( File.join( destContentDir, endPath ) )
128
+ end
129
+
130
+ end
131
+ end
132
+ else
133
+ # source is cvsroot
134
+ cvs = CVS::CVS.new
135
+ cvs.cvsroot = options.cvsroot[0]
136
+ # checkout guarantees that basic structure will be there
137
+ cvs.checkout( "content", options.path[0] )
138
+
139
+ # next update command requires changing current dir
140
+ oldDir = FileUtils.pwd
141
+ cd( options.path[0] )
142
+ begin
143
+ cvs.run_cvs( "update", ['-R', '-f', '-A', '-C', 'content'] )
144
+ ensure
145
+ cd( oldDir )
146
+ end
147
+ end
148
+
149
+ puts 'DONE'
150
+
151
+
152
+
153
+
@@ -0,0 +1,18 @@
1
+ #!/sbin/runscript
2
+
3
+ depend() {
4
+ need net
5
+ }
6
+
7
+ start() {
8
+ ebegin "Starting ribit"
9
+ start-stop-daemon --start --quiet --background -make-pidfile --pidfile /var/run/ribit.pid --exec ribit /opt/ribit/ribitconfig.xml
10
+ eend $?
11
+ }
12
+
13
+ stop() {
14
+ ebegin "Stopping ribit"
15
+ start-stop-daemon --stop --quiet --pidfile /var/run/ribit.pid
16
+ rm /var/run/ribit.pid
17
+ eend $?
18
+ }
@@ -0,0 +1,207 @@
1
+
2
+ ====>Ribit Quick Memo and TODO
3
+
4
+
5
+ KAMPELA:
6
+ (DONE) - add all old content
7
+ - change main page
8
+ - test with mobile (new instance)
9
+
10
+ NEXT VERSION 0.3:
11
+
12
+ - bug: when creating a new category => it can't be edited from categories page
13
+ - bug: creating new toplevel category => undefined method `get_next_free_page_id' for nil:NilClass
14
+ - bug: <,> inside pre
15
+ - bug: & char inside page name (test also ; > < #)
16
+
17
+ - when name is changed => delete everything from cache
18
+
19
+ (DONE) - on top bar would be nice to have categories link
20
+ - on categories page would nice to have first list of categories => link to page listing
21
+
22
+ * version + build number (including date) to releases an startup logging
23
+
24
+ * do data reloading in startup, not in first request
25
+
26
+ * standalone version
27
+ * putting to rubyforge (www pages, some fine tuning)
28
+ * unit test html
29
+ * coverage results
30
+ - coverage ok
31
+ * filter out test classes
32
+
33
+ * print argo docs
34
+ * think: www application structure
35
+ * think: how to test www application; checking html structure
36
+ * catching all from standard ruby loggers
37
+ - configuring log
38
+
39
+ * test ruby mock
40
+ - simple unit tests
41
+ * call order
42
+ * exceptions
43
+ * default value
44
+
45
+ * haven't found good basic xhtml reference => maybe I should collect my own (www)
46
+ * split classes to several files + take Ribit namespace into use
47
+ * all inside Ribit module
48
+ * split css to view, edit and edit category
49
+ * refactor code to more readable form (more files?)
50
+ * QUESTION: css could be used to set background image, can we that to get proper
51
+ section divider lines ?
52
+ * other option is to recogninize which one is first and which last paragraph
53
+ and set class attribute properly
54
+
55
+ * think about default ribit content
56
+
57
+ * think about category default page
58
+ * if some kind of index page then
59
+ * creating new pages without links
60
+ * how to move existing data to new system
61
+ * how write links to this default page
62
+ * idea is to avoid ::Work::Work style links
63
+
64
+ * www instructions
65
+ - cache
66
+
67
+ ================================================================================
68
+
69
+ - how to make table of contents: example http://eclipsedarcs.org/doku.php
70
+
71
+ NEXT:
72
+ * sisällysluettelo categories sivulle: hypyt kategorian luo
73
+ * blogimaiset entryt
74
+ * blokkien editointi sivun sisältä
75
+
76
+ * delete
77
+ - category
78
+ - page (and also moving from category to another)
79
+
80
+ * creating a new category just from through link (right away to edit page)
81
+ * move link outlook to style sheet ([link] and link1 - link2)
82
+ * cgi interface; how caching should work => disable ?
83
+ * should startup main page just contain category => category main page then used ?
84
+ * speed
85
+ * startup: if file is missing but in CVS => restore
86
+ * go through log messages, is it enough or too precise ?
87
+ * tweak ribit-setup so that it can be run in dev
88
+ * changing baseurl, some rules, ext url and internal url
89
+ * better localization
90
+ * XML validation
91
+ * QUESTION: is startin space good indication to continue list item ?
92
+ * check JSP Wiki and use similar stuff (+ www.snipsnap.org)
93
+
94
+ * separate ribitconfig.xml and content, now they has to be (?) under same dir
95
+ - could ribit config point directly to content dir ? I.e. can name change
96
+
97
+ * tables (?? howto implement headers)
98
+ * pre-tag
99
+ * running a single test
100
+ * valid basic html (lists are not inside <p> ?)
101
+
102
+ * titles with format '== title2 =='
103
+ * possibility to create index of titles to beginning of the page
104
+ * 'to top' tag to bottom
105
+ * [ encoding like \[ (doesn't start the link) or like [[
106
+ * unordered list
107
+ * term list
108
+ * preview possibility
109
+ * favicon definition
110
+
111
+ * moving pages from category to another
112
+ * search functionality
113
+ * better script for reverting back to old page versions
114
+ * tag that lists of subpages
115
+ * & is replaced by &amp; in form urls at least => no conversion
116
+ * headers with ==header format==
117
+ * tag to create table of contents
118
+
119
+ * learn from other web applications: xml and css usage
120
+
121
+ * distributed Ribit => local cache
122
+ * first it could be read only
123
+ * do only data move or ready rendered pages ?
124
+
125
+ * removing pages and categories
126
+ * confirmation page
127
+
128
+ * creating new category (new page?): to whatever place in hierarchy
129
+ * under categories page link 'create new category'k
130
+ * handling of empty categories
131
+ - empty category main page (default page)
132
+
133
+ * move most of Categories page formatting outside the class
134
+
135
+ * in creation full category path should be given ? partial category ref
136
+
137
+ * define css page name in config
138
+
139
+ * users
140
+ - access rights checked for categories
141
+
142
+ * aliases for links (global) (like in EclipseWiki, WikiSpace style links) or (just short cut for [Main] for example, or tags for persons)
143
+
144
+ * add XML validator to page creation (optional) but eases development
145
+ * including UMLet and other drawing applets to pages
146
+ * textual input (what to draw), but applet shows that
147
+ * other option is that app generates dynamically gif/jpg to show
148
+
149
+ * pre tag with start and end point (spaces issue). There could small link where to load data directly
150
+ * raw data flag
151
+ * modifiable data flag
152
+ * Ribit Admin API: way to force data reload
153
+
154
+ * BUG?: extra ---- on bottom of page
155
+ * BUG: if creating new page and then going 'back' and trying to create again.
156
+ => this could be a feature but better think through how 'Back'-button is handled
157
+
158
+ * ri to work with standard lib plus own
159
+
160
+ * option: use CDATA or escaping
161
+ * putting debugging data to page comments: request data. Option to config file
162
+
163
+ * timestamp 'modified' to pages
164
+ * windows port
165
+ - uid/gid changing stuff to linux only feature
166
+
167
+ * generic error page (basic xhtml)
168
+ * error page should be also XHTML! How to change it from REXML ? Make error page servlet specific
169
+ * authorization, basic, does Webrick support ?
170
+ * Webrick, implement possibility to have some kind of statistics
171
+ * support for WAP
172
+ * new template + converter ? other options would be convert from XHTML to WML ...
173
+ * can we notice client type from somewhere ? => test servlet to see all HTTP-parameters
174
+
175
+ * way to run one specific test (rake?)
176
+ * debugging test runs
177
+ * forward to tclhttpd / freeport in laajakaista
178
+
179
+ * taulukkolaskenta ominaisuuksia taulukoihin (esim summa ja keskiarvo)
180
+
181
+ * howto to dynamically reload code
182
+
183
+
184
+ QUESTIONS:
185
+
186
+ * how CDATA end ]]> is escaped or is it ?
187
+ * how to get rexml use " instead of '
188
+ * what is 'em' in stylesheets ?
189
+ * how to say 'wrap on' for text areas by using stylesheets ?
190
+
191
+ OTHERS:
192
+
193
+ - RubyEclipse
194
+ * TODO task tag
195
+ * point from stack trace
196
+ * the current dir
197
+ * CVS integration, showing other files too (filter?)
198
+ * bug: saving launcher properties doesn't save if I don't select some other profile
199
+ * debugging
200
+ * integrate ri
201
+ * integrate profiling
202
+ * outline: clicking => move to the method
203
+ * using whitespace
204
+ * creating new files in Ruby perspective
205
+ * better parsing error catching (possible?)s
206
+ * way to run rake from Eclipse
207
+
@@ -0,0 +1,258 @@
1
+ 13th of June, 2005
2
+
3
+ It seems performance improvements were enough. Now Ribit works reasonably fast
4
+ on my old 200MHz Pentium. The current version is not polished (bugs found)
5
+ but usable. There was several improvements:
6
+
7
+ 1) processing template made too many loops
8
+ 2) dataload happened for every view action => needed only after saving
9
+ 3) created page cache that stores generated pages
10
+ 4) Ribit works with Last-Modified and If-Modified-Since HTTP headers
11
+
12
+ When all above were implemented I realized that perhaps 3) wasn't necessary
13
+ because 4) was implemented. Ribit is not targeted for masses. However
14
+ implementation of 3) resulted to easy implementation of 3).
15
+
16
+
17
+ 3rd of June, 2005
18
+
19
+ Few days ago Ribit 0.2 was finished. Unfortunately it revelead to be too slow
20
+ running with Pentium 200MHz. Yes, it can be used but response time is something
21
+ like 10s. Next task is to improve performance. One bug was also found from
22
+ category creation (fixed when writing this).
23
+
24
+ Installation of new version happens pretty easily. I'm running gem_server on my
25
+ dev machine when needed and then just updating Ribit gem from other machine.
26
+ I had to modify /usr/lib/ruby/gems/1.8/gems/sources-0.0.1/lib/sources.rb to add
27
+ a new gem server server.
28
+
29
+
30
+ 27th of May, 2005
31
+
32
+ Almost finished. Still one ribit-setup bug and then everything seems to be ready
33
+ for 0.2. I have high hopes.
34
+
35
+
36
+ 14th of May, 2005
37
+
38
+ During last week I have spent quite many hours with Ribit and now it is almost
39
+ ready. All planned basic funtionality works (incr2) just little fine tuning
40
+ left. I still plan to make a 'crunch' so that I finally get Ribit to full usage.
41
+
42
+ Between those hours I have many times thought why I'm doing this. I can't name
43
+ one biggest reason, but several ones thought
44
+
45
+ - amphitition; I'd like to finish this because I have started it
46
+ - there is a real need for this (althought they could be open source
47
+ alternatives
48
+ - I have big plans not included to this increment
49
+ - distributed Ribit
50
+ - mobile Ribit
51
+ - I want to learn Ruby. I already like Ruby and I smell future promise there.
52
+ - I want to keep my skill up to date, learn new things
53
+ - I like coding and lately I haven't had opportunities to code at work
54
+
55
+ After I finish incr2 and have taken to Ruby into use I'll release it, ie. put
56
+ to rubyforge or something.
57
+
58
+
59
+ 18th of March, 2005
60
+
61
+ It has been long time when I last time developed Ribit. But I think now when
62
+ spring emerges I'll continue. I hope to get working version installed to my
63
+ closet server. Now I updated and tested installation scripts and instructions
64
+ and managed to get server running easily.
65
+
66
+ There was a new version of RubyEclipse, 0.5.0. It seams it is a big improvement.
67
+ Now I can run my unit tests from Eclipse similar way as Java tests. It required
68
+ little trick. RubyEclipse didn't support my project structure, the code under
69
+ 'lib' and tests under 'test'. For Test::Unit I couldn't defined ruby parameters
70
+ (-I lib:test) as for normal Ruby application. The solution was to create
71
+ a wrapper script that combines -I parameter and others defined from command
72
+ line.
73
+
74
+ I also had to rewrite alltests.rb because RubyEclipse didn't support the sort
75
+ way where test files are just 'required'. I had to code a TestSuite.
76
+
77
+ I noticed also that some tests have quite ugly depencies to test data files on
78
+ the disk. Those files were not initially in CVS but now there are.
79
+
80
+ The latest Log4r and RubyEclipse wasn't exactly compatible. Log4r complained
81
+ that its deprecated attribute was used. Situation was fixed by editing
82
+ RemoteTestRunner.rb from RubyEclipse.
83
+
84
+
85
+ 15th of October, 2004
86
+
87
+ I haven't been working with Ribit for awhile, but still thinking required
88
+ features. Using categories make me still wondering is the right way.
89
+
90
+ I have used Confluence
91
+ (http://www.atlassian.com/software/confluence/default.jsp) and it contains
92
+ Space feature and then pages can have hierarchical tree structure and those
93
+ seem to work pretty well. Ribit doesn't have relationships between pages
94
+ and I wonder do I need. In contradictory categories have relationships but
95
+ Spaces in Confluence don't. Having hierarchical page structure page
96
+ navigation little easier.
97
+
98
+ Final I came to conclusion that categories work still well. I just need
99
+ to define a main page for each category, so that I can build navigation
100
+ helper. This way if user wants hierarchical structure he can utilize
101
+ categories. Also in future categories would the access rights checking point.
102
+
103
+ Still not 100% satisfied, but I realize that maybe I can't get all. But I
104
+ have made my selection and actual user experiences tell me whether was this
105
+ right choice.
106
+
107
+
108
+ 23th of September, 2004
109
+
110
+ Multilevel lists work now finally. It wasn't easy, but the current content
111
+ parsing architecture supported this quite well. I'm pleased that something
112
+ is working. The idea of intergrating TestUnit to RubyEclipse starts feel
113
+ right way. I need to run one tests at the time and I'd like to just click
114
+ stack trace produced by TestUnit to go to the code.
115
+
116
+
117
+ 17th of September, 2004
118
+
119
+ Categories working pretty well, altough you can't yet create new categories.
120
+ After giving few thoughts I decided to use full path reference for categories.
121
+ For example Ribit::Development::Test Cases. This way I don't need to repeat
122
+ information in category name (otherwise I would need to name Development to
123
+ Ribit Development to make a difference from other development projects.
124
+
125
+ Still open how to implement page link bar (links to closest pages). First I
126
+ thought my decision to use categories wasn't good enough compared to hierarchy
127
+ of pages (tree structure), but finally I got conclusion that categories
128
+ structure is more flexible even tough it has it negative sides (not so
129
+ intuitive).
130
+
131
+
132
+ 23th of August, 2004
133
+
134
+ Just sketching the new file hierarchy. Some points:
135
+
136
+ * data is split to several files so that in writing we need to write less
137
+ than possible
138
+ * splitting to several files also makes easier to work with CVS. Later old
139
+ versions can be easily retrieved.
140
+ * category properties (category.xml) is separate from category hierarchy
141
+ (categories.xml) so that it easy to develop predefined content (merging
142
+ is easy)
143
+ * page id is separate from page name (that is used for referring, so that
144
+ name can be easily changed, but file (containing id in its name) will be
145
+ still the same.
146
+
147
+
148
+ 20th of August, 2004
149
+
150
+ During this week I have managed to work out version that uses CVS to store
151
+ content files. This required some changes to directory structures and might
152
+ need some more, because I'm not yet satisfied to it. I moved reading and
153
+ writing of content files to new class ContentStore.
154
+
155
+
156
+ 1st of August, 2004
157
+
158
+ Started today working towards version 0.2 where data could be split to several
159
+ files and somehow history of changes is recorded just be sure that data is not
160
+ lost. These changes are also needed so that development and actual usage can
161
+ proceed smoothle so that merging data files has minimum effort.
162
+
163
+
164
+ 25th of July, 2004
165
+
166
+ Running 'gem_server' as a daemon didn't work out so easily I thought. I had to
167
+ study start-stop-daemon man pages to find out proper parameters and in addition
168
+ finding how to pass parameters I found way to set effective userid and writing
169
+ pid to a file. This means I could drop my modified 'gem_server'
170
+
171
+ Today I managed to fine tune rakefile and now it contains everything essential.
172
+ Hardest part was to include generated rdoc to packages in same run. It required
173
+ some tricks.
174
+
175
+
176
+ 24th of July, 2004
177
+
178
+ I had worked to make ribit installation work using 'gem'. Perhaps because I'm
179
+ quite new to Ruby I had hard times to get rake properly create necessary gem files.
180
+
181
+ GEM SERVER
182
+
183
+ My goal was to create my own gem repository where I could install development time
184
+ versions to my own use. There wasn't really much information how to this. Using
185
+ 'gem_server' was quite obvious but first I didn't understand how should I order
186
+ my files. Gem repositoy dir (passes as -d parameter for gem_server) should point
187
+ to directory with following structure:
188
+
189
+ <gem-repository>
190
+ |
191
+ - cache (place your *.gem files here)
192
+ - specifications (place your *.gemspec files here)
193
+
194
+ I wanted gem_server starts as a daemon, so I created init.d script similar to
195
+ ribitd. The script starts a modified 'gem_server' that writes the pid to
196
+ the /var/run/gemserver.pid so that the script can be used to stop the daemon too.
197
+
198
+ To make possible to install ribit from local repository I needed to add my server
199
+ to remote server list of 'gem'. This happened by modifying
200
+ /usr/lib/ruby/gems/1.8/gems/sources-0.0.1/lib/sources.rb the contain also
201
+ localhost:8808. The simple localhost wasn't enough I needed to specify the port too.
202
+ Now I could install ribit by typing 'gem install ribit'.
203
+
204
+ I also considered you make possible to install with setup.rb/install.rb but
205
+ because ribit already depended on 'gem' I didn't see the any point to do this.
206
+
207
+ RAKE AND GEM
208
+
209
+ Creating *.gem file with rake was easy (just followed instruction from internet)
210
+ but I realized that it was not enough. I needed *.gemspec to be able install ribit
211
+ via gem. But now by gemspec was included to rakefile. So I needed a separate
212
+ gemspec file that could loaded from rakefile. Yes, could almost worked but
213
+ there was depencies to Rake::Filelist in gemspec file, so I needed to do my own
214
+ file including and excluding. Maybe there exists a better way to do this all, but
215
+ I didn't figure out what it could be.
216
+
217
+
218
+ 17th of July, 2004
219
+
220
+ It's been a long break since last time working with Ribit. Since last time I have
221
+ reinstalled my development system (now Gentoo Linux and Eclipse 3.0). At the same
222
+ time I reorganized directory structure to match better with general ruby application
223
+ layout. Now everythings works again and I'm just about to commit to CVS. I also
224
+ decided that I'll start using gem (http://rubygems.rubyforge.org/) because in
225
+ the future I'd like package Ribit as gem application. Log4r is now used via gem. Other
226
+ depencies like webrick and testunit are statisfied by ruby 1.8 which I also have
227
+ started to use.
228
+
229
+
230
+ 3rd of June, 2004
231
+
232
+ Now I have almost finished new content parsing system that replaces HTMLConverter.
233
+ I'm quite pleased with the system, it is quite simple and easy add to new formatters.
234
+ All formatters are not so independent as I originally wanted (universal parser) but still
235
+ big improvement to old. Now data is is parsed to a tree and then tree elements are
236
+ formatted. Still some TODOs and polishing left.
237
+
238
+
239
+ 23th of May, 2004
240
+
241
+ I had big plans to rewrite the HTMLConverter to be more flexible and universal.
242
+ On the paper my plam seemed good but when starting to implement the
243
+ complexity overhelmed me. Finally I realized that I was implement too general
244
+ system: tags could be anything, tags could nested, starting and ending tag
245
+ could be totally different, no reserved characters.
246
+
247
+ Perhaps I could have managed to get something working but most probably it
248
+ would been very complicate to maintain. So I falled back to old implementation
249
+ and found out that it could easily and clearly expanded. Not so beautiful,
250
+ efficient and encapsulated as I wished but some that worked.
251
+
252
+ The current HTMLConverter implementation relies on regular expression. Also
253
+ the order of handling elements is meaningfull. Still wondering could data be
254
+ parsed to a tree and them formatted ? When I have time I have to check how
255
+ other Wikis has solved this problem.
256
+
257
+
258
+