renee 0.3.11 → 0.4.0.pre1

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 (231) hide show
  1. data/Gemfile +17 -0
  2. data/Gemfile-renee +8 -0
  3. data/Gemfile-renee-core +8 -0
  4. data/Gemfile-renee-render +9 -0
  5. data/Gemfile-renee-session +9 -0
  6. data/Gemfile-renee-url-generation +8 -0
  7. data/MIT-LICENSE.txt +7 -0
  8. data/README-renee-core.md +242 -0
  9. data/README-renee-render.md +38 -0
  10. data/README-renee-session.md +3 -0
  11. data/README-renee-url-generation.md +3 -0
  12. data/README.md +131 -6
  13. data/Rakefile +109 -9
  14. data/TODO.txt +45 -0
  15. data/config.ru +26 -0
  16. data/examples/blog/blog.rb +3 -1
  17. data/examples/blog/config.ru +24 -19
  18. data/examples/blog/views/edit.erb +10 -1
  19. data/examples/blog/views/show.erb +5 -0
  20. data/lib/renee.rb +11 -4
  21. data/lib/renee/core.rb +98 -0
  22. data/lib/renee/core/chaining.rb +66 -0
  23. data/lib/renee/core/env_accessors.rb +72 -0
  24. data/lib/renee/core/exceptions.rb +15 -0
  25. data/lib/renee/core/matcher.rb +61 -0
  26. data/lib/renee/core/plugins.rb +31 -0
  27. data/lib/renee/core/rack_interaction.rb +50 -0
  28. data/lib/renee/core/request_context.rb +56 -0
  29. data/lib/renee/core/responding.rb +112 -0
  30. data/lib/renee/core/response.rb +78 -0
  31. data/lib/renee/core/routing.rb +319 -0
  32. data/lib/renee/core/transform.rb +18 -0
  33. data/lib/renee/render.rb +221 -0
  34. data/lib/renee/session.rb +50 -0
  35. data/lib/renee/url_generation.rb +117 -0
  36. data/lib/renee/util.rb +7 -0
  37. data/lib/renee/version.rb +2 -4
  38. data/plan.txt +19 -0
  39. data/renee-core.gemspec +26 -0
  40. data/renee-render.gemspec +30 -0
  41. data/renee-session.gemspec +28 -0
  42. data/renee-url-generation.gemspec +24 -0
  43. data/renee.gemspec +5 -6
  44. data/site/MIT-LICENSE.txt +7 -0
  45. data/site/public/css/app.css +75 -0
  46. data/site/public/docs/renee-core/Renee.html +208 -0
  47. data/site/public/docs/renee-core/Renee/Core.html +366 -0
  48. data/site/public/docs/renee-core/Renee/Core/Chaining.html +192 -0
  49. data/site/public/docs/renee-core/Renee/Core/ClassMethods.html +725 -0
  50. data/site/public/docs/renee-core/Renee/Core/ClientError.html +317 -0
  51. data/site/public/docs/renee-core/Renee/Core/EnvAccessors.html +152 -0
  52. data/site/public/docs/renee-core/Renee/Core/EnvAccessors/ClassMethods.html +354 -0
  53. data/site/public/docs/renee-core/Renee/Core/Matcher.html +675 -0
  54. data/site/public/docs/renee-core/Renee/Core/Plugins.html +475 -0
  55. data/site/public/docs/renee-core/Renee/Core/RackInteraction.html +488 -0
  56. data/site/public/docs/renee-core/Renee/Core/RequestContext.html +511 -0
  57. data/site/public/docs/renee-core/Renee/Core/Responding.html +877 -0
  58. data/site/public/docs/renee-core/Renee/Core/Response.html +691 -0
  59. data/site/public/docs/renee-core/Renee/Core/Routing.html +1589 -0
  60. data/site/public/docs/renee-core/Renee/Core/Transform.html +249 -0
  61. data/site/public/docs/renee-core/Renee/Core/URLGeneration.html +597 -0
  62. data/site/public/docs/renee-core/_index.html +244 -0
  63. data/site/public/docs/renee-core/class_list.html +47 -0
  64. data/site/public/docs/renee-core/css/common.css +1 -0
  65. data/site/public/docs/renee-core/css/full_list.css +55 -0
  66. data/site/public/docs/renee-core/css/style.css +322 -0
  67. data/site/public/docs/renee-core/file.README-renee-core.html +341 -0
  68. data/site/public/docs/renee-core/file.README.html +212 -0
  69. data/site/public/docs/renee-core/file_list.html +49 -0
  70. data/site/public/docs/renee-core/frames.html +13 -0
  71. data/site/public/docs/renee-core/index.html +341 -0
  72. data/site/public/docs/renee-core/js/app.js +205 -0
  73. data/site/public/docs/renee-core/js/full_list.js +167 -0
  74. data/site/public/docs/renee-core/js/jquery.js +16 -0
  75. data/site/public/docs/renee-core/method_list.html +590 -0
  76. data/site/public/docs/renee-core/top-level-namespace.html +103 -0
  77. data/site/public/docs/renee-render/Renee.html +116 -0
  78. data/site/public/docs/renee-render/Renee/Core.html +346 -0
  79. data/site/public/docs/renee-render/Renee/Core/Chaining.html +125 -0
  80. data/site/public/docs/renee-render/Renee/Core/ClassMethods.html +620 -0
  81. data/site/public/docs/renee-render/Renee/Core/ClientError.html +317 -0
  82. data/site/public/docs/renee-render/Renee/Core/EnvAccessors.html +152 -0
  83. data/site/public/docs/renee-render/Renee/Core/EnvAccessors/ClassMethods.html +354 -0
  84. data/site/public/docs/renee-render/Renee/Core/Matcher.html +675 -0
  85. data/site/public/docs/renee-render/Renee/Core/RackInteraction.html +488 -0
  86. data/site/public/docs/renee-render/Renee/Core/RequestContext.html +421 -0
  87. data/site/public/docs/renee-render/Renee/Core/Responding.html +873 -0
  88. data/site/public/docs/renee-render/Renee/Core/Response.html +691 -0
  89. data/site/public/docs/renee-render/Renee/Core/Routing.html +1682 -0
  90. data/site/public/docs/renee-render/Renee/Core/Transform.html +249 -0
  91. data/site/public/docs/renee-render/Renee/Core/URLGeneration.html +597 -0
  92. data/site/public/docs/renee-render/Renee/Render.html +873 -0
  93. data/site/public/docs/renee-render/Renee/Render/ClassMethods.html +382 -0
  94. data/site/public/docs/renee-render/Renee/Render/TemplateNotFound.html +126 -0
  95. data/site/public/docs/renee-render/_index.html +143 -0
  96. data/site/public/docs/renee-render/class_list.html +47 -0
  97. data/site/public/docs/renee-render/css/common.css +1 -0
  98. data/site/public/docs/renee-render/css/full_list.css +55 -0
  99. data/site/public/docs/renee-render/css/style.css +322 -0
  100. data/site/public/docs/renee-render/file.README-renee-render.html +104 -0
  101. data/site/public/docs/renee-render/file.README.html +212 -0
  102. data/site/public/docs/renee-render/file_list.html +49 -0
  103. data/site/public/docs/renee-render/frames.html +13 -0
  104. data/site/public/docs/renee-render/index.html +104 -0
  105. data/site/public/docs/renee-render/js/app.js +205 -0
  106. data/site/public/docs/renee-render/js/full_list.js +167 -0
  107. data/site/public/docs/renee-render/js/jquery.js +16 -0
  108. data/site/public/docs/renee-render/method_list.html +110 -0
  109. data/site/public/docs/renee-render/top-level-namespace.html +103 -0
  110. data/site/public/docs/renee-session/Renee.html +106 -0
  111. data/site/public/docs/renee-session/Renee/Session.html +173 -0
  112. data/site/public/docs/renee-session/Renee/Session/ClassMethods.html +470 -0
  113. data/site/public/docs/renee-session/_index.html +136 -0
  114. data/site/public/docs/renee-session/class_list.html +47 -0
  115. data/site/public/docs/renee-session/css/common.css +1 -0
  116. data/site/public/docs/renee-session/css/full_list.css +55 -0
  117. data/site/public/docs/renee-session/css/style.css +322 -0
  118. data/site/public/docs/renee-session/file.README-renee-core.html +341 -0
  119. data/site/public/docs/renee-session/file.README-renee-session.html +69 -0
  120. data/site/public/docs/renee-session/file_list.html +49 -0
  121. data/site/public/docs/renee-session/frames.html +13 -0
  122. data/site/public/docs/renee-session/index.html +69 -0
  123. data/site/public/docs/renee-session/js/app.js +205 -0
  124. data/site/public/docs/renee-session/js/full_list.js +167 -0
  125. data/site/public/docs/renee-session/js/jquery.js +16 -0
  126. data/site/public/docs/renee-session/method_list.html +102 -0
  127. data/site/public/docs/renee-session/top-level-namespace.html +103 -0
  128. data/site/public/docs/renee-url-generation/Renee.html +208 -0
  129. data/site/public/docs/renee-url-generation/Renee/Core.html +366 -0
  130. data/site/public/docs/renee-url-generation/Renee/Core/Chaining.html +192 -0
  131. data/site/public/docs/renee-url-generation/Renee/Core/ClassMethods.html +725 -0
  132. data/site/public/docs/renee-url-generation/Renee/Core/ClientError.html +317 -0
  133. data/site/public/docs/renee-url-generation/Renee/Core/EnvAccessors.html +152 -0
  134. data/site/public/docs/renee-url-generation/Renee/Core/EnvAccessors/ClassMethods.html +354 -0
  135. data/site/public/docs/renee-url-generation/Renee/Core/Matcher.html +675 -0
  136. data/site/public/docs/renee-url-generation/Renee/Core/Plugins.html +475 -0
  137. data/site/public/docs/renee-url-generation/Renee/Core/RackInteraction.html +488 -0
  138. data/site/public/docs/renee-url-generation/Renee/Core/RequestContext.html +511 -0
  139. data/site/public/docs/renee-url-generation/Renee/Core/Responding.html +877 -0
  140. data/site/public/docs/renee-url-generation/Renee/Core/Response.html +691 -0
  141. data/site/public/docs/renee-url-generation/Renee/Core/Routing.html +1589 -0
  142. data/site/public/docs/renee-url-generation/Renee/Core/Transform.html +249 -0
  143. data/site/public/docs/renee-url-generation/_index.html +244 -0
  144. data/site/public/docs/renee-url-generation/class_list.html +47 -0
  145. data/site/public/docs/renee-url-generation/css/common.css +1 -0
  146. data/site/public/docs/renee-url-generation/css/full_list.css +55 -0
  147. data/site/public/docs/renee-url-generation/css/style.css +322 -0
  148. data/site/public/docs/renee-url-generation/file.README-renee-url-generation.html +69 -0
  149. data/site/public/docs/renee-url-generation/file_list.html +49 -0
  150. data/site/public/docs/renee-url-generation/frames.html +13 -0
  151. data/site/public/docs/renee-url-generation/index.html +69 -0
  152. data/site/public/docs/renee-url-generation/js/app.js +205 -0
  153. data/site/public/docs/renee-url-generation/js/full_list.js +167 -0
  154. data/site/public/docs/renee-url-generation/js/jquery.js +16 -0
  155. data/site/public/docs/renee-url-generation/method_list.html +590 -0
  156. data/site/public/docs/renee-url-generation/top-level-namespace.html +103 -0
  157. data/site/public/docs/renee/Renee.html +232 -0
  158. data/site/public/docs/renee/Renee/Application.html +367 -0
  159. data/site/public/docs/renee/Renee/Core.html +370 -0
  160. data/site/public/docs/renee/Renee/Core/Chaining.html +192 -0
  161. data/site/public/docs/renee/Renee/Core/ClassMethods.html +725 -0
  162. data/site/public/docs/renee/Renee/Core/ClientError.html +317 -0
  163. data/site/public/docs/renee/Renee/Core/EnvAccessors.html +152 -0
  164. data/site/public/docs/renee/Renee/Core/EnvAccessors/ClassMethods.html +354 -0
  165. data/site/public/docs/renee/Renee/Core/Matcher.html +675 -0
  166. data/site/public/docs/renee/Renee/Core/Plugins.html +475 -0
  167. data/site/public/docs/renee/Renee/Core/RackInteraction.html +488 -0
  168. data/site/public/docs/renee/Renee/Core/RequestContext.html +511 -0
  169. data/site/public/docs/renee/Renee/Core/Responding.html +877 -0
  170. data/site/public/docs/renee/Renee/Core/Response.html +691 -0
  171. data/site/public/docs/renee/Renee/Core/Routing.html +1589 -0
  172. data/site/public/docs/renee/Renee/Core/Transform.html +249 -0
  173. data/site/public/docs/renee/Renee/Core/URLGeneration.html +597 -0
  174. data/site/public/docs/renee/Renee/Render.html +877 -0
  175. data/site/public/docs/renee/Renee/Render/ClassMethods.html +382 -0
  176. data/site/public/docs/renee/Renee/Render/TemplateNotFound.html +126 -0
  177. data/site/public/docs/renee/Renee/Session.html +177 -0
  178. data/site/public/docs/renee/Renee/Session/ClassMethods.html +470 -0
  179. data/site/public/docs/renee/Renee/URLGeneration.html +142 -0
  180. data/site/public/docs/renee/Renee/URLGeneration/ClassMethods.html +593 -0
  181. data/site/public/docs/renee/Renee/Util.html +163 -0
  182. data/site/public/docs/renee/_index.html +336 -0
  183. data/site/public/docs/renee/class_list.html +47 -0
  184. data/site/public/docs/renee/css/common.css +1 -0
  185. data/site/public/docs/renee/css/full_list.css +55 -0
  186. data/site/public/docs/renee/css/style.css +322 -0
  187. data/site/public/docs/renee/file.README.html +212 -0
  188. data/site/public/docs/renee/file_list.html +49 -0
  189. data/site/public/docs/renee/frames.html +13 -0
  190. data/site/public/docs/renee/index.html +212 -0
  191. data/site/public/docs/renee/js/app.js +205 -0
  192. data/site/public/docs/renee/js/full_list.js +167 -0
  193. data/site/public/docs/renee/js/jquery.js +16 -0
  194. data/site/public/docs/renee/method_list.html +758 -0
  195. data/site/public/docs/renee/top-level-namespace.html +202 -0
  196. data/site/public/img/favicon.ico +0 -0
  197. data/site/public/img/reneeclean.png +0 -0
  198. data/site/public/img/russiangithub.png +0 -0
  199. data/site/public/img/stoneposter.png +0 -0
  200. data/site/public/img/vospit.jpeg +0 -0
  201. data/site/views/chaining.md +32 -0
  202. data/site/views/index.md +219 -0
  203. data/site/views/layouts/app.haml +16 -0
  204. data/site/views/rack-integration.md +51 -0
  205. data/site/views/responding.md +103 -0
  206. data/site/views/route-generation.md +82 -0
  207. data/site/views/routing.md +261 -0
  208. data/site/views/settings.md +19 -0
  209. data/site/views/team-renee.md +13 -0
  210. data/site/views/tutorial.md +57 -0
  211. data/site/views/variable-types.md +57 -0
  212. data/test.watchr +61 -0
  213. data/test/renee-core/chaining_test.rb +33 -0
  214. data/test/renee-core/env_accessors_test.rb +43 -0
  215. data/test/renee-core/include_test.rb +14 -0
  216. data/test/renee-core/request_context_test.rb +70 -0
  217. data/test/renee-core/responding_test.rb +128 -0
  218. data/test/renee-core/routing_test.rb +443 -0
  219. data/test/renee-core/test_helper.rb +4 -0
  220. data/test/renee-core/variable_type_test.rb +57 -0
  221. data/test/renee-render/render_test.rb +162 -0
  222. data/test/renee-render/test_helper.rb +9 -0
  223. data/test/renee-session/session_test.rb +31 -0
  224. data/test/renee-session/test_helper.rb +9 -0
  225. data/test/renee-url-generation/test_helper.rb +10 -0
  226. data/test/renee-url-generation/url_generation_test.rb +63 -0
  227. data/test/{blog_test.rb → renee/blog_test.rb} +10 -5
  228. data/test/renee/test_helper.rb +56 -0
  229. data/test/test_helper.rb +23 -10
  230. metadata +333 -156
  231. data/.yardopts +0 -6
@@ -0,0 +1,47 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+
7
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
8
+
9
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
10
+
11
+
12
+
13
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
16
+
17
+
18
+ <base id="base_target" target="_parent" />
19
+ </head>
20
+ <body>
21
+ <script type="text/javascript" charset="utf-8">
22
+ if (window.top.frames.main) {
23
+ document.getElementById('base_target').target = 'main';
24
+ document.body.className = 'frames';
25
+ }
26
+ </script>
27
+ <div id="content">
28
+ <h1 id="full_list_header">Class List</h1>
29
+ <div id="nav">
30
+
31
+ <a target="_self" href="class_list.html">Classes</a>
32
+
33
+ <a target="_self" href="method_list.html">Methods</a>
34
+
35
+ <a target="_self" href="file_list.html">Files</a>
36
+
37
+ </div>
38
+ <div id="search">Search: <input type="text" /></div>
39
+
40
+ <ul id="full_list" class="class">
41
+ <li><span class='object_link'><a href="top-level-namespace.html" title=" (root)">Top Level Namespace</a></span></li>
42
+ <li><a class='toggle'></a> <span class='object_link'><a href="Renee.html" title="Renee (module)">Renee</a></span><small class='search_info'>Top Level Namespace</small></li><ul><li><span class='object_link'><a href="Renee/Application.html" title="Renee::Application (class)">Application</a></span> &lt; Core<small class='search_info'>Renee</small></li><li><a class='toggle'></a> <span class='object_link'><a href="Renee/Core.html" title="Renee::Core (class)">Core</a></span> &lt; Object<small class='search_info'>Renee</small></li><ul><li><a class='toggle'></a> <span class='object_link'><a href="Renee/Core/Chaining.html" title="Renee::Core::Chaining (module)">Chaining</a></span><small class='search_info'>Renee::Core</small></li><ul></ul><li><span class='object_link'><a href="Renee/Core/ClassMethods.html" title="Renee::Core::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/ClientError.html" title="Renee::Core::ClientError (class)">ClientError</a></span> &lt; StandardError<small class='search_info'>Renee::Core</small></li><li><a class='toggle'></a> <span class='object_link'><a href="Renee/Core/EnvAccessors.html" title="Renee::Core::EnvAccessors (module)">EnvAccessors</a></span><small class='search_info'>Renee::Core</small></li><ul><li><span class='object_link'><a href="Renee/Core/EnvAccessors/ClassMethods.html" title="Renee::Core::EnvAccessors::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>Renee::Core::EnvAccessors</small></li></ul><li><span class='object_link'><a href="Renee/Core/Matcher.html" title="Renee::Core::Matcher (class)">Matcher</a></span> &lt; Object<small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/Plugins.html" title="Renee::Core::Plugins (module)">Plugins</a></span><small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/RackInteraction.html" title="Renee::Core::RackInteraction (module)">RackInteraction</a></span><small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/RequestContext.html" title="Renee::Core::RequestContext (module)">RequestContext</a></span><small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/Responding.html" title="Renee::Core::Responding (module)">Responding</a></span><small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/Response.html" title="Renee::Core::Response (class)">Response</a></span> &lt; Response<small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/Routing.html" title="Renee::Core::Routing (module)">Routing</a></span><small class='search_info'>Renee::Core</small></li><li><span class='object_link'><a href="Renee/Core/Transform.html" title="Renee::Core::Transform (module)">Transform</a></span><small class='search_info'>Renee::Core</small></li></ul><li><a class='toggle'></a> <span class='object_link'><a href="Renee/Render.html" title="Renee::Render (module)">Render</a></span><small class='search_info'>Renee</small></li><ul><li><span class='object_link'><a href="Renee/Render/ClassMethods.html" title="Renee::Render::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>Renee::Render</small></li><li><span class='object_link'><a href="Renee/Render/TemplateNotFound.html" title="Renee::Render::TemplateNotFound (class)">TemplateNotFound</a></span> &lt; RuntimeError<small class='search_info'>Renee::Render</small></li></ul><li><a class='toggle'></a> <span class='object_link'><a href="Renee/Session.html" title="Renee::Session (module)">Session</a></span><small class='search_info'>Renee</small></li><ul><li><span class='object_link'><a href="Renee/Session/ClassMethods.html" title="Renee::Session::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>Renee::Session</small></li></ul><li><a class='toggle'></a> <span class='object_link'><a href="Renee/URLGeneration.html" title="Renee::URLGeneration (module)">URLGeneration</a></span><small class='search_info'>Renee</small></li><ul><li><a class='toggle'></a> <span class='object_link'><a href="Renee/URLGeneration/ClassMethods.html" title="Renee::URLGeneration::ClassMethods (module)">ClassMethods</a></span><small class='search_info'>Renee::URLGeneration</small></li><ul></ul></ul><li><span class='object_link'><a href="Renee/Util.html" title="Renee::Util (module)">Util</a></span><small class='search_info'>Renee</small></li></ul>
43
+
44
+ </ul>
45
+ </div>
46
+ </body>
47
+ </html>
@@ -0,0 +1 @@
1
+ /* Override this file with custom rules */
@@ -0,0 +1,55 @@
1
+ body {
2
+ margin: 0;
3
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
4
+ font-size: 13px;
5
+ height: 101%;
6
+ overflow-x: hidden;
7
+ }
8
+
9
+ h1 { padding: 12px 10px; padding-bottom: 0; margin: 0; font-size: 1.4em; }
10
+ .clear { clear: both; }
11
+ #search { position: absolute; right: 5px; top: 9px; padding-left: 24px; }
12
+ #content.insearch #search, #content.insearch #noresults { background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==) no-repeat center left; }
13
+ #full_list { padding: 0; list-style: none; margin-left: 0; }
14
+ #full_list ul { padding: 0; }
15
+ #full_list li { padding: 5px; padding-left: 12px; margin: 0; font-size: 1.1em; list-style: none; }
16
+ #noresults { padding: 7px 12px; }
17
+ #content.insearch #noresults { margin-left: 7px; }
18
+ ul.collapsed ul, ul.collapsed li { display: none; }
19
+ ul.collapsed.search_uncollapsed { display: block; }
20
+ ul.collapsed.search_uncollapsed li { display: list-item; }
21
+ li a.toggle { cursor: default; position: relative; left: -5px; top: 4px; text-indent: -999px; width: 10px; height: 9px; margin-left: -10px; display: block; float: left; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC) no-repeat bottom left; }
22
+ li.collapsed a.toggle { opacity: 0.5; cursor: default; background-position: top left; }
23
+ li { color: #888; cursor: pointer; }
24
+ li.deprecated { text-decoration: line-through; font-style: italic; }
25
+ li.r1 { background: #f0f0f0; }
26
+ li.r2 { background: #fafafa; }
27
+ li:hover { background: #ddd; }
28
+ li small:before { content: "("; }
29
+ li small:after { content: ")"; }
30
+ li small.search_info { display: none; }
31
+ a:link, a:visited { text-decoration: none; color: #05a; }
32
+ li.clicked { background: #05a; color: #ccc; }
33
+ li.clicked a:link, li.clicked a:visited { color: #eee; }
34
+ li.clicked a.toggle { opacity: 0.5; background-position: bottom right; }
35
+ li.collapsed.clicked a.toggle { background-position: top right; }
36
+ #search input { border: 1px solid #bbb; -moz-border-radius: 3px; -webkit-border-radius: 3px; }
37
+ #nav { margin-left: 10px; font-size: 0.9em; display: none; color: #aaa; }
38
+ #nav a:link, #nav a:visited { color: #358; }
39
+ #nav a:hover { background: transparent; color: #5af; }
40
+
41
+ .frames #content h1 { margin-top: 0; }
42
+ .frames li { white-space: nowrap; cursor: normal; }
43
+ .frames li small { display: block; font-size: 0.8em; }
44
+ .frames li small:before { content: ""; }
45
+ .frames li small:after { content: ""; }
46
+ .frames li small.search_info { display: none; }
47
+ .frames #search { width: 170px; position: static; margin: 3px; margin-left: 10px; font-size: 0.9em; color: #888; padding-left: 0; padding-right: 24px; }
48
+ .frames #content.insearch #search { background-position: center right; }
49
+ .frames #search input { width: 110px; }
50
+ .frames #nav { display: block; }
51
+
52
+ #full_list.insearch li { display: none; }
53
+ #full_list.insearch li.found { display: list-item; padding-left: 10px; }
54
+ #full_list.insearch li a.toggle { display: none; }
55
+ #full_list.insearch li small.search_info { display: block; }
@@ -0,0 +1,322 @@
1
+ body {
2
+ padding: 0 20px;
3
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
4
+ font-size: 13px;
5
+ }
6
+ body.frames { padding: 0 5px; }
7
+ h1 { font-size: 25px; margin: 1em 0 0.5em; padding-top: 4px; border-top: 1px dotted #d5d5d5; }
8
+ h1.noborder { border-top: 0px; margin-top: 0; padding-top: 4px; }
9
+ h1.title { margin-bottom: 10px; }
10
+ h1.alphaindex { margin-top: 0; font-size: 22px; }
11
+ h2 {
12
+ padding: 0;
13
+ padding-bottom: 3px;
14
+ border-bottom: 1px #aaa solid;
15
+ font-size: 1.4em;
16
+ margin: 1.8em 0 0.5em;
17
+ }
18
+ h2 small { font-weight: normal; font-size: 0.7em; display: block; float: right; }
19
+ .clear { clear: both; }
20
+ .inline { display: inline; }
21
+ .inline p:first-child { display: inline; }
22
+ .docstring h1, .docstring h2, .docstring h3, .docstring h4 { padding: 0; border: 0; border-bottom: 1px dotted #bbb; }
23
+ .docstring h1 { font-size: 1.2em; }
24
+ .docstring h2 { font-size: 1.1em; }
25
+ .docstring h3, .docstring h4 { font-size: 1em; border-bottom: 0; padding-top: 10px; }
26
+ .summary_desc .object_link, .docstring .object_link { font-family: monospace; }
27
+ .rdoc-term { padding-right: 25px; font-weight: bold; }
28
+ .rdoc-list p { margin: 0; padding: 0; margin-bottom: 4px; }
29
+
30
+ /* style for <ul> */
31
+ #filecontents li > p, .docstring li > p { margin: 0px; }
32
+ #filecontents ul, .docstring ul { padding-left: 20px; }
33
+ /* style for <dl> */
34
+ #filecontents dl, .docstring dl { border: 1px solid #ccc; }
35
+ #filecontents dt, .docstring dt { background: #ddd; font-weight: bold; padding: 3px 5px; }
36
+ #filecontents dd, .docstring dd { padding: 5px 0px; margin-left: 18px; }
37
+ #filecontents dd > p, .docstring dd > p { margin: 0px; }
38
+
39
+ .note {
40
+ color: #222;
41
+ -moz-border-radius: 3px; -webkit-border-radius: 3px;
42
+ background: #e3e4e3; border: 1px solid #d5d5d5; padding: 7px 10px;
43
+ display: block;
44
+ }
45
+ .note.todo { background: #ffffc5; border-color: #ececaa; }
46
+ .note.returns_void { background: #efefef; }
47
+ .note.deprecated { background: #ffe5e5; border-color: #e9dada; }
48
+ .note.private { background: #ffffc5; border-color: #ececaa; }
49
+ .note.title { text-transform: lowercase; padding: 1px 5px; font-size: 0.9em; font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif; display: inline; }
50
+ .summary_signature + .note.title { margin-left: 7px; }
51
+ h1 .note.title { font-size: 0.5em; font-weight: normal; padding: 3px 5px; position: relative; top: -3px; text-transform: capitalize; }
52
+ .note.title.constructor { color: #fff; background: #6a98d6; border-color: #6689d6; }
53
+ .note.title.writeonly { color: #fff; background: #45a638; border-color: #2da31d; }
54
+ .note.title.readonly { color: #fff; background: #6a98d6; border-color: #6689d6; }
55
+ .note.title.private { background: #d5d5d5; border-color: #c5c5c5; }
56
+ .discussion .note { margin-top: 6px; }
57
+ .discussion .note:first-child { margin-top: 0; }
58
+
59
+ h3.inherited {
60
+ font-style: italic;
61
+ font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
62
+ font-weight: normal;
63
+ padding: 0;
64
+ margin: 0;
65
+ margin-top: 12px;
66
+ margin-bottom: 3px;
67
+ font-size: 13px;
68
+ }
69
+ p.inherited {
70
+ padding: 0;
71
+ margin: 0;
72
+ margin-left: 25px;
73
+ }
74
+
75
+ #filecontents dl.box, dl.box {
76
+ border: 0;
77
+ width: 520px;
78
+ font-size: 1em;
79
+ }
80
+ #filecontents dl.box dt, dl.box dt {
81
+ float: left;
82
+ display: block;
83
+ width: 100px;
84
+ margin: 0;
85
+ text-align: right;
86
+ font-weight: bold;
87
+ background: transparent;
88
+ border: 1px solid #aaa;
89
+ border-width: 1px 0px 0px 1px;
90
+ padding: 6px 0;
91
+ padding-right: 10px;
92
+ }
93
+ #filecontents dl.box dd, dl.box dd {
94
+ float: left;
95
+ display: block;
96
+ width: 380px;
97
+ margin: 0;
98
+ padding: 6px 0;
99
+ padding-right: 20px;
100
+ border: 1px solid #aaa;
101
+ border-width: 1px 1px 0 0;
102
+ }
103
+ #filecontents dl.box .last, dl.box .last {
104
+ border-bottom: 1px solid #aaa;
105
+ }
106
+ #filecontents dl.box .r1, dl.box .r1 { background: #eee; }
107
+
108
+ ul.toplevel { list-style: none; padding-left: 0; font-size: 1.1em; }
109
+ #files { padding-left: 15px; font-size: 1.1em; }
110
+
111
+ #files { padding: 0; }
112
+ #files li { list-style: none; display: inline; padding: 7px 12px; line-height: 35px; }
113
+
114
+ dl.constants { margin-left: 40px; }
115
+ dl.constants dt { font-weight: bold; font-size: 1.1em; margin-bottom: 5px; }
116
+ dl.constants dd { width: 75%; white-space: pre; font-family: monospace; margin-bottom: 18px; }
117
+
118
+ .summary_desc { margin-left: 32px; display: block; font-family: sans-serif; }
119
+ .summary_desc tt { font-size: 0.9em; }
120
+ dl.constants .note { padding: 2px 6px; padding-right: 12px; margin-top: 6px; }
121
+ dl.constants .docstring { margin-left: 32px; font-size: 0.9em; font-weight: normal; }
122
+ dl.constants .tags { padding-left: 32px; font-size: 0.9em; line-height: 0.8em; }
123
+ dl.constants .discussion *:first-child { margin-top: 0; }
124
+ dl.constants .discussion *:last-child { margin-bottom: 0; }
125
+
126
+ .method_details { border-top: 1px dotted #aaa; margin-top: 15px; padding-top: 0; }
127
+ .method_details.first { border: 0; }
128
+ p.signature {
129
+ font-size: 1.1em; font-weight: normal; font-family: Monaco, Consolas, Courier, monospace;
130
+ padding: 6px 10px; margin-top: 18px;
131
+ background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
132
+ }
133
+ p.signature tt { font-family: Monaco, Consolas, Courier, monospace; }
134
+ p.signature .overload { display: block; }
135
+ p.signature .extras { font-weight: normal; font-family: sans-serif; color: #444; font-size: 1em; }
136
+ p.signature .aliases { display: block; font-weight: normal; font-size: 0.9em; font-family: sans-serif; margin-top: 0px; color: #555; }
137
+ p.signature .aliases .names { font-family: Monaco, Consolas, Courier, monospace; font-weight: bold; color: #000; font-size: 1.2em; }
138
+
139
+ .tags h3 { font-size: 1em; margin-bottom: 0; }
140
+ .tags ul { margin-top: 5px; padding-left: 30px; list-style: square; }
141
+ .tags ul li { margin-bottom: 3px; }
142
+ .tags ul .name { font-family: monospace; font-weight: bold; }
143
+ .tags ul .note { padding: 3px 6px; }
144
+ .tags { margin-bottom: 12px; }
145
+
146
+ .tags .examples h3 { margin-bottom: 10px; }
147
+ .tags .examples h4 { padding: 0; margin: 0; margin-left: 15px; font-weight: bold; font-size: 0.9em; }
148
+
149
+ .tags .overload .overload_item { list-style: none; margin-bottom: 25px; }
150
+ .tags .overload .overload_item .signature {
151
+ padding: 2px 8px;
152
+ background: #e5e8ff; border: 1px solid #d8d8e5; -moz-border-radius: 3px; -webkit-border-radius: 3px;
153
+ }
154
+ .tags .overload .signature { margin-left: -15px; font-family: monospace; display: block; font-size: 1.1em; }
155
+ .tags .overload .docstring { margin-top: 15px; }
156
+
157
+ .defines { display: none; }
158
+
159
+ #method_missing_details .notice.this { position: relative; top: -8px; color: #888; padding: 0; margin: 0; }
160
+
161
+ .showSource { font-size: 0.9em; }
162
+ .showSource a:link, .showSource a:visited { text-decoration: none; color: #666; }
163
+
164
+ #content a:link, #content a:visited { text-decoration: none; color: #05a; }
165
+ #content a:hover { background: #ffffa5; }
166
+ div.docstring, p.docstring { margin-right: 6em; }
167
+
168
+ ul.summary {
169
+ list-style: none;
170
+ font-family: monospace;
171
+ font-size: 1em;
172
+ line-height: 1.5em;
173
+ }
174
+ ul.summary a:link, ul.summary a:visited {
175
+ text-decoration: none; font-size: 1.1em;
176
+ }
177
+ ul.summary li { margin-bottom: 5px; }
178
+ .summary .summary_signature {
179
+ padding: 1px 10px;
180
+ background: #eaeaff; border: 1px solid #dfdfe5;
181
+ -moz-border-radius: 3px; -webkit-border-radius: 3px;
182
+ }
183
+ .summary_signature:hover { background: #eeeeff; cursor: pointer; }
184
+ ul.summary.compact li { display: inline-block; margin: 0px 5px 0px 0px; line-height: 2.6em;}
185
+ ul.summary.compact .summary_signature { padding: 5px 7px; padding-right: 4px; }
186
+ #content .summary_signature:hover a:link,
187
+ #content .summary_signature:hover a:visited {
188
+ background: transparent;
189
+ color: #48f;
190
+ }
191
+
192
+ p.inherited a { font-family: monospace; font-size: 0.9em; }
193
+ p.inherited { word-spacing: 5px; font-size: 1.2em; }
194
+
195
+ p.children { font-size: 1.2em; }
196
+ p.children a { font-size: 0.9em; }
197
+ p.children strong { font-size: 0.8em; }
198
+ p.children strong.modules { padding-left: 5px; }
199
+
200
+ ul.fullTree { display: none; padding-left: 0; list-style: none; margin-left: 0; margin-bottom: 10px; }
201
+ ul.fullTree ul { margin-left: 0; padding-left: 0; list-style: none; }
202
+ ul.fullTree li { text-align: center; padding-top: 18px; padding-bottom: 12px; background: url(data:image/gif;base64,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) no-repeat top center; }
203
+ ul.fullTree li:first-child { padding-top: 0; background: transparent; }
204
+ ul.fullTree li:last-child { padding-bottom: 0; }
205
+ .showAll ul.fullTree { display: block; }
206
+ .showAll .inheritName { display: none; }
207
+
208
+ #search { position: absolute; right: 14px; top: 0px; }
209
+ #search a:link, #search a:visited {
210
+ display: block; float: left; margin-right: 4px;
211
+ padding: 8px 10px; text-decoration: none; color: #05a;
212
+ border: 1px solid #d8d8e5;
213
+ -moz-border-radius-bottomleft: 3px; -moz-border-radius-bottomright: 3px;
214
+ -webkit-border-bottom-left-radius: 3px; -webkit-border-bottom-right-radius: 3px;
215
+ background: #eaf0ff;
216
+ -webkit-box-shadow: -1px 1px 3px #ddd;
217
+ }
218
+ #search a:hover { background: #f5faff; color: #06b; }
219
+ #search a.active {
220
+ background: #568; padding-bottom: 20px; color: #fff; border: 1px solid #457;
221
+ -moz-border-radius-topleft: 5px; -moz-border-radius-topright: 5px;
222
+ -webkit-border-top-left-radius: 5px; -webkit-border-top-right-radius: 5px;
223
+ }
224
+ #search a.inactive { color: #999; }
225
+ .frames #search { display: none; }
226
+ .inheritanceTree, .toggleDefines { float: right; }
227
+
228
+ #menu { font-size: 1.3em; color: #bbb; top: -5px; position: relative; }
229
+ #menu .title, #menu a { font-size: 0.7em; }
230
+ #menu .title a { font-size: 1em; }
231
+ #menu .title { color: #555; }
232
+ #menu a:link, #menu a:visited { color: #333; text-decoration: none; border-bottom: 1px dotted #bbd; }
233
+ #menu a:hover { color: #05a; }
234
+ #menu .noframes { display: none; }
235
+ .frames #menu .noframes { display: inline; float: right; }
236
+
237
+ #footer { margin-top: 15px; border-top: 1px solid #ccc; text-align: center; padding: 7px 0; color: #999; }
238
+ #footer a:link, #footer a:visited { color: #444; text-decoration: none; border-bottom: 1px dotted #bbd; }
239
+ #footer a:hover { color: #05a; }
240
+
241
+ #listing ul.alpha { font-size: 1.1em; }
242
+ #listing ul.alpha { margin: 0; padding: 0; padding-bottom: 10px; list-style: none; }
243
+ #listing ul.alpha li.letter { font-size: 1.4em; padding-bottom: 10px; }
244
+ #listing ul.alpha ul { margin: 0; padding-left: 15px; }
245
+ #listing ul small { color: #666; font-size: 0.7em; }
246
+
247
+ li.r1 { background: #f0f0f0; }
248
+ li.r2 { background: #fafafa; }
249
+
250
+ #search_frame {
251
+ z-index: 9999;
252
+ background: #fff;
253
+ display: none;
254
+ position: absolute;
255
+ top: 36px;
256
+ right: 18px;
257
+ width: 500px;
258
+ height: 80%;
259
+ overflow-y: scroll;
260
+ border: 1px solid #999;
261
+ border-collapse: collapse;
262
+ -webkit-box-shadow: -7px 5px 25px #aaa;
263
+ -moz-box-shadow: -7px 5px 25px #aaa;
264
+ -moz-border-radius: 2px;
265
+ -webkit-border-radius: 2px;
266
+ }
267
+
268
+ #content ul.summary li.deprecated .summary_signature a:link,
269
+ #content ul.summary li.deprecated .summary_signature a:visited { text-decoration: line-through; font-style: italic; }
270
+
271
+ #toc {
272
+ padding: 20px; padding-right: 30px; border: 1px solid #ddd; float: right; background: #fff; margin-left: 20px; margin-bottom: 20px;
273
+ max-width: 300px;
274
+ -webkit-box-shadow: -2px 2px 6px #bbb;
275
+ -moz-box-shadow: -2px 2px 6px #bbb;
276
+ z-index: 5000;
277
+ position: relative;
278
+ }
279
+ #toc.nofloat { float: none; max-width: none; border: none; padding: 0; margin: 20px 0; -webkit-box-shadow: none; -moz-box-shadow: none; }
280
+ #toc.nofloat.hidden { padding: 0; background: 0; margin-bottom: 5px; }
281
+ #toc .title { margin: 0; }
282
+ #toc ol { padding-left: 1.8em; }
283
+ #toc li { font-size: 1.1em; line-height: 1.7em; }
284
+ #toc > ol > li { font-size: 1.1em; font-weight: bold; }
285
+ #toc ol > ol { font-size: 0.9em; }
286
+ #toc ol ol > ol { padding-left: 2.3em; }
287
+ #toc ol + li { margin-top: 0.3em; }
288
+ #toc.hidden { padding: 10px; background: #f6f6f6; -webkit-box-shadow: none; -moz-box-shadow: none; }
289
+ #filecontents h1 + #toc.nofloat { margin-top: 0; }
290
+
291
+ /* syntax highlighting */
292
+ .source_code { display: none; padding: 3px 8px; border-left: 8px solid #ddd; margin-top: 5px; }
293
+ #filecontents pre.code, .docstring pre.code, .source_code pre { font-family: monospace; }
294
+ #filecontents pre.code, .docstring pre.code { display: block; }
295
+ .source_code .lines { padding-right: 12px; color: #555; text-align: right; }
296
+ #filecontents pre.code, .docstring pre.code,
297
+ .tags pre.example { padding: 5px 12px; margin-top: 4px; border: 1px solid #eef; background: #f5f5ff; }
298
+ pre.code { color: #000; }
299
+ pre.code .info.file { color: #555; }
300
+ pre.code .val { color: #036A07; }
301
+ pre.code .tstring_content,
302
+ pre.code .heredoc_beg, pre.code .heredoc_end,
303
+ pre.code .qwords_beg, pre.code .qwords_end,
304
+ pre.code .tstring, pre.code .dstring { color: #036A07; }
305
+ pre.code .fid, pre.code .rubyid_new, pre.code .rubyid_to_s,
306
+ pre.code .rubyid_to_sym, pre.code .rubyid_to_f,
307
+ pre.code .dot + pre.code .id,
308
+ pre.code .rubyid_to_i pre.code .rubyid_each { color: #0085FF; }
309
+ pre.code .comment { color: #0066FF; }
310
+ pre.code .const, pre.code .constant { color: #585CF6; }
311
+ pre.code .symbol { color: #C5060B; }
312
+ pre.code .kw,
313
+ pre.code .label,
314
+ pre.code .rubyid_require,
315
+ pre.code .rubyid_extend,
316
+ pre.code .rubyid_include { color: #0000FF; }
317
+ pre.code .ivar { color: #318495; }
318
+ pre.code .gvar,
319
+ pre.code .rubyid_backref,
320
+ pre.code .rubyid_nth_ref { color: #6D79DE; }
321
+ pre.code .regexp, .dregexp { color: #036A07; }
322
+ pre.code a { border-bottom: 1px dotted #bbf; }
@@ -0,0 +1,212 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
+ <title>
7
+ File: README
8
+
9
+ &mdash; Documentation by YARD 0.7.4
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ relpath = '';
19
+ if (relpath != '') relpath += '/';
20
+ </script>
21
+
22
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
23
+
24
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
25
+
26
+
27
+ </head>
28
+ <body>
29
+ <script type="text/javascript" charset="utf-8">
30
+ if (window.top.frames.main) document.body.className = 'frames';
31
+ </script>
32
+
33
+ <div id="header">
34
+ <div id="menu">
35
+
36
+ <a href="_index.html" title="Index">Index</a> &raquo;
37
+ <span class="title">File: README</span>
38
+
39
+
40
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
41
+ </div>
42
+
43
+ <div id="search">
44
+
45
+ <a id="class_list_link" href="#">Class List</a>
46
+
47
+ <a id="method_list_link" href="#">Method List</a>
48
+
49
+ <a id="file_list_link" href="#">File List</a>
50
+
51
+ </div>
52
+ <div class="clear"></div>
53
+ </div>
54
+
55
+ <iframe id="search_frame"></iframe>
56
+
57
+ <div id="content"><div id='filecontents'><h1>Renee</h1>
58
+
59
+ <p>The super friendly rack-based web framework.</p>
60
+
61
+ <h2>Introduction</h2>
62
+
63
+ <p>Renee is a new Rack-based library for describing web applications. Sinatra delivered a new simple way to think about building web applications. The popularity of Sinatra both as a library and as a concept shows now enduring the concept really was. Sinatra was different from Rails because the entire DSL was lightweight, easy to read and combined routing and actions into a single file. However, let's consider an example from Sinatra to see where we can improve upon this.</p>
64
+
65
+ <p>Consider:</p>
66
+
67
+ <p><code>ruby
68
+ get '/blog/:id' do
69
+ Blog.get(params[:id])
70
+ end
71
+ </code></p>
72
+
73
+ <p>This is not too bad so far. The repetition of <code>:id</code> is a bit un-DRY, but not bad. Let's keep expanding upon this.</p>
74
+
75
+ <p>```ruby
76
+ get '/blog/:id' do
77
+ Blog.get(params[:id])
78
+ end</p>
79
+
80
+ <p>put '/blog/:id' do
81
+ Blog.get(params[:id]).update_attributes(params)
82
+ end
83
+ ```</p>
84
+
85
+ <p>Now, we've retrieved blog in two places. Time to refactor. We'd normally create a before filter, with the same path.</p>
86
+
87
+ <p>```ruby
88
+ before '/blog/:id' do
89
+ @blog = Blog.get(params[:id])
90
+ end</p>
91
+
92
+ <p>get '/blog/:id' do
93
+ @blog
94
+ end</p>
95
+
96
+ <p>put '/blog/:id' do
97
+ @blog.update_attributes(params)
98
+ end
99
+ ```</p>
100
+
101
+ <p>Now we've repeated the same path three times. With Renee, we can describe these kind of ideas in a simple, easy-to-read way. Here is the equivalent in Renee.</p>
102
+
103
+ <p>```ruby
104
+ path 'blog' do
105
+ var do |id|</p>
106
+
107
+ <pre class="code"><span class='ivar'>@blog</span> <span class='op'>=</span> <span class='const'>Blog</span><span class='period'>.</span><span class='id identifier rubyid_get'>get</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
108
+ <span class='id identifier rubyid_get'>get</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_halt'>halt</span> <span class='ivar'>@blog</span> <span class='rbrace'>}</span>
109
+ <span class='id identifier rubyid_put'>put</span> <span class='lbrace'>{</span> <span class='ivar'>@blog</span><span class='period'>.</span><span class='id identifier rubyid_update'>update</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_params'>params</span><span class='rparen'>)</span><span class='semicolon'>;</span> <span class='id identifier rubyid_halt'>halt</span> <span class='symbol'>:ok</span><span class='rbrace'>}</span>
110
+ </pre>
111
+
112
+ <p> end
113
+ end
114
+ ```</p>
115
+
116
+ <p>This web library is inspired by Sinatra, but offers an approach more inline with Rack itself, and lets you maximize code-reuse within your application.</p>
117
+
118
+ <h2>Installation</h2>
119
+
120
+ <p>Setup Renee by running:</p>
121
+
122
+ <p><code>
123
+ gem install renee
124
+ </code></p>
125
+
126
+ <p>or by adding <code>Renee</code> to your <code>Gemfile</code>:</p>
127
+
128
+ <p>```ruby</p>
129
+
130
+ <h1>Gemfile</h1>
131
+
132
+ <p>gem "renee", "~> 0.0.1"
133
+ ```</p>
134
+
135
+ <p>Now you can start using Renee for your application!</p>
136
+
137
+ <h2>Usage</h2>
138
+
139
+ <p>In your rackup file, give this a go!</p>
140
+
141
+ <p>```ruby
142
+ require 'renee'</p>
143
+
144
+ <p>run Renee.core {
145
+ path('test') do</p>
146
+
147
+ <pre class="code"><span class='id identifier rubyid_get'>get</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_halt'>halt</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Hey, this is a get!</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
148
+ <span class='id identifier rubyid_post'>post</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_halt'>halt</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>and .. a post</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
149
+
150
+ <span class='id identifier rubyid_var'>var</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_id'>id</span><span class='op'>|</span>
151
+ <span class='id identifier rubyid_halt'>halt</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Getting the blog with id </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_id'>id</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
152
+ <span class='kw'>end</span>
153
+ </pre>
154
+
155
+ <p> end
156
+ }
157
+ ```</p>
158
+
159
+ <p>This rack-app will respond to GET /test with "Hey, this is a get!", POST /test with "and .. a post" and /test/:id with <code>"Getting the blog with id #{id}"</code>.</p>
160
+
161
+ <p>A more complete example might be sample RESTful routing definitions for a blog post resource:</p>
162
+
163
+ <p>```ruby
164
+ require 'renee'</p>
165
+
166
+ <p>run Renee.core {
167
+ path('posts') do</p>
168
+
169
+ <pre class="code"><span class='ivar'>@posts</span> <span class='op'>=</span> <span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_all'>all</span>
170
+ <span class='comment'># GET /posts
171
+ </span><span class='id identifier rubyid_get'>get</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_render!'>render!</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>index</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
172
+ <span class='comment'># POST /posts
173
+ </span><span class='id identifier rubyid_post'>post</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_redirect!'>redirect!</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/posts/index</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
174
+
175
+ <span class='id identifier rubyid_path'>path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>new</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span>
176
+ <span class='comment'># GET /posts/new
177
+ </span> <span class='id identifier rubyid_get'>get</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_render!'>render!</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>new</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
178
+ <span class='kw'>end</span>
179
+
180
+ <span class='id identifier rubyid_var'>var</span> <span class='symbol'>:integer</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_id'>id</span><span class='op'>|</span>
181
+ <span class='ivar'>@post</span> <span class='op'>=</span> <span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_find'>find</span><span class='lparen'>(</span><span class='id identifier rubyid_id'>id</span><span class='rparen'>)</span>
182
+
183
+ <span class='comment'># GET /posts/5
184
+ </span> <span class='id identifier rubyid_get'>get</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_render!'>render!</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>show</span><span class='tstring_end'>'</span></span> <span class='rbrace'>}</span>
185
+ <span class='comment'># PUT /posts/5
186
+ </span> <span class='id identifier rubyid_put'>put</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_halt'>halt</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>update</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
187
+ <span class='comment'># DELETE /posts/5
188
+ </span> <span class='id identifier rubyid_delete'>delete</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_halt'>halt</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>delete</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
189
+
190
+ <span class='id identifier rubyid_path'>path</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>edit</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>do</span>
191
+ <span class='comment'># GET /posts/5/edit
192
+ </span> <span class='id identifier rubyid_get'>get</span> <span class='lbrace'>{</span> <span class='id identifier rubyid_render!'>render!</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>edit</span><span class='tstring_end'>&quot;</span></span> <span class='rbrace'>}</span>
193
+ <span class='kw'>end</span>
194
+ <span class='kw'>end</span>
195
+ </pre>
196
+
197
+ <p> end
198
+ }
199
+ ```</p>
200
+
201
+ <p>This implements the standard 7 REST actions in a very concise and simple way. The routes and the actions blended together utilizing the various
202
+ Renee routing methods and block syntax. The routing methods are defined below, followed by an explanation of how to respond to a route.</p>
203
+ </div></div>
204
+
205
+ <div id="footer">
206
+ Generated on Mon Jan 23 11:10:34 2012 by
207
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
208
+ 0.7.4 (ruby-1.9.2).
209
+ </div>
210
+
211
+ </body>
212
+ </html>