ramaze 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. data/Rakefile +20 -3
  2. data/bin/ramaze +1 -4
  3. data/doc/AUTHORS +2 -1
  4. data/doc/CHANGELOG +539 -32
  5. data/doc/LEGAL +4 -0
  6. data/doc/meta/announcement.txt +79 -47
  7. data/examples/blog/README +2 -2
  8. data/examples/blog/spec/blog.rb +33 -48
  9. data/examples/blog/src/controller.rb +15 -13
  10. data/examples/blog/src/model.rb +28 -10
  11. data/examples/blog/start.rb +0 -10
  12. data/examples/blog/template/edit.xhtml +1 -1
  13. data/examples/blog/template/index.xhtml +2 -2
  14. data/examples/facebook.rb +152 -0
  15. data/examples/linking.rb +28 -0
  16. data/examples/ramaise.rb +4 -11
  17. data/examples/rammit/spec/rammit.rb +30 -0
  18. data/examples/rammit/src/controller/main.rb +3 -0
  19. data/examples/rammit/src/controller/page.rb +16 -0
  20. data/examples/rammit/src/model.rb +33 -0
  21. data/examples/rammit/start.rb +7 -0
  22. data/examples/rammit/template/index.xhtml +14 -0
  23. data/examples/rammit/template/page/view.xhtml +4 -0
  24. data/examples/rapaste/Rakefile +28 -0
  25. data/examples/rapaste/public/css/active4d.css +114 -0
  26. data/examples/rapaste/public/css/all_hallows_eve.css +72 -0
  27. data/examples/rapaste/public/css/amy.css +147 -0
  28. data/examples/rapaste/public/css/blackboard.css +88 -0
  29. data/examples/rapaste/public/css/brilliance_black.css +605 -0
  30. data/examples/rapaste/public/css/brilliance_dull.css +599 -0
  31. data/examples/rapaste/public/css/cobalt.css +149 -0
  32. data/examples/rapaste/public/css/dawn.css +121 -0
  33. data/examples/rapaste/public/css/display.css +179 -0
  34. data/examples/rapaste/public/css/eiffel.css +121 -0
  35. data/examples/rapaste/public/css/espresso_libre.css +109 -0
  36. data/examples/rapaste/public/css/idle.css +62 -0
  37. data/examples/rapaste/public/css/iplastic.css +80 -0
  38. data/examples/rapaste/public/css/lazy.css +73 -0
  39. data/examples/rapaste/public/css/mac_classic.css +123 -0
  40. data/examples/rapaste/public/css/magicwb_amiga.css +104 -0
  41. data/examples/rapaste/public/css/pastels_on_dark.css +188 -0
  42. data/examples/rapaste/public/css/slush_poppies.css +85 -0
  43. data/examples/rapaste/public/css/spacecadet.css +51 -0
  44. data/examples/rapaste/public/css/sunburst.css +180 -0
  45. data/examples/rapaste/public/css/twilight.css +137 -0
  46. data/examples/rapaste/public/css/zenburnesque.css +91 -0
  47. data/examples/rapaste/public/js/jquery.js +11 -0
  48. data/examples/rapaste/rapaste.sqlite +0 -0
  49. data/examples/rapaste/spec/rapaste.rb +49 -0
  50. data/examples/rapaste/src/controller.rb +69 -0
  51. data/examples/rapaste/src/model.rb +61 -0
  52. data/examples/rapaste/start.rb +20 -0
  53. data/examples/rapaste/template/copy.xhtml +10 -0
  54. data/examples/rapaste/template/index.xhtml +9 -0
  55. data/examples/rapaste/template/layout.xhtml +22 -0
  56. data/examples/rapaste/template/list.xhtml +28 -0
  57. data/examples/rapaste/template/view.xhtml +37 -0
  58. data/examples/sourceview/sourceview.rb +3 -3
  59. data/examples/templates/template_amrita2.rb +1 -3
  60. data/examples/todolist/spec/todolist.rb +15 -18
  61. data/examples/whywiki/spec/whywiki.rb +15 -20
  62. data/examples/whywiki/start.rb +0 -1
  63. data/examples/wikore/spec/wikore.rb +14 -19
  64. data/examples/wiktacular/spec/wiktacular.rb +8 -15
  65. data/lib/proto/{src/controller → controller}/main.rb +4 -4
  66. data/lib/proto/public/css/ramaze_error.css +39 -3
  67. data/lib/proto/public/js/jquery.js +2039 -1020
  68. data/lib/proto/spec/main.rb +27 -0
  69. data/lib/proto/start.rb +5 -5
  70. data/lib/proto/view/error.xhtml +62 -0
  71. data/lib/proto/view/index.xhtml +34 -0
  72. data/lib/proto/view/page.xhtml +15 -0
  73. data/lib/ramaze.rb +9 -7
  74. data/lib/ramaze/action.rb +7 -3
  75. data/lib/ramaze/action/render.rb +15 -5
  76. data/lib/ramaze/adapter.rb +5 -5
  77. data/lib/ramaze/adapter/base.rb +2 -2
  78. data/lib/ramaze/adapter/cgi.rb +1 -1
  79. data/lib/ramaze/adapter/evented_mongrel.rb +1 -1
  80. data/lib/ramaze/adapter/fcgi.rb +2 -2
  81. data/lib/ramaze/adapter/mongrel.rb +1 -1
  82. data/lib/ramaze/adapter/swiftiplied_mongrel.rb +1 -1
  83. data/lib/ramaze/adapter/thin.rb +25 -0
  84. data/lib/ramaze/adapter/webrick.rb +1 -1
  85. data/lib/ramaze/cache.rb +3 -2
  86. data/lib/ramaze/cache/memcached.rb +1 -1
  87. data/lib/ramaze/cache/memory.rb +1 -1
  88. data/lib/ramaze/cache/yaml_store.rb +1 -1
  89. data/lib/ramaze/contrib.rb +1 -1
  90. data/lib/ramaze/contrib/auto_params.rb +12 -5
  91. data/lib/ramaze/contrib/auto_params/get_args.rb +1 -0
  92. data/lib/ramaze/contrib/facebook.rb +23 -0
  93. data/lib/ramaze/contrib/facebook/facebook.rb +168 -0
  94. data/lib/ramaze/contrib/gettext.rb +111 -0
  95. data/lib/ramaze/contrib/gettext/mo.rb +155 -0
  96. data/lib/ramaze/contrib/gettext/po.rb +109 -0
  97. data/lib/ramaze/contrib/gzip_filter.rb +1 -1
  98. data/lib/ramaze/contrib/route.rb +15 -5
  99. data/lib/ramaze/contrib/sequel/fill.rb +1 -1
  100. data/lib/ramaze/controller.rb +10 -4
  101. data/lib/ramaze/controller/error.rb +5 -13
  102. data/lib/ramaze/controller/main.rb +2 -0
  103. data/lib/ramaze/controller/resolve.rb +18 -10
  104. data/lib/ramaze/dispatcher.rb +1 -1
  105. data/lib/ramaze/dispatcher/action.rb +1 -1
  106. data/lib/ramaze/dispatcher/directory.rb +3 -2
  107. data/lib/ramaze/dispatcher/error.rb +5 -5
  108. data/lib/ramaze/dispatcher/file.rb +13 -2
  109. data/lib/ramaze/error.rb +1 -1
  110. data/lib/ramaze/gestalt.rb +2 -2
  111. data/lib/ramaze/global.rb +5 -5
  112. data/lib/ramaze/global/dsl.rb +1 -1
  113. data/lib/ramaze/global/globalstruct.rb +11 -5
  114. data/lib/ramaze/helper.rb +1 -1
  115. data/lib/ramaze/helper/aspect.rb +1 -1
  116. data/lib/ramaze/helper/auth.rb +2 -2
  117. data/lib/ramaze/helper/cache.rb +1 -1
  118. data/lib/ramaze/helper/cgi.rb +1 -1
  119. data/lib/ramaze/helper/file.rb +1 -1
  120. data/lib/ramaze/helper/flash.rb +1 -1
  121. data/lib/ramaze/helper/formatting.rb +1 -1
  122. data/lib/ramaze/helper/identity.rb +1 -1
  123. data/lib/ramaze/helper/inform.rb +1 -1
  124. data/lib/ramaze/helper/link.rb +4 -4
  125. data/lib/ramaze/helper/markaby.rb +1 -1
  126. data/lib/ramaze/helper/nitroform.rb +1 -1
  127. data/lib/ramaze/helper/pager.rb +2 -1
  128. data/lib/ramaze/helper/partial.rb +1 -1
  129. data/lib/ramaze/helper/redirect.rb +6 -1
  130. data/lib/ramaze/helper/sequel.rb +54 -0
  131. data/lib/ramaze/helper/stack.rb +1 -1
  132. data/lib/ramaze/inform.rb +1 -1
  133. data/lib/ramaze/inform/analogger.rb +1 -1
  134. data/lib/ramaze/inform/growl.rb +1 -1
  135. data/lib/ramaze/inform/hub.rb +1 -1
  136. data/lib/ramaze/inform/informer.rb +1 -1
  137. data/lib/ramaze/inform/informing.rb +2 -2
  138. data/lib/ramaze/inform/knotify.rb +1 -1
  139. data/lib/ramaze/inform/syslog.rb +1 -1
  140. data/lib/ramaze/inform/xosd.rb +1 -1
  141. data/lib/ramaze/snippets.rb +1 -1
  142. data/lib/ramaze/snippets/array/put_within.rb +1 -1
  143. data/lib/ramaze/snippets/blankslate.rb +7 -0
  144. data/lib/ramaze/snippets/dictionary.rb +6 -1
  145. data/lib/ramaze/snippets/divide.rb +1 -1
  146. data/lib/ramaze/snippets/kernel/__dir__.rb +1 -1
  147. data/lib/ramaze/snippets/kernel/acquire.rb +39 -0
  148. data/lib/ramaze/snippets/kernel/aquire.rb +1 -34
  149. data/lib/ramaze/snippets/kernel/constant.rb +1 -1
  150. data/lib/ramaze/snippets/kernel/pretty_inspect.rb +1 -1
  151. data/lib/ramaze/snippets/numeric/filesize_format.rb +1 -1
  152. data/lib/ramaze/snippets/object/traits.rb +1 -1
  153. data/lib/ramaze/snippets/ordered_set.rb +12 -7
  154. data/lib/ramaze/snippets/ramaze/caller_info.rb +1 -1
  155. data/lib/ramaze/snippets/ramaze/caller_lines.rb +1 -1
  156. data/lib/ramaze/snippets/string/camel_case.rb +1 -1
  157. data/lib/ramaze/snippets/string/color.rb +2 -4
  158. data/lib/ramaze/snippets/string/each.rb +1 -1
  159. data/lib/ramaze/snippets/string/ord.rb +15 -0
  160. data/lib/ramaze/snippets/string/snake_case.rb +1 -1
  161. data/lib/ramaze/snippets/struct/fill.rb +4 -2
  162. data/lib/ramaze/snippets/struct/values_at.rb +2 -2
  163. data/lib/ramaze/snippets/symbol/to_proc.rb +15 -8
  164. data/lib/ramaze/snippets/thread/into.rb +1 -1
  165. data/lib/ramaze/sourcereload.rb +4 -3
  166. data/lib/ramaze/spec/helper.rb +85 -32
  167. data/lib/ramaze/spec/helper/bacon.rb +7 -0
  168. data/lib/ramaze/spec/helper/browser.rb +1 -2
  169. data/lib/ramaze/spec/helper/mock_http.rb +1 -1
  170. data/lib/ramaze/spec/helper/pretty_output.rb +70 -0
  171. data/lib/ramaze/spec/helper/requester.rb +1 -1
  172. data/lib/ramaze/spec/helper/simple_http.rb +5 -4
  173. data/lib/ramaze/spec/helper/snippets.rb +6 -0
  174. data/lib/ramaze/store/default.rb +1 -1
  175. data/lib/ramaze/template.rb +1 -1
  176. data/lib/ramaze/template/amrita2.rb +6 -5
  177. data/lib/ramaze/template/erubis.rb +1 -1
  178. data/lib/ramaze/template/ezamar.rb +1 -1
  179. data/lib/ramaze/template/ezamar/element.rb +1 -1
  180. data/lib/ramaze/template/ezamar/engine.rb +1 -1
  181. data/lib/ramaze/template/ezamar/morpher.rb +1 -1
  182. data/lib/ramaze/template/ezamar/render_partial.rb +1 -1
  183. data/lib/ramaze/template/haml.rb +1 -1
  184. data/lib/ramaze/template/liquid.rb +1 -1
  185. data/lib/ramaze/template/markaby.rb +1 -1
  186. data/lib/ramaze/template/nagoro.rb +4 -6
  187. data/lib/ramaze/template/none.rb +1 -1
  188. data/lib/ramaze/template/remarkably.rb +1 -1
  189. data/lib/ramaze/template/sass.rb +1 -1
  190. data/lib/ramaze/tool.rb +1 -1
  191. data/lib/ramaze/tool/create.rb +7 -1
  192. data/lib/ramaze/tool/localize.rb +7 -14
  193. data/lib/ramaze/tool/mime.rb +1 -1
  194. data/lib/ramaze/tool/record.rb +1 -1
  195. data/lib/ramaze/trinity.rb +1 -1
  196. data/lib/ramaze/trinity/request.rb +4 -2
  197. data/lib/ramaze/trinity/response.rb +1 -1
  198. data/lib/ramaze/trinity/session.rb +7 -1
  199. data/lib/ramaze/version.rb +3 -3
  200. data/lib/vendor/bacon.rb +317 -0
  201. data/rake_tasks/conf.rake +1 -1
  202. data/rake_tasks/maintenance.rake +7 -5
  203. data/rake_tasks/spec.rake +54 -40
  204. data/spec/contrib/auto_params.rb +21 -4
  205. data/spec/contrib/route.rb +31 -4
  206. data/spec/contrib/sequel/fill.rb +3 -4
  207. data/spec/examples/caching.rb +5 -2
  208. data/spec/examples/css.rb +5 -2
  209. data/spec/examples/element.rb +5 -4
  210. data/spec/examples/hello.rb +1 -0
  211. data/spec/examples/linking.rb +18 -0
  212. data/spec/examples/simple.rb +13 -18
  213. data/spec/examples/templates/template_amrita2.rb +3 -2
  214. data/spec/examples/templates/template_erubis.rb +3 -2
  215. data/spec/examples/templates/template_ezamar.rb +2 -1
  216. data/spec/examples/templates/template_haml.rb +3 -2
  217. data/spec/examples/templates/template_liquid.rb +3 -2
  218. data/spec/examples/templates/template_markaby.rb +3 -2
  219. data/spec/examples/templates/template_remarkably.rb +3 -2
  220. data/spec/ramaze/action/basics.rb +4 -4
  221. data/spec/ramaze/action/cache.rb +11 -13
  222. data/spec/ramaze/action/layout.rb +47 -3
  223. data/spec/ramaze/action/render.rb +3 -3
  224. data/spec/ramaze/action/template/instancevars/layout.xhtml +1 -0
  225. data/spec/ramaze/adapter.rb +7 -7
  226. data/spec/ramaze/adapter/mongrel.rb +1 -1
  227. data/spec/ramaze/adapter/record.rb +7 -7
  228. data/spec/ramaze/adapter/webrick.rb +1 -1
  229. data/spec/ramaze/cache.rb +6 -8
  230. data/spec/ramaze/controller.rb +77 -65
  231. data/spec/ramaze/controller/resolve.rb +2 -1
  232. data/spec/ramaze/controller/template_resolving.rb +3 -4
  233. data/spec/ramaze/dispatcher.rb +3 -4
  234. data/spec/ramaze/dispatcher/directory.rb +35 -35
  235. data/spec/ramaze/dispatcher/file.rb +8 -5
  236. data/spec/ramaze/element.rb +4 -4
  237. data/spec/ramaze/error.rb +13 -11
  238. data/spec/ramaze/gestalt.rb +1 -1
  239. data/spec/ramaze/helper/aspect.rb +2 -1
  240. data/spec/ramaze/helper/auth.rb +4 -2
  241. data/spec/ramaze/helper/cache.rb +10 -9
  242. data/spec/ramaze/helper/cgi.rb +2 -2
  243. data/spec/ramaze/helper/file.rb +1 -0
  244. data/spec/ramaze/helper/flash.rb +5 -4
  245. data/spec/ramaze/helper/formatting.rb +1 -1
  246. data/spec/ramaze/helper/link.rb +3 -3
  247. data/spec/ramaze/helper/pager.rb +44 -80
  248. data/spec/ramaze/helper/partial.rb +2 -3
  249. data/spec/ramaze/helper/redirect.rb +10 -1
  250. data/spec/ramaze/helper/stack.rb +4 -3
  251. data/spec/ramaze/helper/template/loop.xhtml +2 -1
  252. data/spec/ramaze/inform/informer.rb +2 -2
  253. data/spec/ramaze/inform/syslog.rb +1 -1
  254. data/spec/ramaze/localize.rb +26 -26
  255. data/spec/ramaze/morpher.rb +6 -7
  256. data/spec/ramaze/params.rb +7 -8
  257. data/spec/ramaze/request.rb +27 -6
  258. data/spec/ramaze/request/mongrel.rb +1 -1
  259. data/spec/ramaze/request/thin.rb +9 -0
  260. data/spec/ramaze/session.rb +2 -1
  261. data/spec/ramaze/store/default.rb +14 -17
  262. data/spec/ramaze/template.rb +5 -7
  263. data/spec/ramaze/template/amrita2.rb +4 -1
  264. data/spec/ramaze/template/erubis.rb +2 -1
  265. data/spec/ramaze/template/ezamar.rb +2 -3
  266. data/spec/ramaze/template/ezamar/other__index.xhtml +1 -0
  267. data/spec/ramaze/template/haml.rb +2 -1
  268. data/spec/ramaze/template/liquid.rb +4 -2
  269. data/spec/ramaze/template/markaby.rb +4 -2
  270. data/spec/ramaze/template/nagoro.rb +3 -4
  271. data/spec/ramaze/template/remarkably.rb +4 -2
  272. data/spec/ramaze/template/sass.rb +3 -2
  273. data/spec/ramaze/template/xslt.rb +4 -7
  274. data/spec/ramaze/trinity/request.rb +4 -3
  275. data/spec/ramaze/trinity/session.rb +6 -4
  276. data/spec/snippets/array/put_within.rb +3 -2
  277. data/spec/snippets/divide.rb +1 -4
  278. data/spec/snippets/kernel/__dir__.rb +1 -1
  279. data/spec/snippets/kernel/acquire.rb +71 -0
  280. data/spec/snippets/kernel/constant.rb +4 -8
  281. data/spec/snippets/numeric/filesize_format.rb +1 -1
  282. data/spec/snippets/ordered_set.rb +9 -2
  283. data/spec/snippets/ramaze/caller_info.rb +3 -3
  284. data/spec/snippets/ramaze/caller_lines.rb +3 -3
  285. data/spec/snippets/string/camel_case.rb +1 -1
  286. data/spec/snippets/string/color.rb +2 -2
  287. data/spec/snippets/string/snake_case.rb +5 -1
  288. data/spec/snippets/string/unindent.rb +1 -1
  289. data/spec/snippets/struct/fill.rb +14 -15
  290. data/spec/snippets/struct/values_at.rb +15 -10
  291. data/spec/snippets/symbol/to_proc.rb +13 -0
  292. data/spec/snippets/thread/into.rb +3 -4
  293. metadata +458 -386
  294. data/doc/README.html +0 -729
  295. data/doc/changes.txt +0 -5044
  296. data/doc/changes.xml +0 -5046
  297. data/lib/proto/public/error.zmr +0 -61
  298. data/lib/proto/src/element/page.rb +0 -17
  299. data/lib/proto/src/model.rb +0 -6
  300. data/lib/proto/template/index.xhtml +0 -15
  301. data/lib/ramaze/spec/helper/layout.rb +0 -58
  302. data/lib/ramaze/spec/helper/minimal.rb +0 -23
  303. data/lib/ramaze/spec/helper/wrap.rb +0 -198
  304. data/spec/snippets/kernel/aquire.rb +0 -71
@@ -1,61 +0,0 @@
1
- <html>
2
- <head>
3
- <title>#{@title}</title>
4
- <link rel="stylesheet" href="/css/ramaze_error.css" />
5
- <script type="text/javascript" src="/js/jquery.js"></script>
6
- </head>
7
- <body>
8
- <h1>#{@title}</h1>
9
-
10
- <p>The backtrace gives filenames and line numbers for all parts of the call stack.<br />
11
- Click on any of them to view the surrounding source code.</p>
12
-
13
- <table class="main">
14
- <tr class="head">
15
- <td>File</td><td>Line</td><td>Method</td>
16
- </tr>
17
- <?r @backtrace.each do |lines, hash, file, lineno, meth| ?>
18
- <tr id="line_#{hash}" style="background:rgb(#{@colors.shift},200,200);">
19
- <td>#{file}</td><td>#{lineno}</td><td><pre>#{meth}</pre></td>
20
- </tr>
21
- <tr id="source_#{hash}" style="display:none;">
22
- <td colspan="3">
23
- <div class="source">
24
- <table style="width:100%;">
25
- <tr>
26
- <td colspan="2">#{@editor} #{file} +#{lineno}</td>
27
- </tr>
28
- <?r lines.each do |llineno, lcode, lcurrent| ?>
29
- <tr class="source" #{'style="background:#faa;"' if lcurrent}>
30
- <td class="lineno">#{llineno}</td>
31
- <td class="code"><pre>#{lcode.to_s.rstrip}</pre></td>
32
- </tr>
33
- <?r end ?>
34
- </table>
35
- </div>
36
- <script type="text/javascript">
37
- $("tr#line_#{hash}").click(function(){$("tr#source_#{hash}").toggle()});
38
- </script>
39
- </td>
40
- </tr>
41
- <?r end ?>
42
- </table>
43
- <?r
44
- {
45
- 'Session' => Thread.current[:session],
46
- 'Request' => Thread.current[:request],
47
- 'Response' => Thread.current[:response],
48
- 'Global' => Global,
49
- }.each do |title, content|
50
- hash = [title, content].object_id.abs
51
- ?>
52
- <div class="additional">
53
- <h3 id="show_#{hash}">#{title}</h3>
54
- <pre style="display:none" id="is_#{hash}">#{CGI.escapeHTML(content.pretty_inspect)}</pre>
55
- <script type="text/javascript">
56
- $("h3#show_#{hash}").click(function(){$("pre#is_#{hash}").toggle()});
57
- </script>
58
- </div>
59
- <?r end ?>
60
- </body>
61
- </html>
@@ -1,17 +0,0 @@
1
- # Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
2
- # All files in this distribution are subject to the terms of the Ruby license.
3
-
4
- class Page < Ezamar::Element
5
- def render
6
- %{
7
- <html>
8
- <head>
9
- <title>Welcome to Ramaze</title>
10
- </head>
11
- <body>
12
- #{content}
13
- </body>
14
- </html>
15
- }
16
- end
17
- end
@@ -1,6 +0,0 @@
1
- # Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
2
- # All files in this distribution are subject to the terms of the Ruby license.
3
-
4
- require 'ramaze/store/default'
5
-
6
- Db = Ramaze::Store::Default.new('yaml.db')
@@ -1,15 +0,0 @@
1
- <Page>
2
- <h1>#{@welcome}</h1>
3
- <p>Ramaze is working correctly with this application, now you can start working</p>
4
-
5
- <p>
6
- To start you can modify:
7
- <ol>
8
- <li><code>template/index.xhtml</code>, which this text</li>
9
- <li><code>src/elements/page.rb</code>, which is the Element around this text</li>
10
- <li><code>src/controllers/main.rb</code>, where you can change the header of this page and the <a href="/notemplate">notemplate</a> action</li>
11
- <li><code>src/model.rb</code>, which is the the persistent backend for your app</li>
12
- </ol>
13
- </p>
14
- <p>You can also read the tutorial in the <code>doc/</code> directory of ramaze or browse the <a href="http://ramaze.rubyforge.org/rdoc/files/doc/README.html">rdocs</a></p>
15
- </Page>
@@ -1,58 +0,0 @@
1
- # Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
2
- # All files in this distribution are subject to the terms of the Ruby license.
3
-
4
- require 'ramaze/spec/helper/wrap'
5
-
6
- class SpecLayout
7
- attr_accessor :base, :layout, :files
8
-
9
- def initialize(base, layout)
10
- @base, @layout = base, layout
11
- end
12
-
13
- def run
14
- SpecWrap.new(@files).run
15
- end
16
-
17
- def gather
18
- @files = gather_files(@base, @layout)
19
- end
20
-
21
- def gather_files(base, layout)
22
- files = Set.new
23
- base = File.expand_path(base)
24
-
25
- layout.each do |key, value|
26
- if value.is_a?(Hash)
27
- files += gather_files(base/key, value)
28
- else
29
- glob = base/key/"#{value}.rb"
30
- files += Dir[glob].map{|f| File.expand_path(f)}
31
- end
32
- end
33
-
34
- files.reject{|f| File.directory?(f)}
35
- end
36
-
37
- def clean
38
- @files = clean_files(@files, @layout)
39
- end
40
-
41
- def clean_files(files, layout)
42
- layout.each do |key, value|
43
- if value.is_a?(Hash)
44
- clean_files(files, value)
45
- elsif files
46
- files.dup.each do |file|
47
- name = File.basename(file, File.extname(file))
48
- dir = file.gsub(File.extname(file), '')
49
- if name == key and File.directory?(dir)
50
- files.delete(file)
51
- end
52
- end
53
- end
54
- end
55
-
56
- files
57
- end
58
- end
@@ -1,23 +0,0 @@
1
- # Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
2
- # All files in this distribution are subject to the terms of the Ruby license.
3
-
4
- require 'timeout'
5
-
6
- begin
7
- require 'rubygems'
8
- rescue LoadError => ex
9
- end
10
-
11
- base = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
12
- $:.unshift base.gsub(/^#{Dir.pwd}/, '.')
13
-
14
- # $VERBOSE = 1
15
- $context_runner = false
16
-
17
- require 'ramaze'
18
-
19
- require 'spec'
20
- if Spec::VERSION::FULL_VERSION < "1.0.3 (r2035)"
21
- puts "please update rspec >= 1.0.3"
22
- exit 1
23
- end
@@ -1,198 +0,0 @@
1
- # Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
2
- # All files in this distribution are subject to the terms of the Ruby license.
3
-
4
- require 'pp'
5
- require 'set'
6
-
7
- begin
8
- require 'rubygems'
9
- rescue LoadError
10
- end
11
-
12
- begin
13
- require 'systemu'
14
- rescue LoadError
15
- puts "Please install systemu for accurate results"
16
-
17
- # small drop-in replacement for systemu... far from perfect though, so please
18
- # install the library
19
-
20
- def systemu command
21
- stdout = `#{command} 2>&1`
22
- status, stdout, stderr = $?, stdout, ''
23
- end
24
- end
25
-
26
- class String
27
- { :red => 31,
28
- :green => 32,
29
- :yellow => 33,
30
- }.each do |key, value|
31
- define_method key do
32
- "\e[#{value}m" + self + "\e[0m"
33
- end
34
- end
35
-
36
- def /(str)
37
- File.join(self, str.to_s)
38
- end
39
- end
40
-
41
- class Array
42
- def commonize
43
- snips, rest = map{|s| [s[0,1], s[1..-1]]}.transpose
44
- unless snips.uniq.size != 1 or rest.any?{|r| File.basename(r) == r}
45
- rest.commonize
46
- else
47
- self.map{|e| e.gsub(/^\//, '')}
48
- end
49
- end
50
-
51
- def namize
52
- commonize.map do |e|
53
- dir = File.dirname(e)
54
- file = File.basename(e, File.extname(e))
55
- ( dir / file ).gsub(/^\.\//, '')
56
- end
57
- end
58
- end
59
-
60
- $stdout.sync = true
61
-
62
- class SpecWrap
63
- def initialize(*files)
64
- @files = files.flatten
65
- @names = @files.namize
66
- @specs = Hash[*@files.zip(@names).flatten]
67
- @done = Set.new
68
- end
69
-
70
- def run
71
- total = @specs.size
72
- n_width = (total.to_s.size * 2) + 4
73
- @specs.sort_by{|s| s.last}.each_with_index do |(file, name), idx|
74
- print "(#{idx+1}/#{total}) ".ljust(n_width)
75
- spec = SpecFile.new(file, name, term_width)
76
- spec.run
77
- spec.short_summary
78
- @done << spec
79
- end
80
-
81
- @done.sort_by{|d| d.name}.each do |spec|
82
- puts(spec.long_summary) if spec.failed?
83
- end
84
-
85
- summarize
86
- end
87
-
88
- def summarize
89
- total_passed = @done.inject(0){|s,v| s + v.passed }
90
- total_failed = @done.inject(0){|s,v| s + v.failed }
91
- total_specs = total_failed + total_passed
92
-
93
- puts "#{total_specs} examples, #{total_failed} failures"
94
- puts
95
-
96
- if total_failed.nonzero?
97
- failed = @done.select{|d| d.failed.nonzero? or d.passed.zero?}.map{|f| f.name.red }
98
- puts "These failed: #{failed.join(', ')}"
99
- exit 1
100
- else
101
- puts("No failing examples, let's add some tests!")
102
- end
103
- end
104
-
105
- def term_width
106
- @names.sort_by{|s| s.size }.last.size
107
- end
108
- end
109
-
110
- class SpecFile
111
- attr_reader :file, :name, :passed, :failed, :mark_passed
112
-
113
- def initialize file, name, term_width
114
- @file, @name, @term_width = file, name, term_width
115
- @inc = $:.map{|e| "-I#{e}" }.join(" ")
116
- end
117
-
118
- def run
119
- init
120
- execute
121
- parse
122
- done
123
- self
124
- end
125
-
126
- def init
127
- print "#@name ".ljust(@term_width + 10)
128
- end
129
-
130
- def execute
131
- @status, @stdout, @stderr = systemu("ruby #@inc #@file")
132
- end
133
-
134
- def done
135
- @ran = true
136
- end
137
-
138
- def short_summary
139
- f = lambda{|n| n.to_s.rjust(3) }
140
- total = f[@passed + @failed] rescue nil
141
- failed, passed = f[@failed], f[@passed]
142
- color = :red
143
- width = 22
144
-
145
- if total_failure?
146
- text = 'total failure'.center(width)
147
- elsif failed?
148
- text = "#{total} specs - #{failed} failed".rjust(width)
149
- if @stdout =~ /Usually you should not worry about this failure, just install the/
150
- lib = @stdout[/^no such file to load -- (.*?)$/, 1] ||
151
- @stdout[/RubyGem version error: (.*)$/, 1]
152
- text = "needs #{lib}".center(width)
153
- @mark_passed = true
154
- end
155
- elsif (not @mark_passed) and succeeded?
156
- color = :green
157
- text = "#{total} specs - all passed".rjust(width)
158
- end
159
-
160
- puts "[ #{text.send(color)} ]"
161
- end
162
-
163
- def long_summary
164
- puts "[ #@name ]".center(80, '-')
165
- puts "ExitStatus:".yellow, PP.pp(@status)
166
- puts "StdOut:".yellow, @stdout
167
- puts "StdErr:".yellow, @stderr
168
- end
169
-
170
- def parse
171
- @passed = 0
172
- @failed = 0
173
- found = false
174
- @stdout.grep(/(\d+) examples?, (\d+) failures?/)
175
- @passed, @failed = $1.to_i, $2.to_i
176
- end
177
-
178
- def failed?
179
- not succeeded?
180
- end
181
-
182
- def total_failure?
183
- succeeded? == nil
184
- end
185
-
186
- def succeeded?
187
- run unless @ran
188
- return @mark_passed unless @mark_passed.nil?
189
- crits = [
190
- [@status.exitstatus.zero?, @stderr.empty?],
191
- [@passed, @failed],
192
- [@passed.nonzero?, @failed.zero?],
193
- ]
194
- crits.all?{|c| c.all? }
195
- rescue
196
- nil
197
- end
198
- end
@@ -1,71 +0,0 @@
1
- require 'spec/helper'
2
-
3
- describe 'aquire' do
4
- def require(name)
5
- @required << name
6
- end
7
-
8
- before :all do
9
- FileUtils.mkdir_p 'tmp_dir_for_aquire/sub'
10
- FileUtils.touch 'tmp_dir_for_aquire/foo.rb'
11
- FileUtils.touch 'tmp_dir_for_aquire/bar.rb'
12
- FileUtils.touch 'tmp_dir_for_aquire/baz.so'
13
- FileUtils.touch 'tmp_dir_for_aquire/baz.yml'
14
- FileUtils.touch 'tmp_dir_for_aquire/sub/baz.rb'
15
- end
16
-
17
- before do
18
- @required = []
19
- end
20
-
21
- it 'should not load a single file' do
22
- aquire 'tmp_dir_for_aquire/foo'
23
- @required.should == []
24
- end
25
-
26
- it 'should load dir' do
27
- aquire 'tmp_dir_for_aquire/sub/*'
28
- @required.should == ['tmp_dir_for_aquire/sub/baz.rb']
29
- end
30
-
31
- it 'should load {so,rb}, not others' do
32
- aquire 'tmp_dir_for_aquire/*'
33
- @required.sort.should == %w{
34
- tmp_dir_for_aquire/bar.rb
35
- tmp_dir_for_aquire/baz.so
36
- tmp_dir_for_aquire/foo.rb}
37
-
38
- end
39
-
40
- it 'should use globbing' do
41
- aquire 'tmp_dir_for_aquire/ba*'
42
- @required.sort.should == %w{
43
- tmp_dir_for_aquire/bar.rb
44
- tmp_dir_for_aquire/baz.so}
45
-
46
- end
47
-
48
- it 'should use recursive globbing' do
49
- aquire 'tmp_dir_for_aquire/**/*'
50
- @required.sort.should == %w{
51
- tmp_dir_for_aquire/bar.rb
52
- tmp_dir_for_aquire/baz.so
53
- tmp_dir_for_aquire/foo.rb
54
- tmp_dir_for_aquire/sub/baz.rb}
55
-
56
- end
57
-
58
- it 'should accept multiple arguments' do
59
- aquire 'tmp_dir_for_aquire/*', 'tmp_dir_for_aquire/sub/*'
60
- @required.sort.should == %w{
61
- tmp_dir_for_aquire/bar.rb
62
- tmp_dir_for_aquire/baz.so
63
- tmp_dir_for_aquire/foo.rb
64
- tmp_dir_for_aquire/sub/baz.rb}
65
-
66
- end
67
-
68
- after :all do
69
- FileUtils.rm_rf('tmp_dir_for_aquire')
70
- end
71
- end