kitabu 0.4.7 → 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (544) hide show
  1. data/.gitignore +3 -0
  2. data/.gitmodules +3 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +2 -0
  5. data/Gemfile.lock +62 -0
  6. data/README.rdoc +187 -0
  7. data/Rakefile +4 -36
  8. data/bin/kitabu +2 -5
  9. data/examples/RailsGuides/config/helper.rb +29 -0
  10. data/examples/RailsGuides/config/kitabu.yml +48 -0
  11. data/examples/RailsGuides/images/challenge.png +0 -0
  12. data/examples/RailsGuides/images/posts_index.png +0 -0
  13. data/examples/RailsGuides/images/rails_welcome.png +0 -0
  14. data/examples/RailsGuides/output/RailsGuides.epub +0 -0
  15. data/examples/RailsGuides/output/RailsGuides.html +1556 -0
  16. data/examples/RailsGuides/output/RailsGuides.pdf +4930 -7
  17. data/examples/RailsGuides/templates/cover.erb +16 -0
  18. data/examples/RailsGuides/templates/layout.css +352 -0
  19. data/examples/RailsGuides/templates/layout.erb +43 -0
  20. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css/idle.css → examples/RailsGuides/templates/syntax.css} +0 -0
  21. data/examples/RailsGuides/templates/user.css +19 -0
  22. data/examples/RailsGuides/text/01_Guide_Assumptions.mkdn +13 -0
  23. data/examples/RailsGuides/text/02_What_is_Rails.mkdn +106 -0
  24. data/examples/RailsGuides/text/03_Creating_a_new_Rails_project.mkdn +200 -0
  25. data/examples/RailsGuides/text/04_Hello_Rails.mkdn +62 -0
  26. data/examples/RailsGuides/text/05_Getting_Up_and_Running_Quickly_with_Scaffolding.mkdn +4 -0
  27. data/examples/RailsGuides/text/06_Creating_a_resource.mkdn +503 -0
  28. data/examples/RailsGuides/text/07_Adding_a_second_model.mkdn +232 -0
  29. data/examples/RailsGuides/text/08_Refactoring.mkdn +123 -0
  30. data/examples/RailsGuides/text/09_Deleting_comments.mkdn +57 -0
  31. data/examples/RailsGuides/text/09_Security.mkdn +56 -0
  32. data/examples/RailsGuides/text/10_Building_a_multi_model_form.mkdn +130 -0
  33. data/examples/RailsGuides/text/11_View_helpers.mkdn +50 -0
  34. data/examples/RailsGuides/text/12_Whats_next.mkdn +14 -0
  35. data/examples/RailsGuides/text/13_Configuration_gotchas.mkdn +10 -0
  36. data/kitabu.gemspec +28 -491
  37. data/lib/kitabu.rb +54 -46
  38. data/lib/kitabu/cli.rb +88 -0
  39. data/lib/kitabu/errors.rb +3 -0
  40. data/lib/kitabu/exporter.rb +81 -0
  41. data/lib/kitabu/extensions/redcloth.rb +65 -0
  42. data/lib/kitabu/extensions/string.rb +11 -0
  43. data/lib/kitabu/generator.rb +74 -0
  44. data/lib/kitabu/parser.rb +34 -0
  45. data/lib/kitabu/parser/epub.rb +131 -0
  46. data/lib/kitabu/parser/html.rb +174 -0
  47. data/lib/kitabu/parser/mobi.rb +17 -0
  48. data/lib/kitabu/parser/pdf.rb +41 -0
  49. data/lib/kitabu/parser/txt.rb +22 -0
  50. data/lib/kitabu/stream.rb +27 -0
  51. data/lib/kitabu/syntax.rb +109 -107
  52. data/lib/kitabu/toc.rb +62 -33
  53. data/lib/kitabu/version.rb +8 -0
  54. data/spec/kitabu/cli/export_spec.rb +17 -0
  55. data/spec/kitabu/cli/new_spec.rb +21 -0
  56. data/spec/kitabu/cli/permalinks_spec.rb +12 -0
  57. data/spec/kitabu/cli/version_spec.rb +12 -0
  58. data/spec/kitabu/extensions/redcloth_spec.rb +52 -0
  59. data/spec/kitabu/extensions/string_spec.rb +21 -0
  60. data/spec/kitabu/generator_spec.rb +10 -0
  61. data/spec/kitabu/parser/epub_spec.rb +10 -0
  62. data/spec/kitabu/parser/html_spec.rb +75 -0
  63. data/spec/kitabu/parser/pdf_spec.rb +14 -0
  64. data/spec/kitabu/syntax_spec.rb +80 -76
  65. data/spec/kitabu/toc_spec.rb +42 -68
  66. data/spec/kitabu_spec.rb +4 -0
  67. data/spec/spec_helper.rb +20 -24
  68. data/spec/support/exit_with_code.rb +26 -0
  69. data/spec/support/have_tag.rb +115 -0
  70. data/spec/support/helper.rb +18 -0
  71. data/spec/support/mybook/.gitignore +1 -0
  72. data/spec/support/mybook/code/.gitkeep +0 -0
  73. data/spec/support/mybook/code/code.rb +13 -0
  74. data/spec/support/mybook/config/helper.rb +29 -0
  75. data/spec/support/mybook/config/kitabu.yml +59 -0
  76. data/spec/support/mybook/images/.gitkeep +0 -0
  77. data/spec/support/mybook/images/logo.gif +0 -0
  78. data/spec/support/mybook/output/.gitkeep +0 -0
  79. data/spec/support/mybook/templates/cover.erb +16 -0
  80. data/spec/support/mybook/templates/epub.css +1 -0
  81. data/spec/support/mybook/templates/epub.erb +15 -0
  82. data/spec/support/mybook/templates/layout.css +137 -0
  83. data/{templates/layouts/boom/layout.html → spec/support/mybook/templates/layout.erb} +26 -17
  84. data/{templates/themes/mac_classic.css → spec/support/mybook/templates/syntax.css} +63 -0
  85. data/spec/support/mybook/templates/user.css +1 -0
  86. data/spec/support/mybook/text/.gitkeep +0 -0
  87. data/spec/support/mybook/text/01_Markdown_Chapter.markdown +8 -0
  88. data/spec/support/mybook/text/02_Textile_Chapter.textile +3 -0
  89. data/spec/support/mybook/text/03_HTML_Chapter.html +3 -0
  90. data/spec/support/mybook/text/04_With_Directory/Some_Chapter.mkdn +3 -0
  91. data/spec/support/mybook/text/CHANGELOG.textile +6 -0
  92. data/spec/support/mybook/text/TOC.textile +0 -0
  93. data/spec/support/mybook/text/_00_Introduction.markdown +3 -0
  94. data/spec/support/shared.rb +16 -0
  95. data/templates/config.erb +48 -0
  96. data/templates/cover.erb +16 -0
  97. data/templates/ebook.png +0 -0
  98. data/templates/epub.css +0 -0
  99. data/templates/epub.erb +15 -0
  100. data/templates/helper.rb +29 -0
  101. data/templates/layout.css +353 -0
  102. data/templates/layout.erb +44 -0
  103. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/active4d.css +0 -0
  104. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/all_hallows_eve.css +0 -0
  105. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/amy.css +0 -0
  106. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/blackboard.css +0 -0
  107. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/brilliance_black.css +0 -0
  108. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/brilliance_dull.css +0 -0
  109. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/cobalt.css +0 -0
  110. data/{lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css → templates/styles}/dawn.css +0 -0
  111. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/eiffel.css +0 -0
  112. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/espresso_libre.css +0 -0
  113. data/{lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css → templates/styles}/idle.css +0 -0
  114. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/iplastic.css +0 -0
  115. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/lazy.css +0 -0
  116. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/mac_classic.css +0 -0
  117. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/magicwb_amiga.css +0 -0
  118. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/pastels_on_dark.css +0 -0
  119. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/slush_poppies.css +0 -0
  120. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/spacecadet.css +0 -0
  121. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/sunburst.css +0 -0
  122. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/twilight.css +0 -0
  123. data/{lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css → templates/styles}/zenburnesque.css +0 -0
  124. data/templates/user.css +1 -1
  125. metadata +395 -501
  126. data/README.markdown +0 -60
  127. data/VERSION +0 -1
  128. data/lib/kitabu/base.rb +0 -271
  129. data/lib/kitabu/blackcloth.rb +0 -184
  130. data/lib/kitabu/command.rb +0 -94
  131. data/lib/kitabu/redcloth.rb +0 -964
  132. data/lib/kitabu/tasks.rb +0 -113
  133. data/lib/kitabu/templates.rb +0 -54
  134. data/lib/kitabu/vendor/colorize/colorize.rb +0 -81
  135. data/lib/kitabu/vendor/ruby1.8/plist/plist.rb +0 -22
  136. data/lib/kitabu/vendor/ruby1.8/plist/plist/generator.rb +0 -224
  137. data/lib/kitabu/vendor/ruby1.8/plist/plist/parser.rb +0 -224
  138. data/lib/kitabu/vendor/ruby1.8/textpow/textpow.rb +0 -10
  139. data/lib/kitabu/vendor/ruby1.8/textpow/textpow/debug_processor.rb +0 -36
  140. data/lib/kitabu/vendor/ruby1.8/textpow/textpow/score_manager.rb +0 -65
  141. data/lib/kitabu/vendor/ruby1.8/textpow/textpow/syntax.rb +0 -284
  142. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/active4d.render +0 -140
  143. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/all_hallows_eve.render +0 -104
  144. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/amy.render +0 -179
  145. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/blackboard.render +0 -119
  146. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/brilliance_black.render +0 -560
  147. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/brilliance_dull.render +0 -569
  148. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/cobalt.render +0 -170
  149. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/dawn.render +0 -134
  150. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/eiffel.render +0 -140
  151. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/espresso_libre.render +0 -131
  152. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/files/css/dawn.css +0 -121
  153. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/idle.render +0 -101
  154. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/iplastic.render +0 -107
  155. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/lazy.render +0 -104
  156. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/mac_classic.render +0 -143
  157. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/magicwb_amiga.render +0 -125
  158. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/pastels_on_dark.render +0 -212
  159. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/slush_poppies.render +0 -131
  160. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/spacecadet.render +0 -89
  161. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/sunburst.render +0 -194
  162. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/twilight.render +0 -161
  163. data/lib/kitabu/vendor/ruby1.8/uv/render/xhtml/zenburnesque.render +0 -134
  164. data/lib/kitabu/vendor/ruby1.8/uv/syntax/actionscript.syntax +0 -97
  165. data/lib/kitabu/vendor/ruby1.8/uv/syntax/active4d.syntax +0 -276
  166. data/lib/kitabu/vendor/ruby1.8/uv/syntax/active4d_html.syntax +0 -311
  167. data/lib/kitabu/vendor/ruby1.8/uv/syntax/active4d_ini.syntax +0 -50
  168. data/lib/kitabu/vendor/ruby1.8/uv/syntax/active4d_library.syntax +0 -21
  169. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ada.syntax +0 -33
  170. data/lib/kitabu/vendor/ruby1.8/uv/syntax/antlr.syntax +0 -151
  171. data/lib/kitabu/vendor/ruby1.8/uv/syntax/apache.syntax +0 -191
  172. data/lib/kitabu/vendor/ruby1.8/uv/syntax/applescript.syntax +0 -384
  173. data/lib/kitabu/vendor/ruby1.8/uv/syntax/asp.syntax +0 -70
  174. data/lib/kitabu/vendor/ruby1.8/uv/syntax/asp_vb.net.syntax +0 -129
  175. data/lib/kitabu/vendor/ruby1.8/uv/syntax/bibtex.syntax +0 -151
  176. data/lib/kitabu/vendor/ruby1.8/uv/syntax/blog_html.syntax +0 -41
  177. data/lib/kitabu/vendor/ruby1.8/uv/syntax/blog_markdown.syntax +0 -42
  178. data/lib/kitabu/vendor/ruby1.8/uv/syntax/blog_text.syntax +0 -27
  179. data/lib/kitabu/vendor/ruby1.8/uv/syntax/blog_textile.syntax +0 -27
  180. data/lib/kitabu/vendor/ruby1.8/uv/syntax/buggy/nemerle.syntax +0 -74
  181. data/lib/kitabu/vendor/ruby1.8/uv/syntax/build.syntax +0 -53
  182. data/lib/kitabu/vendor/ruby1.8/uv/syntax/bulletin_board.syntax +0 -287
  183. data/lib/kitabu/vendor/ruby1.8/uv/syntax/c++.syntax +0 -109
  184. data/lib/kitabu/vendor/ruby1.8/uv/syntax/c.syntax +0 -326
  185. data/lib/kitabu/vendor/ruby1.8/uv/syntax/cake.syntax +0 -55
  186. data/lib/kitabu/vendor/ruby1.8/uv/syntax/camlp4.syntax +0 -36
  187. data/lib/kitabu/vendor/ruby1.8/uv/syntax/cm.syntax +0 -32
  188. data/lib/kitabu/vendor/ruby1.8/uv/syntax/coldfusion.syntax +0 -119
  189. data/lib/kitabu/vendor/ruby1.8/uv/syntax/context_free.syntax +0 -176
  190. data/lib/kitabu/vendor/ruby1.8/uv/syntax/cs.syntax +0 -59
  191. data/lib/kitabu/vendor/ruby1.8/uv/syntax/css.syntax +0 -195
  192. data/lib/kitabu/vendor/ruby1.8/uv/syntax/css_experimental.syntax +0 -1925
  193. data/lib/kitabu/vendor/ruby1.8/uv/syntax/csv.syntax +0 -68
  194. data/lib/kitabu/vendor/ruby1.8/uv/syntax/d.syntax +0 -142
  195. data/lib/kitabu/vendor/ruby1.8/uv/syntax/diff.syntax +0 -81
  196. data/lib/kitabu/vendor/ruby1.8/uv/syntax/dokuwiki.syntax +0 -204
  197. data/lib/kitabu/vendor/ruby1.8/uv/syntax/dot.syntax +0 -47
  198. data/lib/kitabu/vendor/ruby1.8/uv/syntax/doxygen.syntax +0 -43
  199. data/lib/kitabu/vendor/ruby1.8/uv/syntax/dylan.syntax +0 -62
  200. data/lib/kitabu/vendor/ruby1.8/uv/syntax/eiffel.syntax +0 -78
  201. data/lib/kitabu/vendor/ruby1.8/uv/syntax/erlang.syntax +0 -922
  202. data/lib/kitabu/vendor/ruby1.8/uv/syntax/f-script.syntax +0 -80
  203. data/lib/kitabu/vendor/ruby1.8/uv/syntax/fortran.syntax +0 -141
  204. data/lib/kitabu/vendor/ruby1.8/uv/syntax/fxscript.syntax +0 -142
  205. data/lib/kitabu/vendor/ruby1.8/uv/syntax/greasemonkey.syntax +0 -34
  206. data/lib/kitabu/vendor/ruby1.8/uv/syntax/gri.syntax +0 -83
  207. data/lib/kitabu/vendor/ruby1.8/uv/syntax/groovy.syntax +0 -191
  208. data/lib/kitabu/vendor/ruby1.8/uv/syntax/gtd.syntax +0 -22
  209. data/lib/kitabu/vendor/ruby1.8/uv/syntax/gtdalt.syntax +0 -143
  210. data/lib/kitabu/vendor/ruby1.8/uv/syntax/haml.syntax +0 -88
  211. data/lib/kitabu/vendor/ruby1.8/uv/syntax/haskell.syntax +0 -88
  212. data/lib/kitabu/vendor/ruby1.8/uv/syntax/html-asp.syntax +0 -27
  213. data/lib/kitabu/vendor/ruby1.8/uv/syntax/html.syntax +0 -362
  214. data/lib/kitabu/vendor/ruby1.8/uv/syntax/html_django.syntax +0 -36
  215. data/lib/kitabu/vendor/ruby1.8/uv/syntax/html_for_asp.net.syntax +0 -424
  216. data/lib/kitabu/vendor/ruby1.8/uv/syntax/html_mason.syntax +0 -119
  217. data/lib/kitabu/vendor/ruby1.8/uv/syntax/html_rails.syntax +0 -40
  218. data/lib/kitabu/vendor/ruby1.8/uv/syntax/html_tcl.syntax +0 -26
  219. data/lib/kitabu/vendor/ruby1.8/uv/syntax/icalendar.syntax +0 -32
  220. data/lib/kitabu/vendor/ruby1.8/uv/syntax/inform.syntax +0 -48
  221. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ini.syntax +0 -55
  222. data/lib/kitabu/vendor/ruby1.8/uv/syntax/installer_distribution_script.syntax +0 -77
  223. data/lib/kitabu/vendor/ruby1.8/uv/syntax/io.syntax +0 -81
  224. data/lib/kitabu/vendor/ruby1.8/uv/syntax/java.syntax +0 -211
  225. data/lib/kitabu/vendor/ruby1.8/uv/syntax/javaproperties.syntax +0 -20
  226. data/lib/kitabu/vendor/ruby1.8/uv/syntax/javascript.syntax +0 -256
  227. data/lib/kitabu/vendor/ruby1.8/uv/syntax/javascript_+_prototype.syntax +0 -72
  228. data/lib/kitabu/vendor/ruby1.8/uv/syntax/javascript_+_prototype_bracketed.syntax +0 -140
  229. data/lib/kitabu/vendor/ruby1.8/uv/syntax/jquery_javascript.syntax +0 -114
  230. data/lib/kitabu/vendor/ruby1.8/uv/syntax/json.syntax +0 -136
  231. data/lib/kitabu/vendor/ruby1.8/uv/syntax/languagedefinition.syntax +0 -708
  232. data/lib/kitabu/vendor/ruby1.8/uv/syntax/latex.syntax +0 -566
  233. data/lib/kitabu/vendor/ruby1.8/uv/syntax/latex_beamer.syntax +0 -41
  234. data/lib/kitabu/vendor/ruby1.8/uv/syntax/latex_log.syntax +0 -50
  235. data/lib/kitabu/vendor/ruby1.8/uv/syntax/latex_memoir.syntax +0 -64
  236. data/lib/kitabu/vendor/ruby1.8/uv/syntax/lexflex.syntax +0 -219
  237. data/lib/kitabu/vendor/ruby1.8/uv/syntax/lighttpd.syntax +0 -54
  238. data/lib/kitabu/vendor/ruby1.8/uv/syntax/lilypond.syntax +0 -492
  239. data/lib/kitabu/vendor/ruby1.8/uv/syntax/lisp.syntax +0 -61
  240. data/lib/kitabu/vendor/ruby1.8/uv/syntax/literate_haskell.syntax +0 -24
  241. data/lib/kitabu/vendor/ruby1.8/uv/syntax/logo.syntax +0 -29
  242. data/lib/kitabu/vendor/ruby1.8/uv/syntax/logtalk.syntax +0 -152
  243. data/lib/kitabu/vendor/ruby1.8/uv/syntax/lua.syntax +0 -86
  244. data/lib/kitabu/vendor/ruby1.8/uv/syntax/m.syntax +0 -142
  245. data/lib/kitabu/vendor/ruby1.8/uv/syntax/macports_portfile.syntax +0 -163
  246. data/lib/kitabu/vendor/ruby1.8/uv/syntax/mail.syntax +0 -118
  247. data/lib/kitabu/vendor/ruby1.8/uv/syntax/makefile.syntax +0 -36
  248. data/lib/kitabu/vendor/ruby1.8/uv/syntax/man.syntax +0 -17
  249. data/lib/kitabu/vendor/ruby1.8/uv/syntax/markdown.syntax +0 -543
  250. data/lib/kitabu/vendor/ruby1.8/uv/syntax/mediawiki.syntax +0 -567
  251. data/lib/kitabu/vendor/ruby1.8/uv/syntax/mel.syntax +0 -92
  252. data/lib/kitabu/vendor/ruby1.8/uv/syntax/mips.syntax +0 -66
  253. data/lib/kitabu/vendor/ruby1.8/uv/syntax/mod_perl.syntax +0 -50
  254. data/lib/kitabu/vendor/ruby1.8/uv/syntax/modula-3.syntax +0 -47
  255. data/lib/kitabu/vendor/ruby1.8/uv/syntax/moinmoin.syntax +0 -189
  256. data/lib/kitabu/vendor/ruby1.8/uv/syntax/mootools.syntax +0 -572
  257. data/lib/kitabu/vendor/ruby1.8/uv/syntax/movable_type.syntax +0 -162
  258. data/lib/kitabu/vendor/ruby1.8/uv/syntax/multimarkdown.syntax +0 -39
  259. data/lib/kitabu/vendor/ruby1.8/uv/syntax/objective-c++.syntax +0 -18
  260. data/lib/kitabu/vendor/ruby1.8/uv/syntax/objective-c.syntax +0 -233
  261. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ocaml.syntax +0 -764
  262. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ocamllex.syntax +0 -167
  263. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ocamlyacc.syntax +0 -184
  264. data/lib/kitabu/vendor/ruby1.8/uv/syntax/old/YAML.yaml +0 -160
  265. data/lib/kitabu/vendor/ruby1.8/uv/syntax/old/txt2tags.yaml +0 -139
  266. data/lib/kitabu/vendor/ruby1.8/uv/syntax/opengl.syntax +0 -14
  267. data/lib/kitabu/vendor/ruby1.8/uv/syntax/pascal.syntax +0 -77
  268. data/lib/kitabu/vendor/ruby1.8/uv/syntax/perl.syntax +0 -1115
  269. data/lib/kitabu/vendor/ruby1.8/uv/syntax/php.syntax +0 -1253
  270. data/lib/kitabu/vendor/ruby1.8/uv/syntax/plain_text.syntax +0 -32
  271. data/lib/kitabu/vendor/ruby1.8/uv/syntax/pmwiki.syntax +0 -113
  272. data/lib/kitabu/vendor/ruby1.8/uv/syntax/postscript.syntax +0 -114
  273. data/lib/kitabu/vendor/ruby1.8/uv/syntax/processing.syntax +0 -106
  274. data/lib/kitabu/vendor/ruby1.8/uv/syntax/prolog.syntax +0 -40
  275. data/lib/kitabu/vendor/ruby1.8/uv/syntax/property_list.syntax +0 -635
  276. data/lib/kitabu/vendor/ruby1.8/uv/syntax/python.syntax +0 -868
  277. data/lib/kitabu/vendor/ruby1.8/uv/syntax/python_django.syntax +0 -21
  278. data/lib/kitabu/vendor/ruby1.8/uv/syntax/qmake_project.syntax +0 -114
  279. data/lib/kitabu/vendor/ruby1.8/uv/syntax/qt_c++.syntax +0 -26
  280. data/lib/kitabu/vendor/ruby1.8/uv/syntax/quake3_config.syntax +0 -32
  281. data/lib/kitabu/vendor/ruby1.8/uv/syntax/r.syntax +0 -81
  282. data/lib/kitabu/vendor/ruby1.8/uv/syntax/r_console.syntax +0 -16
  283. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ragel.syntax +0 -201
  284. data/lib/kitabu/vendor/ruby1.8/uv/syntax/rd_r_documentation.syntax +0 -91
  285. data/lib/kitabu/vendor/ruby1.8/uv/syntax/regexp.syntax +0 -50
  286. data/lib/kitabu/vendor/ruby1.8/uv/syntax/regular_expressions_oniguruma.syntax +0 -107
  287. data/lib/kitabu/vendor/ruby1.8/uv/syntax/regular_expressions_python.syntax +0 -109
  288. data/lib/kitabu/vendor/ruby1.8/uv/syntax/release_notes.syntax +0 -46
  289. data/lib/kitabu/vendor/ruby1.8/uv/syntax/remind.syntax +0 -253
  290. data/lib/kitabu/vendor/ruby1.8/uv/syntax/restructuredtext.syntax +0 -250
  291. data/lib/kitabu/vendor/ruby1.8/uv/syntax/rez.syntax +0 -80
  292. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ruby.syntax +0 -1035
  293. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ruby_experimental.syntax +0 -145
  294. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ruby_on_rails.syntax +0 -88
  295. data/lib/kitabu/vendor/ruby1.8/uv/syntax/s5.syntax +0 -69
  296. data/lib/kitabu/vendor/ruby1.8/uv/syntax/scheme.syntax +0 -347
  297. data/lib/kitabu/vendor/ruby1.8/uv/syntax/scilab.syntax +0 -41
  298. data/lib/kitabu/vendor/ruby1.8/uv/syntax/setext.syntax +0 -147
  299. data/lib/kitabu/vendor/ruby1.8/uv/syntax/shell-unix-generic.syntax +0 -384
  300. data/lib/kitabu/vendor/ruby1.8/uv/syntax/slate.syntax +0 -149
  301. data/lib/kitabu/vendor/ruby1.8/uv/syntax/smarty.syntax +0 -63
  302. data/lib/kitabu/vendor/ruby1.8/uv/syntax/sql.syntax +0 -237
  303. data/lib/kitabu/vendor/ruby1.8/uv/syntax/sql_rails.syntax +0 -18
  304. data/lib/kitabu/vendor/ruby1.8/uv/syntax/ssh-config.syntax +0 -33
  305. data/lib/kitabu/vendor/ruby1.8/uv/syntax/standard_ml.syntax +0 -121
  306. data/lib/kitabu/vendor/ruby1.8/uv/syntax/strings_file.syntax +0 -39
  307. data/lib/kitabu/vendor/ruby1.8/uv/syntax/subversion_commit_message.syntax +0 -36
  308. data/lib/kitabu/vendor/ruby1.8/uv/syntax/sweave.syntax +0 -84
  309. data/lib/kitabu/vendor/ruby1.8/uv/syntax/swig.syntax +0 -57
  310. data/lib/kitabu/vendor/ruby1.8/uv/syntax/tcl.syntax +0 -152
  311. data/lib/kitabu/vendor/ruby1.8/uv/syntax/template_toolkit.syntax +0 -121
  312. data/lib/kitabu/vendor/ruby1.8/uv/syntax/tex.syntax +0 -86
  313. data/lib/kitabu/vendor/ruby1.8/uv/syntax/tex_math.syntax +0 -49
  314. data/lib/kitabu/vendor/ruby1.8/uv/syntax/textile.syntax +0 -215
  315. data/lib/kitabu/vendor/ruby1.8/uv/syntax/tsv.syntax +0 -50
  316. data/lib/kitabu/vendor/ruby1.8/uv/syntax/twiki.syntax +0 -241
  317. data/lib/kitabu/vendor/ruby1.8/uv/syntax/txt2tags.syntax +0 -79
  318. data/lib/kitabu/vendor/ruby1.8/uv/syntax/vectorscript.syntax +0 -57
  319. data/lib/kitabu/vendor/ruby1.8/uv/syntax/xhtml_1.0.syntax +0 -4027
  320. data/lib/kitabu/vendor/ruby1.8/uv/syntax/xml.syntax +0 -180
  321. data/lib/kitabu/vendor/ruby1.8/uv/syntax/xml_strict.syntax +0 -92
  322. data/lib/kitabu/vendor/ruby1.8/uv/syntax/xsl.syntax +0 -60
  323. data/lib/kitabu/vendor/ruby1.8/uv/syntax/yaml.syntax +0 -160
  324. data/lib/kitabu/vendor/ruby1.8/uv/syntax/yui_javascript.syntax +0 -176
  325. data/lib/kitabu/vendor/ruby1.8/uv/uv.rb +0 -88
  326. data/lib/kitabu/vendor/ruby1.8/uv/uv/render_processor.rb +0 -131
  327. data/lib/kitabu/vendor/ruby1.8/uv/uv/utility.rb +0 -67
  328. data/lib/kitabu/vendor/ruby1.9/plist/plist.rb +0 -23
  329. data/lib/kitabu/vendor/ruby1.9/plist/plist/generator.rb +0 -228
  330. data/lib/kitabu/vendor/ruby1.9/plist/plist/parser.rb +0 -225
  331. data/lib/kitabu/vendor/ruby1.9/textpow/textpow.rb +0 -10
  332. data/lib/kitabu/vendor/ruby1.9/textpow/textpow/debug_processor.rb +0 -37
  333. data/lib/kitabu/vendor/ruby1.9/textpow/textpow/score_manager.rb +0 -66
  334. data/lib/kitabu/vendor/ruby1.9/textpow/textpow/syntax.rb +0 -286
  335. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/active4d.render +0 -140
  336. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/all_hallows_eve.render +0 -104
  337. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/amy.render +0 -179
  338. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/blackboard.render +0 -119
  339. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/brilliance_black.render +0 -560
  340. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/brilliance_dull.render +0 -569
  341. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/cobalt.render +0 -170
  342. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/dawn.render +0 -134
  343. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/eiffel.render +0 -140
  344. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/espresso_libre.render +0 -131
  345. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/active4d.css +0 -114
  346. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/all_hallows_eve.css +0 -72
  347. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/amy.css +0 -147
  348. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/blackboard.css +0 -88
  349. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/brilliance_black.css +0 -605
  350. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/brilliance_dull.css +0 -599
  351. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/cobalt.css +0 -149
  352. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/eiffel.css +0 -121
  353. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/espresso_libre.css +0 -109
  354. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/iplastic.css +0 -80
  355. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/lazy.css +0 -73
  356. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/mac_classic.css +0 -123
  357. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/magicwb_amiga.css +0 -104
  358. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/pastels_on_dark.css +0 -188
  359. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/slush_poppies.css +0 -85
  360. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/spacecadet.css +0 -51
  361. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/sunburst.css +0 -180
  362. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/twilight.css +0 -137
  363. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/files/css/zenburnesque.css +0 -91
  364. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/idle.render +0 -101
  365. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/iplastic.render +0 -107
  366. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/lazy.render +0 -104
  367. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/mac_classic.render +0 -143
  368. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/magicwb_amiga.render +0 -125
  369. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/pastels_on_dark.render +0 -212
  370. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/slush_poppies.render +0 -131
  371. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/spacecadet.render +0 -89
  372. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/sunburst.render +0 -194
  373. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/twilight.render +0 -161
  374. data/lib/kitabu/vendor/ruby1.9/uv/render/xhtml/zenburnesque.render +0 -134
  375. data/lib/kitabu/vendor/ruby1.9/uv/syntax/actionscript.syntax +0 -97
  376. data/lib/kitabu/vendor/ruby1.9/uv/syntax/active4d.syntax +0 -276
  377. data/lib/kitabu/vendor/ruby1.9/uv/syntax/active4d_html.syntax +0 -311
  378. data/lib/kitabu/vendor/ruby1.9/uv/syntax/active4d_ini.syntax +0 -50
  379. data/lib/kitabu/vendor/ruby1.9/uv/syntax/active4d_library.syntax +0 -21
  380. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ada.syntax +0 -33
  381. data/lib/kitabu/vendor/ruby1.9/uv/syntax/antlr.syntax +0 -151
  382. data/lib/kitabu/vendor/ruby1.9/uv/syntax/apache.syntax +0 -191
  383. data/lib/kitabu/vendor/ruby1.9/uv/syntax/applescript.syntax +0 -384
  384. data/lib/kitabu/vendor/ruby1.9/uv/syntax/asp.syntax +0 -70
  385. data/lib/kitabu/vendor/ruby1.9/uv/syntax/asp_vb.net.syntax +0 -129
  386. data/lib/kitabu/vendor/ruby1.9/uv/syntax/bibtex.syntax +0 -151
  387. data/lib/kitabu/vendor/ruby1.9/uv/syntax/blog_html.syntax +0 -41
  388. data/lib/kitabu/vendor/ruby1.9/uv/syntax/blog_markdown.syntax +0 -42
  389. data/lib/kitabu/vendor/ruby1.9/uv/syntax/blog_text.syntax +0 -27
  390. data/lib/kitabu/vendor/ruby1.9/uv/syntax/blog_textile.syntax +0 -27
  391. data/lib/kitabu/vendor/ruby1.9/uv/syntax/build.syntax +0 -53
  392. data/lib/kitabu/vendor/ruby1.9/uv/syntax/bulletin_board.syntax +0 -287
  393. data/lib/kitabu/vendor/ruby1.9/uv/syntax/cake.syntax +0 -55
  394. data/lib/kitabu/vendor/ruby1.9/uv/syntax/camlp4.syntax +0 -36
  395. data/lib/kitabu/vendor/ruby1.9/uv/syntax/cm.syntax +0 -32
  396. data/lib/kitabu/vendor/ruby1.9/uv/syntax/coldfusion.syntax +0 -119
  397. data/lib/kitabu/vendor/ruby1.9/uv/syntax/context_free.syntax +0 -176
  398. data/lib/kitabu/vendor/ruby1.9/uv/syntax/cs.syntax +0 -59
  399. data/lib/kitabu/vendor/ruby1.9/uv/syntax/css.syntax +0 -195
  400. data/lib/kitabu/vendor/ruby1.9/uv/syntax/css_experimental.syntax +0 -1925
  401. data/lib/kitabu/vendor/ruby1.9/uv/syntax/csv.syntax +0 -68
  402. data/lib/kitabu/vendor/ruby1.9/uv/syntax/d.syntax +0 -142
  403. data/lib/kitabu/vendor/ruby1.9/uv/syntax/diff.syntax +0 -81
  404. data/lib/kitabu/vendor/ruby1.9/uv/syntax/dokuwiki.syntax +0 -204
  405. data/lib/kitabu/vendor/ruby1.9/uv/syntax/dot.syntax +0 -47
  406. data/lib/kitabu/vendor/ruby1.9/uv/syntax/doxygen.syntax +0 -43
  407. data/lib/kitabu/vendor/ruby1.9/uv/syntax/dylan.syntax +0 -62
  408. data/lib/kitabu/vendor/ruby1.9/uv/syntax/eiffel.syntax +0 -78
  409. data/lib/kitabu/vendor/ruby1.9/uv/syntax/erlang.syntax +0 -922
  410. data/lib/kitabu/vendor/ruby1.9/uv/syntax/f-script.syntax +0 -80
  411. data/lib/kitabu/vendor/ruby1.9/uv/syntax/fortran.syntax +0 -141
  412. data/lib/kitabu/vendor/ruby1.9/uv/syntax/fxscript.syntax +0 -142
  413. data/lib/kitabu/vendor/ruby1.9/uv/syntax/greasemonkey.syntax +0 -34
  414. data/lib/kitabu/vendor/ruby1.9/uv/syntax/gri.syntax +0 -83
  415. data/lib/kitabu/vendor/ruby1.9/uv/syntax/groovy.syntax +0 -191
  416. data/lib/kitabu/vendor/ruby1.9/uv/syntax/gtd.syntax +0 -22
  417. data/lib/kitabu/vendor/ruby1.9/uv/syntax/gtdalt.syntax +0 -143
  418. data/lib/kitabu/vendor/ruby1.9/uv/syntax/haml.syntax +0 -88
  419. data/lib/kitabu/vendor/ruby1.9/uv/syntax/haskell.syntax +0 -88
  420. data/lib/kitabu/vendor/ruby1.9/uv/syntax/html-asp.syntax +0 -27
  421. data/lib/kitabu/vendor/ruby1.9/uv/syntax/html.syntax +0 -362
  422. data/lib/kitabu/vendor/ruby1.9/uv/syntax/html_django.syntax +0 -36
  423. data/lib/kitabu/vendor/ruby1.9/uv/syntax/html_for_asp.net.syntax +0 -424
  424. data/lib/kitabu/vendor/ruby1.9/uv/syntax/html_mason.syntax +0 -119
  425. data/lib/kitabu/vendor/ruby1.9/uv/syntax/html_rails.syntax +0 -40
  426. data/lib/kitabu/vendor/ruby1.9/uv/syntax/html_tcl.syntax +0 -26
  427. data/lib/kitabu/vendor/ruby1.9/uv/syntax/icalendar.syntax +0 -32
  428. data/lib/kitabu/vendor/ruby1.9/uv/syntax/inform.syntax +0 -48
  429. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ini.syntax +0 -55
  430. data/lib/kitabu/vendor/ruby1.9/uv/syntax/installer_distribution_script.syntax +0 -77
  431. data/lib/kitabu/vendor/ruby1.9/uv/syntax/io.syntax +0 -81
  432. data/lib/kitabu/vendor/ruby1.9/uv/syntax/java.syntax +0 -211
  433. data/lib/kitabu/vendor/ruby1.9/uv/syntax/javaproperties.syntax +0 -20
  434. data/lib/kitabu/vendor/ruby1.9/uv/syntax/javascript.syntax +0 -256
  435. data/lib/kitabu/vendor/ruby1.9/uv/syntax/javascript_+_prototype.syntax +0 -72
  436. data/lib/kitabu/vendor/ruby1.9/uv/syntax/javascript_+_prototype_bracketed.syntax +0 -140
  437. data/lib/kitabu/vendor/ruby1.9/uv/syntax/jquery_javascript.syntax +0 -114
  438. data/lib/kitabu/vendor/ruby1.9/uv/syntax/json.syntax +0 -136
  439. data/lib/kitabu/vendor/ruby1.9/uv/syntax/languagedefinition.syntax +0 -708
  440. data/lib/kitabu/vendor/ruby1.9/uv/syntax/latex.syntax +0 -566
  441. data/lib/kitabu/vendor/ruby1.9/uv/syntax/latex_beamer.syntax +0 -41
  442. data/lib/kitabu/vendor/ruby1.9/uv/syntax/latex_log.syntax +0 -50
  443. data/lib/kitabu/vendor/ruby1.9/uv/syntax/latex_memoir.syntax +0 -64
  444. data/lib/kitabu/vendor/ruby1.9/uv/syntax/lexflex.syntax +0 -219
  445. data/lib/kitabu/vendor/ruby1.9/uv/syntax/lighttpd.syntax +0 -54
  446. data/lib/kitabu/vendor/ruby1.9/uv/syntax/lilypond.syntax +0 -492
  447. data/lib/kitabu/vendor/ruby1.9/uv/syntax/lisp.syntax +0 -61
  448. data/lib/kitabu/vendor/ruby1.9/uv/syntax/literate_haskell.syntax +0 -24
  449. data/lib/kitabu/vendor/ruby1.9/uv/syntax/logo.syntax +0 -29
  450. data/lib/kitabu/vendor/ruby1.9/uv/syntax/logtalk.syntax +0 -152
  451. data/lib/kitabu/vendor/ruby1.9/uv/syntax/lua.syntax +0 -86
  452. data/lib/kitabu/vendor/ruby1.9/uv/syntax/m.syntax +0 -142
  453. data/lib/kitabu/vendor/ruby1.9/uv/syntax/macports_portfile.syntax +0 -163
  454. data/lib/kitabu/vendor/ruby1.9/uv/syntax/makefile.syntax +0 -36
  455. data/lib/kitabu/vendor/ruby1.9/uv/syntax/man.syntax +0 -17
  456. data/lib/kitabu/vendor/ruby1.9/uv/syntax/mediawiki.syntax +0 -567
  457. data/lib/kitabu/vendor/ruby1.9/uv/syntax/mips.syntax +0 -66
  458. data/lib/kitabu/vendor/ruby1.9/uv/syntax/mod_perl.syntax +0 -50
  459. data/lib/kitabu/vendor/ruby1.9/uv/syntax/modula-3.syntax +0 -47
  460. data/lib/kitabu/vendor/ruby1.9/uv/syntax/moinmoin.syntax +0 -189
  461. data/lib/kitabu/vendor/ruby1.9/uv/syntax/mootools.syntax +0 -572
  462. data/lib/kitabu/vendor/ruby1.9/uv/syntax/movable_type.syntax +0 -162
  463. data/lib/kitabu/vendor/ruby1.9/uv/syntax/multimarkdown.syntax +0 -39
  464. data/lib/kitabu/vendor/ruby1.9/uv/syntax/objective-c++.syntax +0 -18
  465. data/lib/kitabu/vendor/ruby1.9/uv/syntax/objective-c.syntax +0 -233
  466. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ocaml.syntax +0 -764
  467. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ocamllex.syntax +0 -167
  468. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ocamlyacc.syntax +0 -184
  469. data/lib/kitabu/vendor/ruby1.9/uv/syntax/opengl.syntax +0 -14
  470. data/lib/kitabu/vendor/ruby1.9/uv/syntax/pascal.syntax +0 -77
  471. data/lib/kitabu/vendor/ruby1.9/uv/syntax/perl.syntax +0 -1115
  472. data/lib/kitabu/vendor/ruby1.9/uv/syntax/plain_text.syntax +0 -32
  473. data/lib/kitabu/vendor/ruby1.9/uv/syntax/postscript.syntax +0 -114
  474. data/lib/kitabu/vendor/ruby1.9/uv/syntax/processing.syntax +0 -106
  475. data/lib/kitabu/vendor/ruby1.9/uv/syntax/prolog.syntax +0 -40
  476. data/lib/kitabu/vendor/ruby1.9/uv/syntax/property_list.syntax +0 -635
  477. data/lib/kitabu/vendor/ruby1.9/uv/syntax/python.syntax +0 -868
  478. data/lib/kitabu/vendor/ruby1.9/uv/syntax/python_django.syntax +0 -21
  479. data/lib/kitabu/vendor/ruby1.9/uv/syntax/qmake_project.syntax +0 -114
  480. data/lib/kitabu/vendor/ruby1.9/uv/syntax/qt_c++.syntax +0 -26
  481. data/lib/kitabu/vendor/ruby1.9/uv/syntax/quake3_config.syntax +0 -32
  482. data/lib/kitabu/vendor/ruby1.9/uv/syntax/r.syntax +0 -81
  483. data/lib/kitabu/vendor/ruby1.9/uv/syntax/r_console.syntax +0 -16
  484. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ragel.syntax +0 -201
  485. data/lib/kitabu/vendor/ruby1.9/uv/syntax/rd_r_documentation.syntax +0 -91
  486. data/lib/kitabu/vendor/ruby1.9/uv/syntax/regexp.syntax +0 -50
  487. data/lib/kitabu/vendor/ruby1.9/uv/syntax/release_notes.syntax +0 -46
  488. data/lib/kitabu/vendor/ruby1.9/uv/syntax/remind.syntax +0 -253
  489. data/lib/kitabu/vendor/ruby1.9/uv/syntax/restructuredtext.syntax +0 -250
  490. data/lib/kitabu/vendor/ruby1.9/uv/syntax/rez.syntax +0 -80
  491. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ruby.syntax +0 -1035
  492. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ruby_experimental.syntax +0 -145
  493. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ruby_on_rails.syntax +0 -88
  494. data/lib/kitabu/vendor/ruby1.9/uv/syntax/s5.syntax +0 -69
  495. data/lib/kitabu/vendor/ruby1.9/uv/syntax/scheme.syntax +0 -347
  496. data/lib/kitabu/vendor/ruby1.9/uv/syntax/scilab.syntax +0 -41
  497. data/lib/kitabu/vendor/ruby1.9/uv/syntax/setext.syntax +0 -147
  498. data/lib/kitabu/vendor/ruby1.9/uv/syntax/shell-unix-generic.syntax +0 -384
  499. data/lib/kitabu/vendor/ruby1.9/uv/syntax/slate.syntax +0 -149
  500. data/lib/kitabu/vendor/ruby1.9/uv/syntax/sql.syntax +0 -237
  501. data/lib/kitabu/vendor/ruby1.9/uv/syntax/sql_rails.syntax +0 -18
  502. data/lib/kitabu/vendor/ruby1.9/uv/syntax/ssh-config.syntax +0 -33
  503. data/lib/kitabu/vendor/ruby1.9/uv/syntax/standard_ml.syntax +0 -121
  504. data/lib/kitabu/vendor/ruby1.9/uv/syntax/strings_file.syntax +0 -39
  505. data/lib/kitabu/vendor/ruby1.9/uv/syntax/subversion_commit_message.syntax +0 -36
  506. data/lib/kitabu/vendor/ruby1.9/uv/syntax/sweave.syntax +0 -84
  507. data/lib/kitabu/vendor/ruby1.9/uv/syntax/swig.syntax +0 -57
  508. data/lib/kitabu/vendor/ruby1.9/uv/syntax/tcl.syntax +0 -152
  509. data/lib/kitabu/vendor/ruby1.9/uv/syntax/template_toolkit.syntax +0 -121
  510. data/lib/kitabu/vendor/ruby1.9/uv/syntax/tex.syntax +0 -86
  511. data/lib/kitabu/vendor/ruby1.9/uv/syntax/tex_math.syntax +0 -49
  512. data/lib/kitabu/vendor/ruby1.9/uv/syntax/textile.syntax +0 -215
  513. data/lib/kitabu/vendor/ruby1.9/uv/syntax/tsv.syntax +0 -50
  514. data/lib/kitabu/vendor/ruby1.9/uv/syntax/twiki.syntax +0 -241
  515. data/lib/kitabu/vendor/ruby1.9/uv/syntax/txt2tags.syntax +0 -79
  516. data/lib/kitabu/vendor/ruby1.9/uv/syntax/vectorscript.syntax +0 -57
  517. data/lib/kitabu/vendor/ruby1.9/uv/syntax/xhtml_1.0.syntax +0 -4027
  518. data/lib/kitabu/vendor/ruby1.9/uv/syntax/xml.syntax +0 -180
  519. data/lib/kitabu/vendor/ruby1.9/uv/syntax/xml_strict.syntax +0 -92
  520. data/lib/kitabu/vendor/ruby1.9/uv/syntax/xsl.syntax +0 -60
  521. data/lib/kitabu/vendor/ruby1.9/uv/syntax/yaml.syntax +0 -160
  522. data/lib/kitabu/vendor/ruby1.9/uv/syntax/yui_javascript.syntax +0 -176
  523. data/lib/kitabu/vendor/ruby1.9/uv/uv.rb +0 -89
  524. data/lib/kitabu/vendor/ruby1.9/uv/uv/render_processor.rb +0 -132
  525. data/lib/kitabu/vendor/ruby1.9/uv/uv/utility.rb +0 -68
  526. data/spec/exit_matcher.rb +0 -45
  527. data/spec/fixtures/rails-guides/code/sample.rb +0 -7
  528. data/spec/kitabu/base_spec.rb +0 -159
  529. data/spec/kitabu/blackcloth_spec.rb +0 -41
  530. data/spec/kitabu/bug_fix_spec.rb +0 -25
  531. data/spec/kitabu/command_spec.rb +0 -82
  532. data/templates/Rakefile +0 -3
  533. data/templates/config.yml +0 -9
  534. data/templates/layouts/boom/layout.css +0 -469
  535. data/templates/syntax.css +0 -1065
  536. data/templates/themes/active4d.css +0 -114
  537. data/templates/themes/blackboard.css +0 -88
  538. data/templates/themes/dawn.css +0 -121
  539. data/templates/themes/eiffel.css +0 -121
  540. data/templates/themes/idle.css +0 -62
  541. data/templates/themes/iplastic.css +0 -80
  542. data/templates/themes/lazy.css +0 -73
  543. data/templates/themes/slush_poppies.css +0 -85
  544. data/templates/themes/sunburst.css +0 -180
@@ -0,0 +1,232 @@
1
+ ## Adding a Second Model
2
+
3
+ Now that you’ve seen how a model built with scaffolding looks like, it’s time to add a second model to the application. The second model will handle comments on blog posts.
4
+
5
+ ### Generating a Model
6
+
7
+ Models in Rails use a singular name, and their corresponding database tables use a plural name. For the model to hold comments, the convention is to use the name Comment. Even if you don’t want to use the entire apparatus set up by scaffolding, most Rails developers still use generators to make things like models and controllers. To create the new model, run this command in your terminal:
8
+
9
+ $ rails generate model Comment commenter:string body:text post:references
10
+
11
+ This command will generate four files:
12
+
13
+ * `app/models/comment.rb` – The model
14
+ * `db/migrate/20100207235629_create_comments.rb` – The migration
15
+ * `test/unit/comment_test.rb and test/fixtures/comments.yml` – The test harness.
16
+
17
+ First, take a look at `comment.rb`:
18
+
19
+ @@@ ruby
20
+ class Comment < ActiveRecord::Base
21
+   belongs_to :post
22
+ end
23
+ @@@
24
+
25
+ This is very similar to the `post.rb` model that you saw earlier. The difference is the line `belongs_to :post`, which sets up an Active Record *association*. You’ll learn a little about associations in the next section of this guide.
26
+
27
+ In addition to the model, Rails has also made a migration to create the corresponding database table:
28
+
29
+ @@@ ruby
30
+ class CreateComments < ActiveRecord::Migration
31
+   def self.up
32
+     create_table :comments do |t|
33
+       t.string :commenter
34
+       t.text :body
35
+       t.references :post
36
+
37
+       t.timestamps
38
+     end
39
+   end
40
+
41
+   def self.down
42
+     drop_table :comments
43
+   end
44
+ end
45
+ @@@
46
+
47
+ The `t.references` line sets up a foreign key column for the association between the two models. Go ahead and run the migration:
48
+
49
+ $ rake db:migrate
50
+
51
+ Rails is smart enough to only execute the migrations that have not already been run against the current database, so in this case you will just see:
52
+
53
+ ==  CreateComments: migrating ============
54
+ -- create_table(:comments)
55
+    -> 0.0017s
56
+ ==  CreateComments: migrated (0.0018s) ===
57
+
58
+ ### Associating Models
59
+
60
+ Active Record associations let you easily declare the relationship between two models. In the case of comments and posts, you could write out the relationships this way:
61
+
62
+ * Each comment belongs to one post
63
+ * One post can have many comments
64
+
65
+ In fact, this is very close to the syntax that Rails uses to declare this association. You’ve already seen the line of code inside the Comment model that makes each comment belong to a Post:
66
+
67
+ @@@ ruby
68
+ class Comment < ActiveRecord::Base
69
+   belongs_to :post
70
+ end
71
+ @@@
72
+
73
+ You’ll need to edit the `post.rb` file to add the other side of the association:
74
+
75
+ @@@ ruby
76
+ class Post < ActiveRecord::Base
77
+   validates :name,  :presence => true
78
+   validates :title, :presence => true,
79
+                     :length => { :minimum => 5 }
80
+
81
+   has_many :comments
82
+ end
83
+ @@@
84
+
85
+ These two declarations enable a good bit of automatic behavior. For example, if you have an instance variable `@post` containing a post, you can retrieve all the comments belonging to that post as the array `@post.comments`.
86
+
87
+ <p class="notice">
88
+ For more information on Active Record associations, see the <a href="http://guides.rubyonrails.org/association_basics.html" title="Ruby on Rails Guides: A Guide to Active Record Associations">Active Record Associations</a> guide.
89
+ </p>
90
+
91
+ ### Adding a Route for Comments
92
+
93
+ As with the `home` controller, we will need to add a route so that Rails knows where we would like to navigate to see `comments`. Open up the `config/routes.rb` file again, you will see an entry that was added automatically for posts near the top by the scaffold generator, `resources :posts`, edit it as follows:
94
+
95
+ @@@ ruby
96
+ resources :posts do
97
+   resources :comments
98
+ end
99
+ @@@
100
+
101
+ This creates `comments` as a *nested resource* within `posts`. This is another part of capturing the hierarchical relationship that exists between posts and comments.
102
+
103
+ <p class="notice">
104
+ For more information on routing, see the <a href="http://guides.rubyonrails.org/routing.html" title="Ruby on Rails Guides: Rails Routing from the Outside In">Rails Routing from the Outside In</a> guide.
105
+ </p>
106
+
107
+ ### Generating a Controller
108
+
109
+ With the model in hand, you can turn your attention to creating a matching controller. Again, there’s a generator for this:
110
+
111
+ $ rails generate controller Comments
112
+
113
+ This creates four files and one empty directory:
114
+
115
+ * `app/controllers/comments_controller.rb` – The controller
116
+ * `app/helpers/comments_helper.rb` – A view helper file
117
+ * `test/functional/comments_controller_test.rb` – The functional tests for the controller
118
+ * `test/unit/helpers/comments_helper_test.rb` – The unit tests for the helper
119
+ * `app/views/comments/` – Views of the controller are stored here
120
+
121
+ Like with any blog, our readers will create their comments directly after reading the post, and once they have added their comment, will be sent back to the post show page to see their comment now listed. Due to this, our `CommentsController` is there to provide a method to create comments and delete SPAM comments when they arrive.
122
+
123
+ So first, we’ll wire up the Post show template (`/app/views/posts/show.html.erb`) to let us make a new comment:
124
+
125
+ @@@ html
126
+ <p class="notice"><%= notice %></p>
127
+
128
+ <p>
129
+   <b>Name:</b>
130
+   <%= @post.name %>
131
+ </p>
132
+
133
+ <p>
134
+   <b>Title:</b>
135
+   <%= @post.title %>
136
+ </p>
137
+
138
+ <p>
139
+   <b>Content:</b>
140
+   <%= @post.content %>
141
+ </p>
142
+
143
+ <h2>Add a comment:</h2>
144
+ <%= form_for([@post, @post.comments.build]) do |f| %>
145
+   <div class="field">
146
+     <%= f.label :commenter %><br />
147
+     <%= f.text_field :commenter %>
148
+   </div>
149
+   <div class="field">
150
+     <%= f.label :body %><br />
151
+     <%= f.text_area :body %>
152
+   </div>
153
+   <div class="actions">
154
+     <%= f.submit %>
155
+   </div>
156
+ <% end %>
157
+
158
+ <%= link_to 'Edit Post', edit_post_path(@post) %> |
159
+ <%= link_to 'Back to Posts', posts_path %> |
160
+ @@@
161
+
162
+ This adds a form on the Post show page that creates a new comment, which will call the `CommentsController` create action, so let’s wire that up:
163
+
164
+ @@@ ruby
165
+ class CommentsController < ApplicationController
166
+   def create
167
+     @post = Post.find(params[:post_id])
168
+     @comment = @post.comments.create(params[:comment])
169
+     redirect_to post_path(@post)
170
+   end
171
+ end
172
+ @@@
173
+
174
+ You’ll see a bit more complexity here than you did in the controller for posts. That’s a side-effect of the nesting that you’ve set up; each request for a comment has to keep track of the post to which the comment is attached, thus the initial find action to the Post model to get the post in question.
175
+
176
+ In addition, the code takes advantage of some of the methods available for an association. We use the `create` method on `@post.comments` to create and save the comment. This will automatically link the comment so that it belongs to that particular post.
177
+
178
+ Once we have made the new comment, we send the user back to the original post using the `post_path(@post)` helper. As we have already seen, this calls the `show` action of the `PostsController` which in turn renders the `show.html.erb` template. This is where we want the comment to show, so let’s add that to the `app/views/posts/show.html.erb`.
179
+
180
+ @@@ html
181
+ <p class="notice"><%= notice %></p>
182
+
183
+ <p>
184
+   <b>Name:</b>
185
+   <%= @post.name %>
186
+ </p>
187
+
188
+ <p>
189
+   <b>Title:</b>
190
+   <%= @post.title %>
191
+ </p>
192
+
193
+ <p>
194
+   <b>Content:</b>
195
+   <%= @post.content %>
196
+ </p>
197
+
198
+ <h2>Comments</h2>
199
+ <% @post.comments.each do |comment| %>
200
+   <p>
201
+     <b>Commenter:</b>
202
+     <%= comment.commenter %>
203
+   </p>
204
+
205
+   <p>
206
+     <b>Comment:</b>
207
+     <%= comment.body %>
208
+   </p>
209
+ <% end %>
210
+
211
+ <h2>Add a comment:</h2>
212
+ <%= form_for([@post, @post.comments.build]) do |f| %>
213
+   <div class="field">
214
+     <%= f.label :commenter %><br />
215
+     <%= f.text_field :commenter %>
216
+   </div>
217
+   <div class="field">
218
+     <%= f.label :body %><br />
219
+     <%= f.text_area :body %>
220
+   </div>
221
+   <div class="actions">
222
+     <%= f.submit %>
223
+   </div>
224
+ <% end %>
225
+
226
+ <br />
227
+
228
+ <%= link_to 'Edit Post', edit_post_path(@post) %> |
229
+ <%= link_to 'Back to Posts', posts_path %> |
230
+ @@@
231
+
232
+ Now you can add posts and comments to your blog and have them show up in the right places.
@@ -0,0 +1,123 @@
1
+ ## Refactoring
2
+
3
+ Now that we have Posts and Comments working, if we take a look at the `app/views/posts/show.html.erb` template, it’s getting long and awkward. We can use partials to clean this up.
4
+
5
+ ### Rendering Partial Collections
6
+
7
+ First we will make a comment partial to extract showing all the comments for the post. Create the file `app/views/comments/_comment.html.erb` and put the following into it:
8
+
9
+ @@@ html
10
+ <p>
11
+   <b>Commenter:</b>
12
+   <%= comment.commenter %>
13
+ </p>
14
+
15
+ <p>
16
+   <b>Comment:</b>
17
+   <%= comment.body %>
18
+ </p>
19
+ @@@
20
+
21
+ Then in the `app/views/posts/show.html.erb` you can change it to look like the following:
22
+
23
+ @@@ html
24
+ <p class="notice"><%= notice %></p>
25
+
26
+ <p>
27
+   <b>Name:</b>
28
+   <%= @post.name %>
29
+ </p>
30
+
31
+ <p>
32
+   <b>Title:</b>
33
+   <%= @post.title %>
34
+ </p>
35
+
36
+ <p>
37
+   <b>Content:</b>
38
+   <%= @post.content %>
39
+ </p>
40
+
41
+ <h2>Comments</h2>
42
+ <%= render :partial => "comments/comment",
43
+            :collection => @post.comments %>
44
+
45
+ <h2>Add a comment:</h2>
46
+ <%= form_for([@post, @post.comments.build]) do |f| %>
47
+   <div class="field">
48
+     <%= f.label :commenter %><br />
49
+     <%= f.text_field :commenter %>
50
+   </div>
51
+   <div class="field">
52
+     <%= f.label :body %><br />
53
+     <%= f.text_area :body %>
54
+   </div>
55
+   <div class="actions">
56
+     <%= f.submit %>
57
+   </div>
58
+ <% end %>
59
+
60
+ <br />
61
+
62
+ <%= link_to 'Edit Post', edit_post_path(@post) %> |
63
+ <%= link_to 'Back to Posts', posts_path %> |
64
+ @@@
65
+
66
+ This will now render the partial in `app/views/comments/_comment.html.erb` once for each comment that is in the `@post.comments collection`. As the render method iterates over the `@post.comments` collection, it assigns each comment to a local variable named the same as the partial, in this case comment which is then available in the partial for us to show.
67
+
68
+ ### Rendering a Partial Form
69
+
70
+ Lets also move that new comment section out to it’s own partial, again, you create a file `app/views/comments/_form.html.erb` and in it you put:
71
+
72
+ @@@ html
73
+ <%= form_for([@post, @post.comments.build]) do |f| %>
74
+   <div class="field">
75
+     <%= f.label :commenter %><br />
76
+     <%= f.text_field :commenter %>
77
+   </div>
78
+   <div class="field">
79
+     <%= f.label :body %><br />
80
+     <%= f.text_area :body %>
81
+   </div>
82
+   <div class="actions">
83
+     <%= f.submit %>
84
+   </div>
85
+ <% end %>
86
+ @@@
87
+
88
+ Then you make the `app/views/posts/show.html.erb` look like the following:
89
+
90
+ @@@ html
91
+ <p class="notice"><%= notice %></p>
92
+
93
+ <p>
94
+   <b>Name:</b>
95
+   <%= @post.name %>
96
+ </p>
97
+
98
+ <p>
99
+   <b>Title:</b>
100
+   <%= @post.title %>
101
+ </p>
102
+
103
+ <p>
104
+   <b>Content:</b>
105
+   <%= @post.content %>
106
+ </p>
107
+
108
+ <h2>Comments</h2>
109
+ <%= render :partial => "comments/comment",
110
+            :collection => @post.comments %>
111
+
112
+ <h2>Add a comment:</h2>
113
+ <%= render "comments/form" %>
114
+
115
+ <br />
116
+
117
+ <%= link_to 'Edit Post', edit_post_path(@post) %> |
118
+ <%= link_to 'Back to Posts', posts_path %> |
119
+ @@@
120
+
121
+ The second render just defines the partial template we want to render, `comments/form`, Rails is smart enough to spot the forward slash in that string and realize that you want to render the `_form.html.erb` file in the `app/views/comments` directory.
122
+
123
+ The `@post` object is available to any partials rendered in the view because we defined it as an instance variable.
@@ -0,0 +1,57 @@
1
+ ## Deleting Comments
2
+
3
+ Another important feature on a blog is being able to delete SPAM comments. To do this, we need to implement a link of some sort in the view and a `DELETE` action in the `CommentsController`.
4
+
5
+ So first, let’s add the delete link in the `app/views/comments/_comment.html.erb` partial:
6
+
7
+ @@@ html
8
+ <p>
9
+   <b>Commenter:</b>
10
+   <%= comment.commenter %>
11
+ </p>
12
+
13
+ <p>
14
+   <b>Comment:</b>
15
+   <%= comment.body %>
16
+ </p>
17
+
18
+ <p>
19
+   <%= link_to 'Destroy Comment', [comment.post, comment],
20
+                :confirm => 'Are you sure?',
21
+                :method => :delete %>
22
+ </p>
23
+ @@@
24
+
25
+ Clicking this new “Destroy Comment” link will fire off a `DELETE /posts/:id/comments/:id` to our `CommentsController`, which can then use this to find the comment we want to delete, so let’s add a `destroy` action to our controller:
26
+
27
+ @@@ ruby
28
+ class CommentsController < ApplicationController
29
+   def create
30
+     @post = Post.find(params[:post_id])
31
+     @comment = @post.comments.create(params[:comment])
32
+     redirect_to post_path(@post)
33
+   end
34
+
35
+   def destroy
36
+     @post = Post.find(params[:post_id])
37
+     @comment = @post.comments.find(params[:id])
38
+     @comment.destroy
39
+     redirect_to post_path(@post)
40
+   end
41
+ end
42
+ @@@
43
+
44
+ The `destroy` action will find the post we are looking at, locate the comment within the `@post.comments` collection, and then remove it from the database and send us back to the `show` action for the post.
45
+
46
+ ### Deleting Associated Objects
47
+
48
+ If you delete a post then its associated comments will also need to be deleted. Otherwise they would simply occupy space in the database. Rails allows you to use the `dependent` option of an association to achieve this. Modify the `Post` model, `app/models/post.rb`, as follows:
49
+
50
+ @@@ ruby
51
+ class Post < ActiveRecord::Base
52
+   validates :name,  :presence => true
53
+   validates :title, :presence => true,
54
+                     :length => { :minimum => 5 }
55
+   has_many :comments, :dependent => :destroy
56
+ end
57
+ @@@
@@ -0,0 +1,56 @@
1
+ ## Security
2
+
3
+ If you were to publish your blog online, anybody would be able to add, edit and delete posts or delete comments.
4
+
5
+ Rails provides a very simple HTTP authentication system that will work nicely in this situation. First, we enable simple HTTP based authentication in our `app/controllers/application_controller.rb`:
6
+
7
+ @@@ ruby
8
+ class ApplicationController < ActionController::Base
9
+   protect_from_forgery
10
+
11
+   private
12
+
13
+   def authenticate
14
+     authenticate_or_request_with_http_basic do |user_name, password|
15
+       user_name == 'admin' && password == 'password'
16
+     end
17
+   end
18
+ end
19
+ @@@
20
+
21
+ You can obviously change the username and password to whatever you want. We put this method inside of `ApplicationController` so that it is available to all of our controllers.
22
+
23
+ Then in the `PostsController` we need to have a way to block access to the various actions if the person is not authenticated, here we can use the Rails `before_filter` method, which allows us to specify that Rails must run a method and only then allow access to the requested action if that method allows it.
24
+
25
+ To use the before filter, we specify it at the top of our `PostsController`, in this case, we want the user to be authenticated on every action, except for `index` and `show`, so we write that:
26
+
27
+ @@@ ruby
28
+ class PostsController < ApplicationController
29
+
30
+   before_filter :authenticate, :except => [:index, :show]
31
+
32
+   # GET /posts
33
+   # GET /posts.xml
34
+   def index
35
+     @posts = Post.all
36
+     respond_to do |format|
37
+ # snipped for brevity
38
+ @@@
39
+
40
+ <p class="figure">
41
+ <img src="../images/challenge.png" alt="Basic Auth challenge window" />
42
+ </p>
43
+
44
+ We also only want to allow authenticated users to delete comments, so in the `CommentsController` we write:
45
+
46
+ @@@ ruby
47
+ class CommentsController < ApplicationController
48
+
49
+   before_filter :authenticate, :only => :destroy
50
+
51
+   def create
52
+     @post = Post.find(params[:post_id])
53
+ # snipped for brevity
54
+ @@@
55
+
56
+ Now if you try to create a new post, you will be greeted with a basic HTTP Authentication challenge.