ramaze 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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