ribit 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+