ramaze 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +20 -3
- data/bin/ramaze +1 -4
- data/doc/AUTHORS +2 -1
- data/doc/CHANGELOG +539 -32
- data/doc/LEGAL +4 -0
- data/doc/meta/announcement.txt +79 -47
- data/examples/blog/README +2 -2
- data/examples/blog/spec/blog.rb +33 -48
- data/examples/blog/src/controller.rb +15 -13
- data/examples/blog/src/model.rb +28 -10
- data/examples/blog/start.rb +0 -10
- data/examples/blog/template/edit.xhtml +1 -1
- data/examples/blog/template/index.xhtml +2 -2
- data/examples/facebook.rb +152 -0
- data/examples/linking.rb +28 -0
- data/examples/ramaise.rb +4 -11
- data/examples/rammit/spec/rammit.rb +30 -0
- data/examples/rammit/src/controller/main.rb +3 -0
- data/examples/rammit/src/controller/page.rb +16 -0
- data/examples/rammit/src/model.rb +33 -0
- data/examples/rammit/start.rb +7 -0
- data/examples/rammit/template/index.xhtml +14 -0
- data/examples/rammit/template/page/view.xhtml +4 -0
- data/examples/rapaste/Rakefile +28 -0
- data/examples/rapaste/public/css/active4d.css +114 -0
- data/examples/rapaste/public/css/all_hallows_eve.css +72 -0
- data/examples/rapaste/public/css/amy.css +147 -0
- data/examples/rapaste/public/css/blackboard.css +88 -0
- data/examples/rapaste/public/css/brilliance_black.css +605 -0
- data/examples/rapaste/public/css/brilliance_dull.css +599 -0
- data/examples/rapaste/public/css/cobalt.css +149 -0
- data/examples/rapaste/public/css/dawn.css +121 -0
- data/examples/rapaste/public/css/display.css +179 -0
- data/examples/rapaste/public/css/eiffel.css +121 -0
- data/examples/rapaste/public/css/espresso_libre.css +109 -0
- data/examples/rapaste/public/css/idle.css +62 -0
- data/examples/rapaste/public/css/iplastic.css +80 -0
- data/examples/rapaste/public/css/lazy.css +73 -0
- data/examples/rapaste/public/css/mac_classic.css +123 -0
- data/examples/rapaste/public/css/magicwb_amiga.css +104 -0
- data/examples/rapaste/public/css/pastels_on_dark.css +188 -0
- data/examples/rapaste/public/css/slush_poppies.css +85 -0
- data/examples/rapaste/public/css/spacecadet.css +51 -0
- data/examples/rapaste/public/css/sunburst.css +180 -0
- data/examples/rapaste/public/css/twilight.css +137 -0
- data/examples/rapaste/public/css/zenburnesque.css +91 -0
- data/examples/rapaste/public/js/jquery.js +11 -0
- data/examples/rapaste/rapaste.sqlite +0 -0
- data/examples/rapaste/spec/rapaste.rb +49 -0
- data/examples/rapaste/src/controller.rb +69 -0
- data/examples/rapaste/src/model.rb +61 -0
- data/examples/rapaste/start.rb +20 -0
- data/examples/rapaste/template/copy.xhtml +10 -0
- data/examples/rapaste/template/index.xhtml +9 -0
- data/examples/rapaste/template/layout.xhtml +22 -0
- data/examples/rapaste/template/list.xhtml +28 -0
- data/examples/rapaste/template/view.xhtml +37 -0
- data/examples/sourceview/sourceview.rb +3 -3
- data/examples/templates/template_amrita2.rb +1 -3
- data/examples/todolist/spec/todolist.rb +15 -18
- data/examples/whywiki/spec/whywiki.rb +15 -20
- data/examples/whywiki/start.rb +0 -1
- data/examples/wikore/spec/wikore.rb +14 -19
- data/examples/wiktacular/spec/wiktacular.rb +8 -15
- data/lib/proto/{src/controller → controller}/main.rb +4 -4
- data/lib/proto/public/css/ramaze_error.css +39 -3
- data/lib/proto/public/js/jquery.js +2039 -1020
- data/lib/proto/spec/main.rb +27 -0
- data/lib/proto/start.rb +5 -5
- data/lib/proto/view/error.xhtml +62 -0
- data/lib/proto/view/index.xhtml +34 -0
- data/lib/proto/view/page.xhtml +15 -0
- data/lib/ramaze.rb +9 -7
- data/lib/ramaze/action.rb +7 -3
- data/lib/ramaze/action/render.rb +15 -5
- data/lib/ramaze/adapter.rb +5 -5
- data/lib/ramaze/adapter/base.rb +2 -2
- data/lib/ramaze/adapter/cgi.rb +1 -1
- data/lib/ramaze/adapter/evented_mongrel.rb +1 -1
- data/lib/ramaze/adapter/fcgi.rb +2 -2
- data/lib/ramaze/adapter/mongrel.rb +1 -1
- data/lib/ramaze/adapter/swiftiplied_mongrel.rb +1 -1
- data/lib/ramaze/adapter/thin.rb +25 -0
- data/lib/ramaze/adapter/webrick.rb +1 -1
- data/lib/ramaze/cache.rb +3 -2
- data/lib/ramaze/cache/memcached.rb +1 -1
- data/lib/ramaze/cache/memory.rb +1 -1
- data/lib/ramaze/cache/yaml_store.rb +1 -1
- data/lib/ramaze/contrib.rb +1 -1
- data/lib/ramaze/contrib/auto_params.rb +12 -5
- data/lib/ramaze/contrib/auto_params/get_args.rb +1 -0
- data/lib/ramaze/contrib/facebook.rb +23 -0
- data/lib/ramaze/contrib/facebook/facebook.rb +168 -0
- data/lib/ramaze/contrib/gettext.rb +111 -0
- data/lib/ramaze/contrib/gettext/mo.rb +155 -0
- data/lib/ramaze/contrib/gettext/po.rb +109 -0
- data/lib/ramaze/contrib/gzip_filter.rb +1 -1
- data/lib/ramaze/contrib/route.rb +15 -5
- data/lib/ramaze/contrib/sequel/fill.rb +1 -1
- data/lib/ramaze/controller.rb +10 -4
- data/lib/ramaze/controller/error.rb +5 -13
- data/lib/ramaze/controller/main.rb +2 -0
- data/lib/ramaze/controller/resolve.rb +18 -10
- data/lib/ramaze/dispatcher.rb +1 -1
- data/lib/ramaze/dispatcher/action.rb +1 -1
- data/lib/ramaze/dispatcher/directory.rb +3 -2
- data/lib/ramaze/dispatcher/error.rb +5 -5
- data/lib/ramaze/dispatcher/file.rb +13 -2
- data/lib/ramaze/error.rb +1 -1
- data/lib/ramaze/gestalt.rb +2 -2
- data/lib/ramaze/global.rb +5 -5
- data/lib/ramaze/global/dsl.rb +1 -1
- data/lib/ramaze/global/globalstruct.rb +11 -5
- data/lib/ramaze/helper.rb +1 -1
- data/lib/ramaze/helper/aspect.rb +1 -1
- data/lib/ramaze/helper/auth.rb +2 -2
- data/lib/ramaze/helper/cache.rb +1 -1
- data/lib/ramaze/helper/cgi.rb +1 -1
- data/lib/ramaze/helper/file.rb +1 -1
- data/lib/ramaze/helper/flash.rb +1 -1
- data/lib/ramaze/helper/formatting.rb +1 -1
- data/lib/ramaze/helper/identity.rb +1 -1
- data/lib/ramaze/helper/inform.rb +1 -1
- data/lib/ramaze/helper/link.rb +4 -4
- data/lib/ramaze/helper/markaby.rb +1 -1
- data/lib/ramaze/helper/nitroform.rb +1 -1
- data/lib/ramaze/helper/pager.rb +2 -1
- data/lib/ramaze/helper/partial.rb +1 -1
- data/lib/ramaze/helper/redirect.rb +6 -1
- data/lib/ramaze/helper/sequel.rb +54 -0
- data/lib/ramaze/helper/stack.rb +1 -1
- data/lib/ramaze/inform.rb +1 -1
- data/lib/ramaze/inform/analogger.rb +1 -1
- data/lib/ramaze/inform/growl.rb +1 -1
- data/lib/ramaze/inform/hub.rb +1 -1
- data/lib/ramaze/inform/informer.rb +1 -1
- data/lib/ramaze/inform/informing.rb +2 -2
- data/lib/ramaze/inform/knotify.rb +1 -1
- data/lib/ramaze/inform/syslog.rb +1 -1
- data/lib/ramaze/inform/xosd.rb +1 -1
- data/lib/ramaze/snippets.rb +1 -1
- data/lib/ramaze/snippets/array/put_within.rb +1 -1
- data/lib/ramaze/snippets/blankslate.rb +7 -0
- data/lib/ramaze/snippets/dictionary.rb +6 -1
- data/lib/ramaze/snippets/divide.rb +1 -1
- data/lib/ramaze/snippets/kernel/__dir__.rb +1 -1
- data/lib/ramaze/snippets/kernel/acquire.rb +39 -0
- data/lib/ramaze/snippets/kernel/aquire.rb +1 -34
- data/lib/ramaze/snippets/kernel/constant.rb +1 -1
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +1 -1
- data/lib/ramaze/snippets/numeric/filesize_format.rb +1 -1
- data/lib/ramaze/snippets/object/traits.rb +1 -1
- data/lib/ramaze/snippets/ordered_set.rb +12 -7
- data/lib/ramaze/snippets/ramaze/caller_info.rb +1 -1
- data/lib/ramaze/snippets/ramaze/caller_lines.rb +1 -1
- data/lib/ramaze/snippets/string/camel_case.rb +1 -1
- data/lib/ramaze/snippets/string/color.rb +2 -4
- data/lib/ramaze/snippets/string/each.rb +1 -1
- data/lib/ramaze/snippets/string/ord.rb +15 -0
- data/lib/ramaze/snippets/string/snake_case.rb +1 -1
- data/lib/ramaze/snippets/struct/fill.rb +4 -2
- data/lib/ramaze/snippets/struct/values_at.rb +2 -2
- data/lib/ramaze/snippets/symbol/to_proc.rb +15 -8
- data/lib/ramaze/snippets/thread/into.rb +1 -1
- data/lib/ramaze/sourcereload.rb +4 -3
- data/lib/ramaze/spec/helper.rb +85 -32
- data/lib/ramaze/spec/helper/bacon.rb +7 -0
- data/lib/ramaze/spec/helper/browser.rb +1 -2
- data/lib/ramaze/spec/helper/mock_http.rb +1 -1
- data/lib/ramaze/spec/helper/pretty_output.rb +70 -0
- data/lib/ramaze/spec/helper/requester.rb +1 -1
- data/lib/ramaze/spec/helper/simple_http.rb +5 -4
- data/lib/ramaze/spec/helper/snippets.rb +6 -0
- data/lib/ramaze/store/default.rb +1 -1
- data/lib/ramaze/template.rb +1 -1
- data/lib/ramaze/template/amrita2.rb +6 -5
- data/lib/ramaze/template/erubis.rb +1 -1
- data/lib/ramaze/template/ezamar.rb +1 -1
- data/lib/ramaze/template/ezamar/element.rb +1 -1
- data/lib/ramaze/template/ezamar/engine.rb +1 -1
- data/lib/ramaze/template/ezamar/morpher.rb +1 -1
- data/lib/ramaze/template/ezamar/render_partial.rb +1 -1
- data/lib/ramaze/template/haml.rb +1 -1
- data/lib/ramaze/template/liquid.rb +1 -1
- data/lib/ramaze/template/markaby.rb +1 -1
- data/lib/ramaze/template/nagoro.rb +4 -6
- data/lib/ramaze/template/none.rb +1 -1
- data/lib/ramaze/template/remarkably.rb +1 -1
- data/lib/ramaze/template/sass.rb +1 -1
- data/lib/ramaze/tool.rb +1 -1
- data/lib/ramaze/tool/create.rb +7 -1
- data/lib/ramaze/tool/localize.rb +7 -14
- data/lib/ramaze/tool/mime.rb +1 -1
- data/lib/ramaze/tool/record.rb +1 -1
- data/lib/ramaze/trinity.rb +1 -1
- data/lib/ramaze/trinity/request.rb +4 -2
- data/lib/ramaze/trinity/response.rb +1 -1
- data/lib/ramaze/trinity/session.rb +7 -1
- data/lib/ramaze/version.rb +3 -3
- data/lib/vendor/bacon.rb +317 -0
- data/rake_tasks/conf.rake +1 -1
- data/rake_tasks/maintenance.rake +7 -5
- data/rake_tasks/spec.rake +54 -40
- data/spec/contrib/auto_params.rb +21 -4
- data/spec/contrib/route.rb +31 -4
- data/spec/contrib/sequel/fill.rb +3 -4
- data/spec/examples/caching.rb +5 -2
- data/spec/examples/css.rb +5 -2
- data/spec/examples/element.rb +5 -4
- data/spec/examples/hello.rb +1 -0
- data/spec/examples/linking.rb +18 -0
- data/spec/examples/simple.rb +13 -18
- data/spec/examples/templates/template_amrita2.rb +3 -2
- data/spec/examples/templates/template_erubis.rb +3 -2
- data/spec/examples/templates/template_ezamar.rb +2 -1
- data/spec/examples/templates/template_haml.rb +3 -2
- data/spec/examples/templates/template_liquid.rb +3 -2
- data/spec/examples/templates/template_markaby.rb +3 -2
- data/spec/examples/templates/template_remarkably.rb +3 -2
- data/spec/ramaze/action/basics.rb +4 -4
- data/spec/ramaze/action/cache.rb +11 -13
- data/spec/ramaze/action/layout.rb +47 -3
- data/spec/ramaze/action/render.rb +3 -3
- data/spec/ramaze/action/template/instancevars/layout.xhtml +1 -0
- data/spec/ramaze/adapter.rb +7 -7
- data/spec/ramaze/adapter/mongrel.rb +1 -1
- data/spec/ramaze/adapter/record.rb +7 -7
- data/spec/ramaze/adapter/webrick.rb +1 -1
- data/spec/ramaze/cache.rb +6 -8
- data/spec/ramaze/controller.rb +77 -65
- data/spec/ramaze/controller/resolve.rb +2 -1
- data/spec/ramaze/controller/template_resolving.rb +3 -4
- data/spec/ramaze/dispatcher.rb +3 -4
- data/spec/ramaze/dispatcher/directory.rb +35 -35
- data/spec/ramaze/dispatcher/file.rb +8 -5
- data/spec/ramaze/element.rb +4 -4
- data/spec/ramaze/error.rb +13 -11
- data/spec/ramaze/gestalt.rb +1 -1
- data/spec/ramaze/helper/aspect.rb +2 -1
- data/spec/ramaze/helper/auth.rb +4 -2
- data/spec/ramaze/helper/cache.rb +10 -9
- data/spec/ramaze/helper/cgi.rb +2 -2
- data/spec/ramaze/helper/file.rb +1 -0
- data/spec/ramaze/helper/flash.rb +5 -4
- data/spec/ramaze/helper/formatting.rb +1 -1
- data/spec/ramaze/helper/link.rb +3 -3
- data/spec/ramaze/helper/pager.rb +44 -80
- data/spec/ramaze/helper/partial.rb +2 -3
- data/spec/ramaze/helper/redirect.rb +10 -1
- data/spec/ramaze/helper/stack.rb +4 -3
- data/spec/ramaze/helper/template/loop.xhtml +2 -1
- data/spec/ramaze/inform/informer.rb +2 -2
- data/spec/ramaze/inform/syslog.rb +1 -1
- data/spec/ramaze/localize.rb +26 -26
- data/spec/ramaze/morpher.rb +6 -7
- data/spec/ramaze/params.rb +7 -8
- data/spec/ramaze/request.rb +27 -6
- data/spec/ramaze/request/mongrel.rb +1 -1
- data/spec/ramaze/request/thin.rb +9 -0
- data/spec/ramaze/session.rb +2 -1
- data/spec/ramaze/store/default.rb +14 -17
- data/spec/ramaze/template.rb +5 -7
- data/spec/ramaze/template/amrita2.rb +4 -1
- data/spec/ramaze/template/erubis.rb +2 -1
- data/spec/ramaze/template/ezamar.rb +2 -3
- data/spec/ramaze/template/ezamar/other__index.xhtml +1 -0
- data/spec/ramaze/template/haml.rb +2 -1
- data/spec/ramaze/template/liquid.rb +4 -2
- data/spec/ramaze/template/markaby.rb +4 -2
- data/spec/ramaze/template/nagoro.rb +3 -4
- data/spec/ramaze/template/remarkably.rb +4 -2
- data/spec/ramaze/template/sass.rb +3 -2
- data/spec/ramaze/template/xslt.rb +4 -7
- data/spec/ramaze/trinity/request.rb +4 -3
- data/spec/ramaze/trinity/session.rb +6 -4
- data/spec/snippets/array/put_within.rb +3 -2
- data/spec/snippets/divide.rb +1 -4
- data/spec/snippets/kernel/__dir__.rb +1 -1
- data/spec/snippets/kernel/acquire.rb +71 -0
- data/spec/snippets/kernel/constant.rb +4 -8
- data/spec/snippets/numeric/filesize_format.rb +1 -1
- data/spec/snippets/ordered_set.rb +9 -2
- data/spec/snippets/ramaze/caller_info.rb +3 -3
- data/spec/snippets/ramaze/caller_lines.rb +3 -3
- data/spec/snippets/string/camel_case.rb +1 -1
- data/spec/snippets/string/color.rb +2 -2
- data/spec/snippets/string/snake_case.rb +5 -1
- data/spec/snippets/string/unindent.rb +1 -1
- data/spec/snippets/struct/fill.rb +14 -15
- data/spec/snippets/struct/values_at.rb +15 -10
- data/spec/snippets/symbol/to_proc.rb +13 -0
- data/spec/snippets/thread/into.rb +3 -4
- metadata +458 -386
- data/doc/README.html +0 -729
- data/doc/changes.txt +0 -5044
- data/doc/changes.xml +0 -5046
- data/lib/proto/public/error.zmr +0 -61
- data/lib/proto/src/element/page.rb +0 -17
- data/lib/proto/src/model.rb +0 -6
- data/lib/proto/template/index.xhtml +0 -15
- data/lib/ramaze/spec/helper/layout.rb +0 -58
- data/lib/ramaze/spec/helper/minimal.rb +0 -23
- data/lib/ramaze/spec/helper/wrap.rb +0 -198
- data/spec/snippets/kernel/aquire.rb +0 -71
data/lib/proto/public/error.zmr
DELETED
@@ -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
|
data/lib/proto/src/model.rb
DELETED
@@ -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
|