runo 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. data/README.rdoc +1 -118
  2. data/bin/runo +4 -29
  3. data/lib/dummy.rb +0 -0
  4. metadata +12 -278
  5. data/lib/_error.rb +0 -14
  6. data/lib/_field.rb +0 -260
  7. data/lib/_i18n.rb +0 -144
  8. data/lib/_parser.rb +0 -256
  9. data/lib/_path.rb +0 -86
  10. data/lib/_storage/_storage.rb +0 -215
  11. data/lib/_storage/file.rb +0 -201
  12. data/lib/_storage/sequel.rb +0 -174
  13. data/lib/_storage/temp.rb +0 -73
  14. data/lib/_widget/action_create.rb +0 -23
  15. data/lib/_widget/action_login.rb +0 -22
  16. data/lib/_widget/action_signup.rb +0 -16
  17. data/lib/_widget/action_update.rb +0 -16
  18. data/lib/_widget/crumb.rb +0 -24
  19. data/lib/_widget/done.rb +0 -16
  20. data/lib/_widget/login.rb +0 -25
  21. data/lib/_widget/me.rb +0 -31
  22. data/lib/_widget/message.rb +0 -51
  23. data/lib/_widget/navi.rb +0 -88
  24. data/lib/_widget/submit.rb +0 -49
  25. data/lib/_widget/view_ym.rb +0 -77
  26. data/lib/_workflow/_workflow.rb +0 -89
  27. data/lib/_workflow/attachment.rb +0 -50
  28. data/lib/_workflow/blog.rb +0 -28
  29. data/lib/_workflow/contact.rb +0 -23
  30. data/lib/_workflow/forum.rb +0 -26
  31. data/lib/_workflow/register.rb +0 -39
  32. data/lib/meta/_meta.rb +0 -20
  33. data/lib/meta/group.rb +0 -19
  34. data/lib/meta/id.rb +0 -59
  35. data/lib/meta/owner.rb +0 -21
  36. data/lib/meta/timestamp.rb +0 -118
  37. data/lib/runo.rb +0 -396
  38. data/lib/scalar/checkbox.rb +0 -68
  39. data/lib/scalar/file.rb +0 -144
  40. data/lib/scalar/img.rb +0 -112
  41. data/lib/scalar/password.rb +0 -58
  42. data/lib/scalar/radio.rb +0 -47
  43. data/lib/scalar/select.rb +0 -47
  44. data/lib/scalar/text.rb +0 -38
  45. data/lib/scalar/textarea.rb +0 -35
  46. data/lib/scalar/textarea_pre.rb +0 -14
  47. data/lib/scalar/textarea_wiki.rb +0 -173
  48. data/lib/set/_set.rb +0 -196
  49. data/lib/set/dynamic.rb +0 -177
  50. data/lib/set/static.rb +0 -102
  51. data/lib/set/static_folder.rb +0 -96
  52. data/locale/en/index.po +0 -242
  53. data/locale/index.pot +0 -243
  54. data/locale/ja/index.po +0 -242
  55. data/locale/lazy_parser.rb +0 -54
  56. data/skel/config.ru +0 -27
  57. data/skel/skin/_users/00000000_frank-avatar.jpg +0 -0
  58. data/skel/skin/_users/00000000_frank-avatar_small.jpg +0 -0
  59. data/skel/skin/_users/00000000_frank.yaml +0 -12
  60. data/skel/skin/_users/00000000_root-avatar.jpg +0 -0
  61. data/skel/skin/_users/00000000_root-avatar_small.jpg +0 -0
  62. data/skel/skin/_users/00000000_root.yaml +0 -11
  63. data/skel/skin/_users/css/users.css +0 -21
  64. data/skel/skin/_users/css/users.less +0 -25
  65. data/skel/skin/_users/done.html +0 -42
  66. data/skel/skin/_users/index.html +0 -46
  67. data/skel/skin/_users/index.yaml +0 -3
  68. data/skel/skin/_users/summary.html +0 -40
  69. data/skel/skin/css/base.css +0 -93
  70. data/skel/skin/css/base.less +0 -139
  71. data/skel/skin/css/coax.css +0 -199
  72. data/skel/skin/css/coax.less +0 -244
  73. data/skel/skin/examples/blog/20091214_0001.yaml +0 -8
  74. data/skel/skin/examples/blog/20100630_0001.yaml +0 -8
  75. data/skel/skin/examples/blog/20100630_0002.yaml +0 -14
  76. data/skel/skin/examples/blog/20100701_0001.yaml +0 -8
  77. data/skel/skin/examples/blog/20100701_0002-a-20100701_0001-f.jpg +0 -0
  78. data/skel/skin/examples/blog/20100701_0002-a-20100701_0001-f_small.jpg +0 -0
  79. data/skel/skin/examples/blog/20100701_0002.yaml +0 -19
  80. data/skel/skin/examples/blog/frank/20100701_0001.yaml +0 -10
  81. data/skel/skin/examples/blog/frank/index.yaml +0 -4
  82. data/skel/skin/examples/blog/index.html +0 -51
  83. data/skel/skin/examples/blog/rss.xml +0 -18
  84. data/skel/skin/examples/contact/20100701_0001-file.txt +0 -1
  85. data/skel/skin/examples/contact/20100701_0001.yaml +0 -15
  86. data/skel/skin/examples/contact/20100701_0002.yaml +0 -8
  87. data/skel/skin/examples/contact/20100701_0003.yaml +0 -9
  88. data/skel/skin/examples/contact/index.html +0 -47
  89. data/skel/skin/examples/contact/js/contact.js +0 -13
  90. data/skel/skin/examples/contact/summary.html +0 -54
  91. data/skel/skin/examples/forum/20100701_0001.yaml +0 -41
  92. data/skel/skin/examples/forum/20100701_0002.yaml +0 -25
  93. data/skel/skin/examples/forum/index.html +0 -68
  94. data/skel/skin/examples/forum/summary.html +0 -47
  95. data/skel/skin/examples/index.html +0 -73
  96. data/skel/skin/index.html +0 -39
  97. data/skel/skin/js/base.js +0 -50
  98. data/t/locale/de/index.po +0 -19
  99. data/t/locale/en-GB/index.po +0 -25
  100. data/t/locale/ja/index.po +0 -30
  101. data/t/skin/_users/00000000_test.yaml +0 -3
  102. data/t/skin/_users/index.html +0 -13
  103. data/t/skin/foo/20091120_0001.yaml +0 -7
  104. data/t/skin/foo/bar/20091120_0001.yaml +0 -5
  105. data/t/skin/foo/bar/index.yaml +0 -5
  106. data/t/skin/foo/baz/css/baz.css +0 -1
  107. data/t/skin/foo/css/foo.css +0 -1
  108. data/t/skin/foo/index.html +0 -14
  109. data/t/skin/foo/index.yaml +0 -7
  110. data/t/skin/foo/not_css/foo.css +0 -1
  111. data/t/skin/foo/qux/index.html +0 -8
  112. data/t/skin/foo/qux/moo/index.html +0 -6
  113. data/t/skin/foo/sub-20100306_0001.yaml +0 -3
  114. data/t/skin/index.yaml +0 -3
  115. data/t/skin/t_attachment/index.html +0 -13
  116. data/t/skin/t_contact/done.html +0 -6
  117. data/t/skin/t_contact/index.html +0 -9
  118. data/t/skin/t_file/index.html +0 -16
  119. data/t/skin/t_img/index.html +0 -14
  120. data/t/skin/t_img/test.jpg +0 -0
  121. data/t/skin/t_select/index.html +0 -9
  122. data/t/skin/t_store/index.html +0 -9
  123. data/t/skin/t_summary/20100326_0001.yaml +0 -3
  124. data/t/skin/t_summary/create.html +0 -9
  125. data/t/skin/t_summary/index.html +0 -9
  126. data/t/skin/t_summary/summary.html +0 -9
  127. data/t/t.rb +0 -27
  128. data/t/test_checkbox.rb +0 -273
  129. data/t/test_field.rb +0 -330
  130. data/t/test_file.rb +0 -900
  131. data/t/test_id.rb +0 -215
  132. data/t/test_img.rb +0 -328
  133. data/t/test_meta.rb +0 -57
  134. data/t/test_parser.rb +0 -1516
  135. data/t/test_password.rb +0 -188
  136. data/t/test_radio.rb +0 -226
  137. data/t/test_role.rb +0 -249
  138. data/t/test_runo.rb +0 -768
  139. data/t/test_runo_call.rb +0 -1281
  140. data/t/test_runo_i18n.rb +0 -325
  141. data/t/test_select.rb +0 -182
  142. data/t/test_set_complex.rb +0 -527
  143. data/t/test_set_dynamic.rb +0 -1504
  144. data/t/test_set_folder.rb +0 -515
  145. data/t/test_set_permit.rb +0 -246
  146. data/t/test_set_static.rb +0 -468
  147. data/t/test_storage.rb +0 -915
  148. data/t/test_text.rb +0 -125
  149. data/t/test_textarea.rb +0 -138
  150. data/t/test_timestamp.rb +0 -473
  151. data/t/test_workflow.rb +0 -367
@@ -1,47 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
6
-
7
- <head>
8
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
- <title>@(label)</title>
10
- <link rel="stylesheet" href="/css/base.css" type="text/css" media="screen" />
11
- <link rel="stylesheet" href="/css/coax.css" type="text/css" media="screen" />
12
- </head>
13
-
14
- <body>
15
- <div id="container">
16
- <div id="header">
17
- <h1><a href=".">@(label)</a></h1>
18
- $(.crumb)
19
- </div>
20
-
21
- <div id="center" class="column">
22
- <table id="main" class="app-contact summary" style="border: 1px solid black;">
23
- <tr>
24
- <th>Subject</th>
25
- <th>Author</th>
26
- <th>Posted at</th>
27
- </tr>
28
- <tr class="model">
29
- <td>$(subject)</td>
30
- <td>$(_owner)</td>
31
- <td>$(_timestamp)</td>
32
- </tr>
33
- </table>
34
- </div>
35
-
36
- <div id="right" class="column">
37
- $(.action_signup)
38
- $(.me)
39
- $(main.action_create)
40
- $(main.view_ym)
41
- </div>
42
-
43
- <div id="footer"></div>
44
- </div>
45
- </body>
46
-
47
- </html>
@@ -1,73 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="_(en)" lang="_(en)">
6
-
7
- <head>
8
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
- <meta name="runo-label" content="Examples" />
10
- <title>@(label)</title>
11
- <link rel="stylesheet" href="/css/base.css" type="text/css" media="screen" />
12
- <link rel="stylesheet" href="/css/coax.css" type="text/css" media="screen" />
13
- </head>
14
-
15
- <body>
16
- <div id="container">
17
- <div id="header">
18
- <h1><a href=".">@(label)</a></h1>
19
- $(.crumb)
20
- </div>
21
-
22
- <div id="center" class="column">
23
- <h2>@(label)</h2>
24
- <p>
25
- This directory contains some sample apps to show you how good Runo works.
26
- When you don't need them any more, you can just remove skin/examples/ directory and they will be gone.
27
- </p>
28
- <p>
29
- You may have to login to try some features of the apps. By default, there are two users.
30
- The first user is "root", the admin of the whole Runo app.
31
- The second user is "frank", who has no special privilege.
32
- Their initial passwords are same as their names (e.g. "root" for root, "frank" for frank).
33
- And of course, you can create your own account at <a href="../_users/create.html">here</a>.
34
- </p>
35
- <p>
36
- The data are stored in plain YAML files under data/examples/ by default. You can store the data on any RDB by fiddling config.ru.
37
- </p>
38
- <dl>
39
- <dt><a href="./blog/">Blog</a></dt>
40
- <dd>
41
- The admin (root) can post / update / delete entries and everybody can read them.
42
- Typical features such as monthly archives or syndication by RSS are provided.
43
- You have to login as "root" to post new articles.
44
- </dd>
45
- <dt><a href="./blog/frank/">Frank's Blog</a></dt>
46
- <dd>
47
- This is an example of inheritance.
48
- By simply making an empty sub-directory (blog/frank/), all HTMLs are inherited from the upper directory (blog/).
49
- Then, blog/frank/index.yaml overrides the label ("Frank's Blog") and the admin (frank).
50
- </dd>
51
- <dt><a href="./contact/">Contact Form</a></dt>
52
- <dd>
53
- This is an "everybody -> admin" type app.
54
- Everybody other than root can post this form and only root can see the posted result.
55
- The index.html is a good sample of various items such like radio, select, checkbox etc.
56
- </dd>
57
- <dt><a href="./forum/">Forum</a></dt>
58
- <dd>
59
- This is an example of a nested model.
60
- The app will have many posts, and each post will have many comments.
61
- Everybody who logged in can create a new post, or reply to a existing post.
62
- </dd>
63
- </dl>
64
- </div>
65
-
66
- <div id="right" class="column">
67
- </div>
68
-
69
- <div id="footer"></div>
70
- </div>
71
- </body>
72
-
73
- </html>
@@ -1,39 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html
3
- PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="_(en)" lang="_(en)">
6
-
7
- <head>
8
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
9
- <meta name="runo-label" content="Home" />
10
- <title>_(It works!)</title>
11
- <link rel="stylesheet" href="/css/base.css" type="text/css" media="screen" />
12
- <link rel="stylesheet" href="/css/coax.css" type="text/css" media="screen" />
13
- <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
14
- <script type="text/javascript" src="/js/base.js"></script>
15
- </head>
16
-
17
- <body>
18
- <div id="container">
19
- <div id="header">
20
- <h1><a href=".">_(It works!)</a></h1>
21
- $(.crumb)
22
- </div>
23
-
24
- <div id="center" class="column">
25
- <h2>_(Welcome!)</h2>
26
- <p>
27
- This is your homepage of the Runo app.<br />
28
- You can play with <a href="./examples/">the examples</a> before making your first Runo app.
29
- </p>
30
- </div>
31
-
32
- <div id="right" class="column">
33
- </div>
34
-
35
- <div id="footer"></div>
36
- </div>
37
- </body>
38
-
39
- </html>
@@ -1,50 +0,0 @@
1
- $(document).ready(function() {
2
- $('span.error').hover(
3
- function(){
4
- $('.error_message', this).fadeIn(150);
5
- },
6
- function(){
7
- if ($(this).is(':not(.focused)')) $('.error_message', this).fadeOut(50);
8
- }
9
- );
10
-
11
- $(':input', $('span.error')).focus(
12
- function(){
13
- var d = $(this).closest('span.error');
14
- d.addClass('focused');
15
- $('.error_message', d).fadeIn(150);
16
- }
17
- ).blur(
18
- function(){
19
- var d = $(this).closest('span.error');
20
- d.removeClass('focused');
21
- $('.error_message', d).fadeOut(50);
22
- }
23
- ).change(
24
- function(){
25
- var d = $(this).closest('span.error');
26
- d.removeClass('error');
27
- d.removeClass('focused');
28
- $('.error_message', d).hide();
29
- }
30
- );
31
-
32
- $('.error_message').hide().css({
33
- 'color': 'white',
34
- 'background': 'red',
35
- 'opacity': '0.9',
36
- 'position': 'absolute',
37
- 'margin-left': '0',
38
- 'margin-top': '2px',
39
- 'padding': '.3em 1em .3em 1em',
40
- '-moz-border-radius': '.3em',
41
- '-webkit-border-radius': '.3em'
42
- });
43
-
44
- if ($('span.error').length > 0) {
45
- $(':input:enabled:first', $('span.error:first')).focus().select();
46
- }
47
- else {
48
- $(':input:enabled:first').focus().select();
49
- }
50
- });
@@ -1,19 +0,0 @@
1
- # just a test.
2
- # Copyright (C) 2010 Akira FUNAI
3
- # This file is distributed under the same license as the PACKAGE package.
4
- # FIRST AUTHOR Akira FUNAI, 2010.
5
- #
6
-
7
- "Project-Id-Version: 0.01\n"
8
- "POT-Creation-Date: 2010-05-06 15:11+0900\n"
9
- "PO-Revision-Date: 2010-05-06 15:11+0900\n"
10
- "Last-Translator: Akira FUNAI <akira@funai.com>\n"
11
- "Language-Team: none <nobody@example.com>\n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
16
-
17
- #: t.rb:1234
18
- msgid "malformed input."
19
- msgstr "Fehlerhafte Eingabe."
@@ -1,25 +0,0 @@
1
- # just a test.
2
- # Copyright (C) 2010 Akira FUNAI
3
- # This file is distributed under the same license as the PACKAGE package.
4
- # FIRST AUTHOR Akira FUNAI, 2010.
5
- #
6
-
7
- "Project-Id-Version: 0.01\n"
8
- "POT-Creation-Date: 2010-05-06 15:11+0900\n"
9
- "PO-Revision-Date: 2010-05-06 15:11+0900\n"
10
- "Last-Translator: Akira FUNAI <akira@funai.com>\n"
11
- "Language-Team: none <nobody@example.com>\n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "Plural-Forms: nplurals=2; plural=n != 1;\n"
16
-
17
- #: t.rb:1234
18
- msgid "color"
19
- msgstr "colour"
20
-
21
- #: t.rb:2345
22
- msgid "one color"
23
- msgid_plural "%{n} colors"
24
- msgstr[0] "one colour"
25
- msgstr[1] "%{n} colours"
@@ -1,30 +0,0 @@
1
- # just a test.
2
- # Copyright (C) 2010 Akira FUNAI
3
- # This file is distributed under the same license as the PACKAGE package.
4
- # FIRST AUTHOR Akira FUNAI, 2010.
5
- #
6
-
7
- "Project-Id-Version: 0.01\n"
8
- "POT-Creation-Date: 2010-05-06 15:11+0900\n"
9
- "PO-Revision-Date: 2010-05-06 15:11+0900\n"
10
- "Last-Translator: Akira FUNAI <akira@funai.com>\n"
11
- "Language-Team: none <nobody@example.com>\n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "Plural-Forms: nplurals=1; plural=0;\n"
16
-
17
- #: t.rb:1234
18
- msgid "color"
19
- msgstr "色"
20
- # msgstr "mmm"
21
-
22
- #: t.rb:2234
23
- #, fuzzy
24
- msgid "sound"
25
- msgstr "音"
26
-
27
- #: t.rb:2345
28
- msgid "one color"
29
- msgid_plural "%{n} colors"
30
- msgstr[0] "%{n}色"
@@ -1,3 +0,0 @@
1
- ---
2
- _id: test
3
- password: ulrR7VSYJHTs6
@@ -1,13 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <h1>@(label)</h1>
5
- <dl id="main" class="app-blog">
6
- <dt>id: $(_id = meta-id 32 1..32)</dt>
7
- <dd>
8
- password: $(password = password 12)
9
- avatar: $(avatar = img 72*72 0...320000)
10
- </dd>
11
- </dl>
12
- </body>
13
- </html>
@@ -1,7 +0,0 @@
1
- _owner: frank
2
- name: FZ
3
- comment: oops.
4
- replies:
5
- 20091201_0001:
6
- _owner: carl
7
- reply: foo.
@@ -1,5 +0,0 @@
1
- ---
2
- _owner: carl
3
- replies:
4
- 20091208_0001:
5
- reply: wow.
@@ -1,5 +0,0 @@
1
- ---
2
- label: 'Bar Folder'
3
- group:
4
- - carl
5
- - don
@@ -1 +0,0 @@
1
- #moo {}
@@ -1 +0,0 @@
1
- #foo {bar: baz;}
@@ -1,14 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <h1>@(label)</h1>
5
- <ul id="main" class="app-blog">
6
- <li>
7
- $(name = text 32 1..32 :'foo'): $(comment = text 64 1..64 :'bar!')
8
- <ul id="files" class="app-attachment"><li>$(file=text)</li></ul>
9
- <ul id="replies" class="app-blog"><li>$(reply=text)</li></ul>
10
- </li>
11
- </ul>
12
- <ul id="sub" class="app-blog"><li>$(article=text)</li></ul>
13
- </body>
14
- </html>
@@ -1,7 +0,0 @@
1
- ---
2
- label: 'Foo Folder'
3
- admin: frank
4
- group:
5
- - roy
6
- - jim
7
-
@@ -1 +0,0 @@
1
- #foo {bar: baz;}
@@ -1,8 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <h1>@(label)</h1>
5
- <ul id="abc" class="app-blog"><li></li></ul>
6
- <ul id="sub" class="app-blog"><li></li></ul>
7
- </body>
8
- </html>
@@ -1,6 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <p>moo!</p>
5
- </body>
6
- </html>
@@ -1,3 +0,0 @@
1
- ---
2
- _owner: root
3
- article: qux
@@ -1,3 +0,0 @@
1
- ---
2
- label: 'Root'
3
-
@@ -1,13 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <h1>@(label)</h1>
5
- <ul id="main" class="app-blog">
6
- <li title="tArticle, tArticles">
7
- $(comment=text)
8
- <ul id="files" class="app-attachment"><li>$(file=text 1..16)</li></ul>
9
- <ul id="replies" class="app-blog"><li>$(reply=text)</li></ul>
10
- </li>
11
- </ul>
12
- </body>
13
- </html>
@@ -1,6 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <p>thank you!</p>
5
- </body>
6
- </html>
@@ -1,9 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <h1>@(label)</h1>
5
- <ul id="main" class="app-contact">
6
- <li>$(name = text 32 1..32 :'foo'): $(comment = text 64 1..64 :'bar!')</li>
7
- </ul>
8
- </body>
9
- </html>
@@ -1,16 +0,0 @@
1
- <html>
2
- <head><title>@(label)</title></head>
3
- <body>
4
- <h1>@(label)</h1>
5
- <ul id="main" class="app-blog">
6
- <li>
7
- $(_timestamp = meta-timestamp can_edit)
8
- $(foo = file 0..50)
9
- $(bar = file 0..50)
10
- <ul id="baz" class="app-attachment">
11
- $(qux = file 1..50)
12
- </ul>
13
- </li>
14
- </ul>
15
- </body>
16
- </html>