ramaze 2008.06 → 2008.11
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.
- data/README.markdown +6 -6
- data/Rakefile +33 -3
- data/bin/ramaze +18 -0
- data/doc/CHANGELOG +960 -0
- data/doc/LEGAL +5 -1
- data/doc/meta/announcement.txt +20 -36
- data/doc/tutorial/todolist.html +421 -313
- data/doc/tutorial/todolist.mkd +33 -16
- data/examples/app/blog/spec/blog.rb +3 -3
- data/examples/app/rapaste/controller/paste.rb +8 -1
- data/examples/app/rapaste/model/paste.rb +3 -0
- data/examples/app/rapaste/spec/rapaste.rb +3 -1
- data/examples/app/rapaste/start.rb +3 -2
- data/examples/app/sourceview/public/sourceview.js +2 -2
- data/examples/app/todolist/spec/todolist.rb +6 -6
- data/examples/app/todolist/template/index.xhtml +1 -1
- data/examples/app/whywiki/spec/whywiki.rb +2 -2
- data/examples/app/wikore/spec/wikore.rb +2 -2
- data/examples/app/wikore/src/model.rb +4 -3
- data/examples/app/wiktacular/spec/wiktacular.rb +7 -7
- data/examples/basic/simple.rb +2 -2
- data/examples/helpers/paginate.rb +71 -0
- data/examples/misc/simple_auth.rb +20 -8
- data/lib/proto/controller/init.rb +10 -0
- data/lib/proto/controller/main.rb +1 -3
- data/lib/proto/model/init.rb +4 -0
- data/lib/proto/public/dispatch.fcgi +1 -1
- data/lib/proto/spec/main.rb +2 -1
- data/lib/proto/start.rb +3 -3
- data/lib/proto/start.ru +1 -1
- data/lib/proto/view/error.xhtml +4 -4
- data/lib/ramaze.rb +8 -3
- data/lib/ramaze/action.rb +6 -6
- data/lib/ramaze/adapter.rb +1 -6
- data/lib/ramaze/adapter/base.rb +30 -27
- data/lib/ramaze/adapter/cgi.rb +1 -0
- data/lib/ramaze/cache.rb +1 -3
- data/lib/ramaze/cache/memcached.rb +3 -5
- data/lib/ramaze/contrib/auto_params.rb +2 -2
- data/lib/ramaze/contrib/auto_params/get_args.rb +2 -1
- data/lib/ramaze/contrib/gems.rb +17 -18
- data/lib/ramaze/contrib/gzip_filter.rb +22 -9
- data/lib/ramaze/contrib/maruku_uv.rb +59 -0
- data/lib/ramaze/contrib/profiling.rb +1 -1
- data/lib/ramaze/contrib/rest.rb +16 -13
- data/lib/ramaze/contrib/sequel/create_join.rb +25 -0
- data/lib/ramaze/contrib/sequel/form_field.rb +129 -0
- data/lib/ramaze/contrib/sequel/image.rb +198 -0
- data/lib/ramaze/contrib/sequel/relation.rb +82 -0
- data/lib/ramaze/controller.rb +33 -34
- data/lib/ramaze/controller/resolve.rb +29 -9
- data/lib/ramaze/current.rb +60 -20
- data/lib/ramaze/current/request.rb +8 -7
- data/lib/ramaze/current/response.rb +15 -3
- data/lib/ramaze/current/session/flash.rb +8 -0
- data/lib/ramaze/dispatcher.rb +17 -9
- data/lib/ramaze/dispatcher/action.rb +4 -5
- data/lib/ramaze/dispatcher/directory.rb +1 -1
- data/lib/ramaze/dispatcher/error.rb +4 -4
- data/lib/ramaze/dispatcher/file.rb +4 -4
- data/lib/ramaze/gestalt.rb +15 -20
- data/lib/ramaze/helper/cgi.rb +7 -15
- data/lib/ramaze/helper/formatting.rb +41 -1
- data/lib/ramaze/helper/httpdigest.rb +20 -7
- data/lib/ramaze/helper/link.rb +4 -6
- data/lib/ramaze/helper/paginate.rb +233 -0
- data/lib/ramaze/helper/redirect.rb +1 -1
- data/lib/ramaze/helper/rest.rb +1 -1
- data/lib/ramaze/helper/thread.rb +17 -0
- data/lib/ramaze/helper/ultraviolet.rb +44 -0
- data/lib/ramaze/helper/user.rb +4 -9
- data/lib/ramaze/log.rb +2 -2
- data/lib/ramaze/log/analogger.rb +21 -23
- data/lib/ramaze/log/growl.rb +21 -23
- data/lib/ramaze/log/hub.rb +1 -1
- data/lib/ramaze/log/informer.rb +97 -99
- data/lib/ramaze/log/knotify.rb +14 -16
- data/lib/ramaze/log/logger.rb +11 -13
- data/lib/ramaze/log/logging.rb +61 -63
- data/lib/ramaze/log/rotatinginformer.rb +168 -0
- data/lib/ramaze/log/syslog.rb +41 -31
- data/lib/ramaze/log/xosd.rb +70 -72
- data/lib/ramaze/option.rb +9 -6
- data/lib/ramaze/option/holder.rb +5 -27
- data/lib/ramaze/reloader.rb +186 -0
- data/lib/ramaze/setup.rb +1 -1
- data/lib/ramaze/snippets.rb +13 -0
- data/lib/ramaze/snippets/array/put_within.rb +31 -24
- data/lib/ramaze/snippets/binding/locals.rb +23 -11
- data/lib/ramaze/snippets/dictionary.rb +2 -2
- data/lib/ramaze/snippets/fiber.rb +63 -0
- data/lib/ramaze/snippets/kernel/constant.rb +36 -21
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +12 -6
- data/lib/ramaze/snippets/numeric/filesize_format.rb +24 -17
- data/lib/ramaze/snippets/numeric/time.rb +63 -0
- data/lib/ramaze/snippets/object/__dir__.rb +29 -0
- data/lib/ramaze/snippets/object/acquire.rb +40 -0
- data/lib/ramaze/snippets/object/instance_variable_defined.rb +16 -5
- data/lib/ramaze/snippets/object/pretty.rb +14 -4
- data/lib/ramaze/snippets/object/scope.rb +14 -7
- data/lib/ramaze/snippets/ordered_set.rb +25 -14
- data/lib/ramaze/snippets/proc/locals.rb +17 -9
- data/lib/ramaze/snippets/ramaze/deprecated.rb +13 -0
- data/lib/ramaze/snippets/ramaze/fiber.rb +24 -0
- data/lib/ramaze/snippets/ramaze/state.rb +86 -0
- data/lib/ramaze/snippets/ramaze/struct.rb +45 -0
- data/lib/ramaze/snippets/string/camel_case.rb +13 -8
- data/lib/ramaze/snippets/string/color.rb +24 -20
- data/lib/ramaze/snippets/string/each.rb +14 -3
- data/lib/ramaze/snippets/string/end_with.rb +20 -0
- data/lib/ramaze/snippets/string/esc.rb +26 -21
- data/lib/ramaze/snippets/string/ord.rb +12 -6
- data/lib/ramaze/snippets/string/snake_case.rb +13 -7
- data/lib/ramaze/snippets/string/start_with.rb +16 -5
- data/lib/ramaze/snippets/string/unindent.rb +23 -15
- data/lib/ramaze/snippets/thread/into.rb +3 -3
- data/lib/ramaze/spec/helper/bacon.rb +5 -5
- data/lib/ramaze/spec/helper/mock_http.rb +1 -1
- data/lib/ramaze/spec/helper/pretty_output.rb +2 -2
- data/lib/ramaze/spec/helper/snippets.rb +8 -0
- data/lib/ramaze/template.rb +4 -1
- data/lib/ramaze/template/ezamar/textpow.syntax +34 -0
- data/lib/ramaze/template/maruku.rb +34 -0
- data/lib/ramaze/template/tagz.rb +2 -2
- data/lib/ramaze/template/xslt.rb +2 -2
- data/lib/ramaze/tool/create.rb +27 -53
- data/lib/ramaze/tool/localize.rb +8 -4
- data/lib/ramaze/tool/mime.rb +11 -1
- data/lib/ramaze/tool/project_creator.rb +110 -0
- data/lib/ramaze/trinity.rb +4 -1
- data/lib/ramaze/version.rb +1 -1
- data/lib/vendor/bacon.rb +323 -0
- data/rake_tasks/gem.rake +10 -1
- data/rake_tasks/maintenance.rake +40 -2
- data/rake_tasks/metric.rake +24 -0
- data/rake_tasks/release.rake +17 -4
- data/rake_tasks/spec.rake +1 -2
- data/ramaze.gemspec +549 -495
- data/spec/contrib/auto_params.rb +3 -3
- data/spec/contrib/profiling.rb +2 -2
- data/spec/examples/simple_auth.rb +2 -2
- data/spec/examples/templates/template_haml.rb +0 -2
- data/spec/ramaze/action/file_cache.rb +22 -0
- data/spec/ramaze/adapter.rb +2 -2
- data/spec/ramaze/controller/actionless_templates.rb +1 -1
- data/spec/ramaze/controller/subclass.rb +15 -0
- data/spec/ramaze/controller/template_resolving.rb +1 -1
- data/spec/ramaze/controller/view/bar.xhtml +1 -0
- data/spec/ramaze/controller/view/base/another.xhtml +1 -0
- data/spec/ramaze/current/session.rb +1 -1
- data/spec/ramaze/dispatcher/file.rb +2 -2
- data/spec/ramaze/helper/aspect.rb +26 -17
- data/spec/ramaze/helper/formatting.rb +13 -0
- data/spec/ramaze/log/informer.rb +10 -10
- data/spec/ramaze/log/syslog.rb +67 -4
- data/spec/ramaze/rewrite.rb +1 -1
- data/spec/ramaze/route.rb +1 -1
- data/spec/ramaze/struct.rb +47 -0
- data/spec/ramaze/template/markaby.rb +1 -1
- data/spec/ramaze/template/tagz.rb +1 -1
- data/spec/snippets/binding/locals.rb +9 -0
- data/spec/snippets/numeric/time.rb +12 -0
- data/spec/snippets/{kernel → object}/__dir__.rb +0 -0
- data/spec/snippets/{kernel → object}/acquire.rb +0 -0
- metadata +90 -81
- data/cache.yaml +0 -7
- data/examples/app/rammit/spec/rammit.rb +0 -31
- data/examples/app/rammit/src/controller/main.rb +0 -3
- data/examples/app/rammit/src/controller/page.rb +0 -16
- data/examples/app/rammit/src/model.rb +0 -33
- data/examples/app/rammit/start.rb +0 -8
- data/examples/app/rammit/template/index.xhtml +0 -14
- data/examples/app/rammit/template/page/view.xhtml +0 -4
- data/lib/ramaze/snippets/kernel/__dir__.rb +0 -23
- data/lib/ramaze/snippets/kernel/acquire.rb +0 -34
- data/lib/ramaze/snippets/object/thread_accessor.rb +0 -5
- data/lib/ramaze/snippets/ramaze/thread_accessor.rb +0 -58
- data/lib/ramaze/snippets/struct/fill.rb +0 -23
- data/lib/ramaze/snippets/struct/values_at.rb +0 -39
- data/lib/ramaze/snippets/symbol/to_proc.rb +0 -24
- data/lib/ramaze/sourcereload.rb +0 -176
- data/spec/snippets/struct/fill.rb +0 -26
- data/spec/snippets/struct/values_at.rb +0 -52
- data/spec/snippets/symbol/to_proc.rb +0 -13
data/doc/tutorial/todolist.mkd
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Title: The official Ramaze todolist tutorial
|
2
|
-
|
3
|
-
|
2
|
+
html_use_syntax: true
|
3
|
+
uv_style: iplastic
|
4
4
|
|
5
5
|
# To-do List Tutorial
|
6
6
|
|
@@ -46,7 +46,8 @@ to-do list.
|
|
46
46
|
|
47
47
|
So run:
|
48
48
|
|
49
|
-
|
49
|
+
ramaze --create todolist
|
50
|
+
{:lang=shell-unix-generic}
|
50
51
|
|
51
52
|
done.
|
52
53
|
|
@@ -59,7 +60,7 @@ with your ORM or database-library of choice.
|
|
59
60
|
|
60
61
|
So first, create a `model/todolist.rb` for our application:
|
61
62
|
|
62
|
-
|
63
|
+
require 'ramaze/store/default'
|
63
64
|
TodoList = Ramaze::Store::Default.new('todolist.yaml')
|
64
65
|
{:lang=ruby}
|
65
66
|
|
@@ -95,12 +96,12 @@ simple.
|
|
95
96
|
TodoList.each do |title, value|
|
96
97
|
status = value[:done] ? 'done' : 'not done'
|
97
98
|
?>
|
98
|
-
<li>#{
|
99
|
+
<li>#{h title}: #{status}</li>
|
99
100
|
<?r end ?>
|
100
101
|
</ul>
|
101
102
|
</body>
|
102
103
|
</html>
|
103
|
-
{:lang=
|
104
|
+
{:lang=html}
|
104
105
|
|
105
106
|
I will assume that you are familiar with basic Ruby already, so we will
|
106
107
|
concentrate on the things new here.
|
@@ -118,7 +119,7 @@ interesting part)
|
|
118
119
|
<li>Laundry: not done</li>
|
119
120
|
<li>Wash dishes: not done</li>
|
120
121
|
</ul>
|
121
|
-
{:lang=
|
122
|
+
{:lang=html}
|
122
123
|
|
123
124
|
That wasn't too bad, huh?
|
124
125
|
|
@@ -196,13 +197,13 @@ changed to do following:
|
|
196
197
|
<?r else ?>
|
197
198
|
<ul>
|
198
199
|
<?r @tasks.each do |title, status| ?>
|
199
|
-
<li>#{
|
200
|
+
<li>#{h title}: #{status}</li>
|
200
201
|
<?r end ?>
|
201
202
|
</ul>
|
202
203
|
<?r end ?>
|
203
204
|
</body>
|
204
205
|
</html>
|
205
|
-
{:lang=
|
206
|
+
{:lang=ezamar}
|
206
207
|
|
207
208
|
The rest of the template can stay the same.
|
208
209
|
|
@@ -224,6 +225,7 @@ Add a link on the `view/index.xhtml` like this:
|
|
224
225
|
|
225
226
|
<h1>TodoList</h1>
|
226
227
|
<a href="/new">New Task</a>
|
228
|
+
{:lang=ezamar}
|
227
229
|
|
228
230
|
Open a new file `view/new.xhtml` with a form to add a new task.
|
229
231
|
|
@@ -240,6 +242,7 @@ Open a new file `view/new.xhtml` with a form to add a new task.
|
|
240
242
|
</form>
|
241
243
|
</body>
|
242
244
|
</html>
|
245
|
+
{:lang=ezamar}
|
243
246
|
|
244
247
|
We will not need a method for this on our controller, in fact, actions can
|
245
248
|
consist of either method and template or only one of them. The Controller
|
@@ -285,10 +288,10 @@ Jump into `view/index.xhtml` and do the following:
|
|
285
288
|
|
286
289
|
<?r @tasks.each do |title, status, toggle| ?>
|
287
290
|
<li>
|
288
|
-
#{
|
291
|
+
#{h title}: #{status} - [ #{toggle} ]
|
289
292
|
</li>
|
290
293
|
<?r end
|
291
|
-
{:lang=
|
294
|
+
{:lang=ezamar}
|
292
295
|
|
293
296
|
We added a new element here, `toggle`, the Controller should give us
|
294
297
|
a link to change the status corresponding to the status of the task, so off
|
@@ -317,6 +320,7 @@ toggle the status, A and Rs are both methods that help you do that.
|
|
317
320
|
The result will be something like:
|
318
321
|
|
319
322
|
<a href="/open/Wash+dishes">Close Task</a>
|
323
|
+
{:lang=ezamar}
|
320
324
|
|
321
325
|
Rs actually is responsible to build the links href, for more information please
|
322
326
|
take a look at the RDoc for LinkHelper.
|
@@ -364,7 +368,10 @@ will translate into:
|
|
364
368
|
open('Wash dishes')
|
365
369
|
{:lang=ruby}
|
366
370
|
|
367
|
-
Which in turn will call
|
371
|
+
Which in turn will call
|
372
|
+
|
373
|
+
task_status('Wash dishes', false)
|
374
|
+
{:lang=ruby}
|
368
375
|
|
369
376
|
That's it, go on and try it :)
|
370
377
|
|
@@ -393,9 +400,10 @@ Now jumping to `view/index.xhtml` again, change it so it shows the link:
|
|
393
400
|
|
394
401
|
<?r @tasks.each do |title, status, toggle, delete| ?>
|
395
402
|
<li>
|
396
|
-
#{
|
403
|
+
#{h title}: #{status} [ #{toggle} | #{delete} ]
|
397
404
|
</li>
|
398
405
|
<?r end ?>
|
406
|
+
{:lang=ezamar}
|
399
407
|
|
400
408
|
Voilà, you now have acquired the Certificate of Ramazeness.
|
401
409
|
|
@@ -406,6 +414,7 @@ explain some more advanced concepts of Ramaze and Ezamar.
|
|
406
414
|
## Eighth Step, Elements
|
407
415
|
|
408
416
|
<Page></Page>
|
417
|
+
{:lang=ezamar}
|
409
418
|
|
410
419
|
This is called an Element, Ramaze will go and search for a class that matches
|
411
420
|
the name Page and responds to `#render`. Then it will go and hand the content in
|
@@ -423,12 +432,14 @@ Let us have a look at our templates, they got some repetitive stuff, like:
|
|
423
432
|
<h1>some title</h1>
|
424
433
|
</body>
|
425
434
|
</html>
|
435
|
+
{:lang=ezamar}
|
426
436
|
|
427
437
|
How about replacing that with something short and reusable:
|
428
438
|
|
429
439
|
<Page title="TodoList">
|
430
440
|
your other content
|
431
441
|
</Page>
|
442
|
+
{:lang=html}
|
432
443
|
|
433
444
|
Would be nice of course, and when you start having more templates it makes an
|
434
445
|
awful lot of sense being able to change the enclosing stuff in one place.
|
@@ -491,12 +502,13 @@ First the `view/index.xhtml`
|
|
491
502
|
<ul>
|
492
503
|
<?r @tasks.each do |title, status, toggle, delete| ?>
|
493
504
|
<li>
|
494
|
-
#{
|
505
|
+
#{h title}: #{status} [ #{toggle} | #{delete} ]
|
495
506
|
</li>
|
496
507
|
<?r end ?>
|
497
508
|
</ul>
|
498
509
|
<?r end ?>
|
499
510
|
</Page>
|
511
|
+
{:lang=ezamar}
|
500
512
|
|
501
513
|
and the `view/new.xhtml`
|
502
514
|
|
@@ -507,6 +519,7 @@ and the `view/new.xhtml`
|
|
507
519
|
<input type="submit" />
|
508
520
|
</form>
|
509
521
|
</Page>
|
522
|
+
{:lang=ezamar}
|
510
523
|
|
511
524
|
Alright, now just go and look at the result in the browser, try changing
|
512
525
|
the things inside the Element and look at how it behaves.
|
@@ -522,23 +535,25 @@ So, from what we have right now:
|
|
522
535
|
<ul>
|
523
536
|
<?r @tasks.each do |title, status, toggle, delete| ?>
|
524
537
|
<li>
|
525
|
-
#{
|
538
|
+
#{h title}: #{status} [ #{toggle} | #{delete} ]
|
526
539
|
</li>
|
527
540
|
<?r end ?>
|
528
541
|
</ul>
|
542
|
+
{:lang=ezamar}
|
529
543
|
|
530
544
|
To something like this:
|
531
545
|
|
532
546
|
<table>
|
533
547
|
<?r @tasks.each do |title, status, toggle, delete| ?>
|
534
548
|
<tr>
|
535
|
-
<td class="title"> #{
|
549
|
+
<td class="title"> #{h title} </td>
|
536
550
|
<td class="status"> #{status} </td>
|
537
551
|
<td class="toggle"> #{toggle} </td>
|
538
552
|
<td class="delete"> #{delete} </td>
|
539
553
|
</tr>
|
540
554
|
<?r end ?>
|
541
555
|
</table>
|
556
|
+
{:lang=ezamar}
|
542
557
|
|
543
558
|
And, since we have proper classes to address some style sheets, jump into the
|
544
559
|
Page element and add some style sheet:
|
@@ -554,6 +569,7 @@ Page element and add some style sheet:
|
|
554
569
|
a { color: #3a3; }
|
555
570
|
</style>
|
556
571
|
</head>
|
572
|
+
{:lang=ezamar}
|
557
573
|
|
558
574
|
That looks quite a bit nicer, right? And yes, if you don't like tables (though
|
559
575
|
this is an entirely legit use in my opinion) you can just do it like you want,
|
@@ -759,6 +775,7 @@ and add in the right place:
|
|
759
775
|
<?r end ?>
|
760
776
|
#{content}
|
761
777
|
</body>
|
778
|
+
{:lang=ezamar}
|
762
779
|
|
763
780
|
The only thing special about it is the `\\#{flash[:error]}`, we have to escape
|
764
781
|
the `#` so it won't evaluate this immediately but wait until it is really
|
@@ -31,7 +31,7 @@ describe 'Blog' do
|
|
31
31
|
|
32
32
|
def create_page(title,content)
|
33
33
|
page = post('/create','title'=>title,'content'=>content)
|
34
|
-
page.status.should ==
|
34
|
+
page.status.should == 302
|
35
35
|
page.location.should == '/'
|
36
36
|
end
|
37
37
|
|
@@ -48,7 +48,7 @@ describe 'Blog' do
|
|
48
48
|
form.at('textarea').inner_html.should == ''
|
49
49
|
form.at('input[@type=submit]')['value'].should == 'Add Entry'
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
it 'should add new pages' do
|
53
53
|
create_page('new page', 'cool! a new page')
|
54
54
|
doc = check_page
|
@@ -78,7 +78,7 @@ describe 'Blog' do
|
|
78
78
|
entries.size.should == 2
|
79
79
|
delete_link = entries.last.at("a:contains('delete')")
|
80
80
|
page = get(delete_link[:href])
|
81
|
-
page.status.should ==
|
81
|
+
page.status.should == 302
|
82
82
|
page.location.should == '/'
|
83
83
|
(check_page/'div.entry').size.should == 1
|
84
84
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
Ramaze::Route[%r!^/(\d+)\.(?:te?xt|plain|rb|css|js)$!] = '/plain/%d'
|
2
|
+
Ramaze::Route[%r!^/(\d+)\.(?:html)$!] = '/html/%d'
|
2
3
|
Ramaze::Route[%r!^/(?:te?xt|plain|rb|css|js)/(\d+)$!] = '/plain/%d'
|
3
4
|
Ramaze::Route[%r!^/(\d+)\.(\w+)$!] = '/view/%d/%s'
|
4
5
|
Ramaze::Route[%r!^/(\d+)$!] = '/view/%d/html'
|
@@ -63,7 +64,13 @@ class PasteController < Ramaze::Controller
|
|
63
64
|
response['Content-Type'] = 'text/plain'
|
64
65
|
respond paste.text
|
65
66
|
end
|
66
|
-
|
67
|
+
|
68
|
+
def html(id)
|
69
|
+
paste = paste_for(id)
|
70
|
+
response['Content-Type'] = 'text/html'
|
71
|
+
respond paste.text
|
72
|
+
end
|
73
|
+
|
67
74
|
def save_theme( theme_name )
|
68
75
|
session[ :theme ] = theme_name
|
69
76
|
end
|
@@ -33,7 +33,7 @@ describe 'RaPaste' do
|
|
33
33
|
|
34
34
|
it 'should create a new paste' do
|
35
35
|
page = post('/save', 'syntax' => 'plain_text', 'text' => 'spec paste')
|
36
|
-
page.status.should ==
|
36
|
+
page.status.should == 302
|
37
37
|
page.original_headers['Location'].should == '/1'
|
38
38
|
end
|
39
39
|
|
@@ -46,4 +46,6 @@ describe 'RaPaste' do
|
|
46
46
|
page = get('/1')
|
47
47
|
(Hpricot(page.body)/'div#paste_body').inner_text.should =~ /spec paste/
|
48
48
|
end
|
49
|
+
|
50
|
+
FileUtils.rm_f(DB_FILE)
|
49
51
|
end
|
@@ -16,9 +16,10 @@ STYLE = 'iplastic'
|
|
16
16
|
|
17
17
|
Ramaze::Log.debug "done."
|
18
18
|
|
19
|
-
|
19
|
+
DB_FILE = "#{__DIR__}/rapaste.sqlite" # for specs
|
20
|
+
DB = Sequel.connect("sqlite://#{DB_FILE}")
|
20
21
|
|
21
22
|
require 'model/paste'
|
22
23
|
require 'controller/paste'
|
23
24
|
|
24
|
-
Ramaze.start
|
25
|
+
Ramaze.start :adapter => :mongrel, :port => 9952
|
@@ -22,7 +22,7 @@ function setup() {
|
|
22
22
|
|
23
23
|
if (curfile) {
|
24
24
|
$('#repourl').empty().append(
|
25
|
-
$('<a/>').attr('href', 'http://
|
25
|
+
$('<a/>').attr('href', 'http://github.com/manveru/ramaze/tree/master'+curfile)
|
26
26
|
.text('download '+curfile.substr(1))
|
27
27
|
);
|
28
28
|
urchinTracker(curfile);
|
@@ -49,4 +49,4 @@ $(function(){
|
|
49
49
|
} else {
|
50
50
|
setup();
|
51
51
|
}
|
52
|
-
});
|
52
|
+
});
|
@@ -82,7 +82,7 @@ describe 'todolist' do
|
|
82
82
|
|
83
83
|
it 'should POST new task and redirect to /' do
|
84
84
|
result = post('/create', 'title' => 'spectask')
|
85
|
-
result.status.should ==
|
85
|
+
result.status.should == 302
|
86
86
|
end
|
87
87
|
|
88
88
|
it 'should show have the new task' do
|
@@ -90,10 +90,10 @@ describe 'todolist' do
|
|
90
90
|
end
|
91
91
|
|
92
92
|
it 'should toggle the spectask' do
|
93
|
-
get('/close/spectask').status.should ==
|
93
|
+
get('/close/spectask').status.should == 302
|
94
94
|
spectask.should.not == nil
|
95
95
|
spectask_status.should == 'done'
|
96
|
-
get('/open/spectask').status.should ==
|
96
|
+
get('/open/spectask').status.should == 302
|
97
97
|
spectask.should.not == nil
|
98
98
|
spectask_status.should == 'not done'
|
99
99
|
end
|
@@ -101,21 +101,21 @@ describe 'todolist' do
|
|
101
101
|
it 'should raise on modifying a not existing task' do
|
102
102
|
%w[open close].each do |action|
|
103
103
|
response = get("/#{action}/nothere", :referrer => "/")
|
104
|
-
response.status.should ==
|
104
|
+
response.status.should == 302
|
105
105
|
response.original_headers['Location'].should == '/'
|
106
106
|
error_on_page('/', response).should == "No such Task: `nothere'"
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
110
|
it 'should delete the new task' do
|
111
|
-
get('/delete/spectask').status.should ==
|
111
|
+
get('/delete/spectask').status.should == 302
|
112
112
|
task_titles.should.not.include('spectask')
|
113
113
|
end
|
114
114
|
|
115
115
|
it 'should not create empty tasks but show a subtle error message' do
|
116
116
|
response = post('/create', 'title' => '', :referrer => "/new")
|
117
117
|
|
118
|
-
response.status.should ==
|
118
|
+
response.status.should == 302
|
119
119
|
response.original_headers['Location'].should == '/new'
|
120
120
|
|
121
121
|
error_on_page('/new', response).should == 'Please enter a title'
|
@@ -6,7 +6,7 @@
|
|
6
6
|
<table>
|
7
7
|
<?r @tasks.each do |title, status, toggle, delete| ?>
|
8
8
|
<tr>
|
9
|
-
<td class="title"> #{
|
9
|
+
<td class="title"> #{h title} </td>
|
10
10
|
<td class="status"> #{status} </td>
|
11
11
|
<td class="toggle"> #{toggle} </td>
|
12
12
|
<td class="delete"> #{delete} </td>
|
@@ -26,7 +26,7 @@ describe 'WikiController' do
|
|
26
26
|
it 'should start' do
|
27
27
|
ramaze :public_root => base/:public,
|
28
28
|
:view_root => base/:template
|
29
|
-
get('/').status.should ==
|
29
|
+
get('/').status.should == 302
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'should have main page' do
|
@@ -46,7 +46,7 @@ describe 'WikiController' do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'should create pages' do
|
49
|
-
post('/save','text'=>'the text','page'=>'ThePage').status.should ==
|
49
|
+
post('/save','text'=>'the text','page'=>'ThePage').status.should == 302
|
50
50
|
page = Hpricot(get('/show/ThePage').body)
|
51
51
|
body = page.at('body>div')
|
52
52
|
body.should.not == nil
|
@@ -13,7 +13,7 @@ describe 'Wikore' do
|
|
13
13
|
|
14
14
|
def check_redirect(to = '/')
|
15
15
|
response = yield
|
16
|
-
response.status.should ==
|
16
|
+
response.status.should == 302
|
17
17
|
response.body.should =~ /<a href="#{to}">/
|
18
18
|
end
|
19
19
|
|
@@ -107,5 +107,5 @@ describe 'Wikore' do
|
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
-
FileUtils.
|
110
|
+
FileUtils.rm_f(DB_FILE)
|
111
111
|
end
|
@@ -5,7 +5,8 @@ begin
|
|
5
5
|
when :memory
|
6
6
|
DB = Sequel.sqlite
|
7
7
|
else
|
8
|
-
|
8
|
+
DB_FILE = __DIR__/'wikore.db'
|
9
|
+
DB = Sequel.connect("sqlite://#{DB_FILE}")
|
9
10
|
end
|
10
11
|
rescue NoMethodError
|
11
12
|
raise LoadError, 'Install latest Sequel gem'
|
@@ -21,7 +22,7 @@ module Model
|
|
21
22
|
|
22
23
|
class Page < Sequel::Model(:page)
|
23
24
|
set_schema do
|
24
|
-
instance_eval
|
25
|
+
instance_eval(&PAGE_SCHEMA)
|
25
26
|
text :title, :unique => true, :null => false
|
26
27
|
end
|
27
28
|
|
@@ -41,7 +42,7 @@ module Model
|
|
41
42
|
|
42
43
|
class OldPage < Sequel::Model(:old_page)
|
43
44
|
set_schema do
|
44
|
-
instance_eval
|
45
|
+
instance_eval(&PAGE_SCHEMA)
|
45
46
|
text :title, :unique => false, :null => false
|
46
47
|
end
|
47
48
|
end
|
@@ -60,7 +60,7 @@ describe 'wiktacular' do
|
|
60
60
|
it 'should not have foobar page' do
|
61
61
|
doc = check_page('/foobar')
|
62
62
|
doc.at('div#text').inner_html.strip.should == 'No Entry'
|
63
|
-
end
|
63
|
+
end
|
64
64
|
|
65
65
|
it 'should allow page editing' do
|
66
66
|
doc = check_page('/edit/main')
|
@@ -72,26 +72,26 @@ describe 'wiktacular' do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def edit_page(name, text='new text')
|
75
|
-
page = post('/save','handle'=>name,'text'=>text)
|
76
|
-
page.status.should ==
|
75
|
+
page = post('/save','handle'=>name,'text'=>text)
|
76
|
+
page.status.should == 302
|
77
77
|
page.location.should == '/index/'+name
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
def delete_page(name)
|
81
81
|
page = get('/delete/'+name)
|
82
|
-
page.status.should ==
|
82
|
+
page.status.should == 302
|
83
83
|
page.location.should == '/'
|
84
84
|
end
|
85
85
|
|
86
86
|
def revert_page(name)
|
87
87
|
page = get('/revert/'+name)
|
88
|
-
page.status.should ==
|
88
|
+
page.status.should == 302
|
89
89
|
page.location.should == '/'+name
|
90
90
|
end
|
91
91
|
|
92
92
|
def unrevert_page(name)
|
93
93
|
page = get('/revert/'+name)
|
94
|
-
page.status.should ==
|
94
|
+
page.status.should == 302
|
95
95
|
page.location.should == '/'+name
|
96
96
|
end
|
97
97
|
|