ramaze 0.3.0 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (122) hide show
  1. data/Rakefile +3 -2
  2. data/bin/ramaze +9 -3
  3. data/doc/AUTHORS +6 -2
  4. data/doc/CHANGELOG +272 -66
  5. data/doc/GPL +12 -13
  6. data/doc/README.html +729 -0
  7. data/doc/changes.txt +5757 -0
  8. data/doc/changes.xml +5759 -0
  9. data/doc/meta/announcement.txt +48 -39
  10. data/doc/tutorial/todolist.mkd +10 -12
  11. data/examples/blog/start.rb +1 -0
  12. data/examples/caching.rb +1 -0
  13. data/examples/element.rb +3 -0
  14. data/examples/hello.rb +1 -3
  15. data/examples/identity.rb +5 -8
  16. data/examples/layout.rb +1 -0
  17. data/examples/linking.rb +1 -0
  18. data/examples/memleak_detector.rb +1 -0
  19. data/examples/nitro_form.rb +1 -0
  20. data/examples/rammit/start.rb +1 -0
  21. data/examples/rapaste/Rakefile +7 -0
  22. data/examples/rapaste/{src/controller.rb → controller/paste.rb} +28 -3
  23. data/examples/rapaste/{src/model.rb → model/paste.rb} +0 -4
  24. data/examples/rapaste/public/css/display.css +17 -0
  25. data/examples/rapaste/spec/rapaste.rb +2 -2
  26. data/examples/rapaste/start.rb +9 -4
  27. data/examples/rapaste/{template → view}/copy.xhtml +0 -0
  28. data/examples/rapaste/{template → view}/index.xhtml +0 -0
  29. data/examples/rapaste/{template → view}/layout.xhtml +3 -0
  30. data/examples/rapaste/{template → view}/list.xhtml +4 -3
  31. data/examples/rapaste/view/search.xhtml +41 -0
  32. data/examples/rapaste/{template → view}/view.xhtml +0 -0
  33. data/examples/simple.rb +3 -3
  34. data/examples/templates/template/external.amrita +9 -9
  35. data/examples/templates/template/external.redcloth +19 -0
  36. data/examples/templates/template_amrita2.rb +40 -7
  37. data/examples/templates/template_erubis.rb +3 -3
  38. data/examples/templates/template_ezamar.rb +1 -3
  39. data/examples/templates/template_haml.rb +1 -3
  40. data/examples/templates/template_liquid.rb +3 -3
  41. data/examples/templates/template_markaby.rb +1 -3
  42. data/examples/templates/template_nagoro.rb +1 -3
  43. data/examples/templates/template_redcloth.rb +59 -0
  44. data/examples/templates/template_remarkably.rb +1 -3
  45. data/examples/templates/template_xslt.rb +1 -4
  46. data/examples/todolist/src/controller/main.rb +1 -1
  47. data/examples/todolist/start.rb +1 -2
  48. data/examples/upload/start.rb +19 -0
  49. data/examples/upload/view/index.xhtml +25 -0
  50. data/examples/whywiki/start.rb +1 -3
  51. data/examples/wikore/start.rb +3 -0
  52. data/examples/wiktacular/mkd/newpagename/current.mkd +1 -0
  53. data/examples/wiktacular/mkd/newpagename/current.mkd.bak +1 -0
  54. data/examples/wiktacular/start.rb +1 -0
  55. data/lib/proto/controller/main.rb +0 -3
  56. data/lib/proto/public/js/jquery.js +106 -93
  57. data/lib/proto/spec/main.rb +2 -5
  58. data/lib/proto/start.rb +0 -3
  59. data/lib/ramaze.rb +3 -2
  60. data/lib/ramaze/action.rb +6 -10
  61. data/lib/ramaze/adapter/lsws.rb +19 -0
  62. data/lib/ramaze/contrib/email.rb +84 -0
  63. data/lib/ramaze/contrib/email.rb-darcs-backup0 +81 -0
  64. data/lib/ramaze/contrib/gettext.rb +1 -0
  65. data/lib/ramaze/contrib/gettext/parser.rb +46 -0
  66. data/lib/ramaze/contrib/route.rb +3 -36
  67. data/lib/ramaze/controller.rb +4 -6
  68. data/lib/ramaze/controller/resolve.rb +28 -1
  69. data/lib/ramaze/dispatcher.rb +1 -1
  70. data/lib/ramaze/dispatcher/file.rb +17 -0
  71. data/lib/ramaze/global/globalstruct.rb +7 -4
  72. data/lib/ramaze/helper/auth.rb +1 -1
  73. data/lib/ramaze/helper/identity.rb +25 -15
  74. data/lib/ramaze/helper/link.rb +29 -8
  75. data/lib/ramaze/helper/maruku.rb +7 -0
  76. data/lib/ramaze/helper/partial.rb +25 -10
  77. data/lib/ramaze/route.rb +56 -0
  78. data/lib/ramaze/snippets/metaid.rb +17 -0
  79. data/lib/ramaze/spec/helper.rb +0 -2
  80. data/lib/ramaze/spec/helper/mock_http.rb +6 -0
  81. data/lib/ramaze/spec/helper/pretty_output.rb +5 -1
  82. data/lib/ramaze/store/default.rb +3 -1
  83. data/lib/ramaze/template.rb +1 -1
  84. data/lib/ramaze/template/amrita2.rb +21 -15
  85. data/lib/ramaze/template/bijou.rb +39 -0
  86. data/lib/ramaze/template/builder.rb +28 -0
  87. data/lib/ramaze/template/redcloth.rb +24 -0
  88. data/lib/ramaze/template/sass.rb +3 -1
  89. data/lib/ramaze/tool/create.rb +2 -1
  90. data/lib/ramaze/tool/localize.rb +6 -1
  91. data/lib/ramaze/trinity/request.rb +8 -0
  92. data/lib/ramaze/trinity/session.rb +8 -5
  93. data/lib/ramaze/version.rb +1 -1
  94. data/rake_tasks/gem.rake +0 -1
  95. data/rake_tasks/maintenance.rake +4 -1
  96. data/spec/contrib/route.rb +14 -63
  97. data/spec/examples/linking.rb +2 -2
  98. data/spec/examples/templates/template_redcloth.rb +28 -0
  99. data/spec/ramaze/controller/subclass.rb +21 -0
  100. data/spec/ramaze/dispatcher/file.rb +31 -0
  101. data/spec/ramaze/helper/link.rb +46 -0
  102. data/spec/ramaze/helper/partial.rb +22 -1
  103. data/spec/ramaze/helper/template/locals.xhtml +1 -0
  104. data/spec/ramaze/helper/template/recursive_locals.xhtml +7 -0
  105. data/spec/ramaze/params.rb +8 -0
  106. data/spec/ramaze/request.rb +14 -0
  107. data/spec/ramaze/route.rb +107 -0
  108. data/spec/ramaze/session.rb +4 -2
  109. data/spec/ramaze/template/amrita2.rb +21 -7
  110. data/spec/ramaze/template/amrita2/external.amrita +6 -0
  111. data/spec/ramaze/template/amrita2/sum.amrita +1 -1
  112. data/spec/ramaze/template/bijou.rb +25 -0
  113. data/spec/ramaze/template/builder.rb +55 -0
  114. data/spec/ramaze/template/builder/external.rxml +3 -0
  115. data/spec/ramaze/template/haml.rb +15 -0
  116. data/spec/ramaze/template/haml/locals.haml +1 -0
  117. data/spec/ramaze/template/redcloth.rb +38 -0
  118. data/spec/ramaze/template/redcloth/external.redcloth +1 -0
  119. metadata +472 -442
  120. data/examples/rapaste/rapaste.sqlite +0 -0
  121. data/spec/ramaze/template/amrita2/data.amrita +0 -6
  122. data/spec/ramaze/template/amrita2/index.amrita +0 -1
data/doc/GPL CHANGED
@@ -1,8 +1,8 @@
1
1
  GNU GENERAL PUBLIC LICENSE
2
2
  Version 2, June 1991
3
3
 
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
- 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6
6
  Everyone is permitted to copy and distribute verbatim copies
7
7
  of this license document, but changing it is not allowed.
8
8
 
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
15
15
  General Public License applies to most of the Free Software
16
16
  Foundation's software and to any other program whose authors commit to
17
17
  using it. (Some other Free Software Foundation software is covered by
18
- the GNU Library General Public License instead.) You can apply it to
18
+ the GNU Lesser General Public License instead.) You can apply it to
19
19
  your programs, too.
20
20
 
21
21
  When we speak of free software, we are referring to freedom, not
@@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
55
55
 
56
56
  The precise terms and conditions for copying, distribution and
57
57
  modification follow.
58
-
58
+
59
59
  GNU GENERAL PUBLIC LICENSE
60
60
  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
61
 
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
110
110
  License. (Exception: if the Program itself is interactive but
111
111
  does not normally print such an announcement, your work based on
112
112
  the Program is not required to print an announcement.)
113
-
113
+
114
114
  These requirements apply to the modified work as a whole. If
115
115
  identifiable sections of that work are not derived from the Program,
116
116
  and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
168
168
  access to copy the source code from the same place counts as
169
169
  distribution of the source code, even though third parties are not
170
170
  compelled to copy the source along with the object code.
171
-
171
+
172
172
  4. You may not copy, modify, sublicense, or distribute the Program
173
173
  except as expressly provided under this License. Any attempt
174
174
  otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
225
225
 
226
226
  This section is intended to make thoroughly clear what is believed to
227
227
  be a consequence of the rest of this License.
228
-
228
+
229
229
  8. If the distribution and/or use of the Program is restricted in
230
230
  certain countries either by patents or by copyrighted interfaces, the
231
231
  original copyright holder who places the Program under this License
@@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278
278
  POSSIBILITY OF SUCH DAMAGES.
279
279
 
280
280
  END OF TERMS AND CONDITIONS
281
-
281
+
282
282
  How to Apply These Terms to Your New Programs
283
283
 
284
284
  If you develop a new program, and you want it to be of the greatest
@@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
303
303
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304
304
  GNU General Public License for more details.
305
305
 
306
- You should have received a copy of the GNU General Public License
307
- along with this program; if not, write to the Free Software
308
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
309
-
306
+ You should have received a copy of the GNU General Public License along
307
+ with this program; if not, write to the Free Software Foundation, Inc.,
308
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
310
309
 
311
310
  Also add information on how to contact you by electronic and paper mail.
312
311
 
@@ -336,5 +335,5 @@ necessary. Here is a sample; alter the names:
336
335
  This General Public License does not permit incorporating your program into
337
336
  proprietary programs. If your program is a subroutine library, you may
338
337
  consider it more useful to permit linking proprietary applications with the
339
- library. If this is what you want to do, use the GNU Library General
338
+ library. If this is what you want to do, use the GNU Lesser General
340
339
  Public License instead of this License.
data/doc/README.html ADDED
@@ -0,0 +1,729 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: README</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>README</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>doc/README
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Wed Nov 21 14:52:17 +0900 2007</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <pre>
73
+ Copyright (c) 2006 Michael Fellinger m.fellinger@gmail.com
74
+ All files in this distribution are subject to the terms of the Ruby license.
75
+ </pre>
76
+ <h1>About Ramaze</h1>
77
+ <p>
78
+ Ramaze is a very simple and straight-forward web-framework. The philosophy
79
+ of it could be expressed in a mix of KISS and POLS, trying to make simple
80
+ things simple and complex things possible.
81
+ </p>
82
+ <p>
83
+ This of course is nothing new to anyone who knows some ruby, but is often
84
+ forgotten in a chase for new functionality and features. Ramaze only tries
85
+ to give you the ultimate tools, but you have to use them yourself to
86
+ achieve perfect custom-tailored results.
87
+ </p>
88
+ <p>
89
+ Another one of the goals during development of Ramaze was to make every
90
+ part as modular and therefor reuasable as possible, not only to provide a
91
+ basic understanding after the first glance, but also to make it as simple
92
+ as possible to reuse parts of the code.
93
+ </p>
94
+ <p>
95
+ The original purpose of Ramaze was to act as a kind of framework to build
96
+ web-frameworks, this was made obsolete by the introduction of rack, which
97
+ provides this feature at a better level without trying to enforce any
98
+ structural layout of the resulting framework.
99
+ </p>
100
+ <h1>Features Overview</h1>
101
+ <p>
102
+ Ramaze offers following features at the moment:
103
+ </p>
104
+ <ul>
105
+ <li>Adapters
106
+
107
+ <pre>
108
+ Ramaze takes advantage of the rack library to provide a common way of
109
+ handling different ways to serve its content.
110
+
111
+ Rack supports at the moment:
112
+
113
+ * [Mongrel](http://mongrel.rubyforge.org/)
114
+
115
+ Mongrel is a fast HTTP library and server for Ruby that is intended for
116
+ hosting Ruby web applications of any kind using plain HTTP rather than
117
+ FastCGI or SCGI.
118
+
119
+ * [WEBrick](http://www.webrick.org/)
120
+
121
+ WEBrick is a Ruby library program to build HTTP servers.
122
+
123
+ * CGI
124
+
125
+ CGI is the Common Gateway Interface and is one of the most basic ways
126
+ to integrate into Webservers like Apache or Lighttpd.
127
+
128
+ * FCGI
129
+
130
+ Improvment of CGI as it doesn't start up a new connection to Ramaze on
131
+ every request.
132
+ </pre>
133
+ </li>
134
+ <li>Templates
135
+
136
+ <ul>
137
+ <li>[Amrita2](<a
138
+ href="http://amrita2.rubyforge.org">amrita2.rubyforge.org</a>/)
139
+
140
+ <p>
141
+ Amrita2 is a xml/xhtml template library for Ruby. It makes html documents
142
+ from a template and a model data.
143
+ </p>
144
+ </li>
145
+ <li>[Erubis](<a
146
+ href="http://rubyforge.org/projects/erubis">rubyforge.org/projects/erubis</a>)
147
+
148
+ <p>
149
+ Erubis is a fast, secure, and very extensible implementation of eRuby.
150
+ </p>
151
+ </li>
152
+ <li>[Haml](<a href="http://haml.hamptoncatlin.com">haml.hamptoncatlin.com</a>/)
153
+
154
+ <p>
155
+ Haml takes your gross, ugly templates and replaces them with veritable
156
+ Haiku.
157
+ </p>
158
+ </li>
159
+ <li>[Liquid](<a
160
+ href="http://home.leetsoft.com/liquid">home.leetsoft.com/liquid</a>)
161
+
162
+ <p>
163
+ Liquid&#8216;s syntax and parse model are inspired by Django templates, as
164
+ well as PHP&#8216;s smarty.
165
+ </p>
166
+ </li>
167
+ <li>[Remarkably](<a
168
+ href="http://rubyforge.org/projects/remarkably">rubyforge.org/projects/remarkably</a>)
169
+
170
+ <p>
171
+ Remarkably is a very tiny Markaby-like XML builder
172
+ </p>
173
+ </li>
174
+ <li>[Markaby](<a
175
+ href="http://code.whytheluckystiff.net/markaby">code.whytheluckystiff.net/markaby</a>/)
176
+
177
+ <p>
178
+ Markaby means Markup as Ruby.
179
+ </p>
180
+ </li>
181
+ <li>[Sass](<a
182
+ href="http://haml.hamptoncatlin.com/docs/sass">haml.hamptoncatlin.com/docs/sass</a>)
183
+
184
+ <p>
185
+ Sass is a meta-language on top of CSS that‘s used to describe the style
186
+ of a document cleanly and structurally, with more power than flat CSS
187
+ allows.
188
+ </p>
189
+ </li>
190
+ <li>Ezamar
191
+
192
+ <p>
193
+ A simple homage to [Nitro](<a
194
+ href="http://nitroproject.org)s">nitroproject.org)s</a> templating, is
195
+ shipped together with Ramaze.
196
+ </p>
197
+ </li>
198
+ </ul>
199
+ </li>
200
+ <li>Cache
201
+
202
+ <ul>
203
+ <li>Hash
204
+
205
+ </li>
206
+ <li>YAML::Store
207
+
208
+ </li>
209
+ <li>MemCache
210
+
211
+ </li>
212
+ </ul>
213
+ </li>
214
+ <li>Helper
215
+
216
+ <ul>
217
+ <li>Active by default
218
+
219
+ <ul>
220
+ <li>CGI
221
+
222
+ <p>
223
+ Shortcuts for escape/unescape of the CGI module.
224
+ </p>
225
+ </li>
226
+ <li>File
227
+
228
+ <p>
229
+ Helps you serving files from your Controller.
230
+ </p>
231
+ </li>
232
+ <li>Flash
233
+
234
+ <p>
235
+ Store a couple of values for one request associated with a session.
236
+ </p>
237
+ </li>
238
+ <li>Link
239
+
240
+ <p>
241
+ Easier linking to the various parts of your applications Controllers and
242
+ Actions.
243
+ </p>
244
+ </li>
245
+ <li>Redirect
246
+
247
+ <p>
248
+ Easy redirection.
249
+ </p>
250
+ </li>
251
+ </ul>
252
+ </li>
253
+ <li>Optional
254
+
255
+ <ul>
256
+ <li>Aspect
257
+
258
+ <p>
259
+ Allows you to wrap different Actions on your Controller with code.
260
+ </p>
261
+ </li>
262
+ <li>Auth
263
+
264
+ <p>
265
+ Simple way to add basic authentication.
266
+ </p>
267
+ </li>
268
+ <li>Cache
269
+
270
+ <p>
271
+ Easy caching Actions and values.
272
+ </p>
273
+ </li>
274
+ <li>Identity
275
+
276
+ <p>
277
+ For ease of use of the OpenID authentication mechanism.
278
+ </p>
279
+ </li>
280
+ <li>Inform
281
+
282
+ <p>
283
+ Wrapping the functionality of Ramazes logging facilities.
284
+ </p>
285
+ </li>
286
+ <li>Markaby
287
+
288
+ <p>
289
+ Allows you to use Markaby in your Controller without having it as the
290
+ default templating engine.
291
+ </p>
292
+ </li>
293
+ <li>Nitroform
294
+
295
+ <p>
296
+ Hooks up on nitros form builder to help you creating forms from Og objects.
297
+ </p>
298
+ </li>
299
+ <li>OpenID
300
+
301
+ <p>
302
+ Authentication via OpenID made easy.
303
+ </p>
304
+ </li>
305
+ <li>Pager
306
+
307
+ <p>
308
+ Displays a collection of entitities in multiple pages.
309
+ </p>
310
+ </li>
311
+ <li>Partial
312
+
313
+ <p>
314
+ Renders so-called partials.
315
+ </p>
316
+ </li>
317
+ <li>Stack
318
+
319
+ <p>
320
+ Allows you to use a call/answer mechanism for things like redirection to
321
+ the site a user entered login-forms from.
322
+ </p>
323
+ </li>
324
+ </ul>
325
+ </li>
326
+ </ul>
327
+ </li>
328
+ <li>Various
329
+
330
+ <ul>
331
+ <li>Sessions
332
+
333
+ </li>
334
+ <li>Global configuration system
335
+
336
+ </li>
337
+ <li>Simple request/response handling
338
+
339
+ </li>
340
+ <li>Custom sophisticated Error-handling
341
+
342
+ </li>
343
+ </ul>
344
+ </li>
345
+ </ul>
346
+ <h1>Basic Principles</h1>
347
+ <p>
348
+ There are some basic principles that Ramaze tries to follow:
349
+ </p>
350
+ <ul>
351
+ <li>KISS (Keep It Super Simple)
352
+
353
+ <p>
354
+ Ramaze doesn&#8216;t introduce any major change of paradigm for everyone
355
+ familiar with Ruby and the basics of Web-development.
356
+ </p>
357
+ </li>
358
+ <li>POLS (Principle Of Least Surprise)
359
+
360
+ <p>
361
+ Ramaze tries to be intuitive and easy to learn. Most functionality is built
362
+ in a way to help, not to obfuscate or confuse.
363
+ </p>
364
+ </li>
365
+ <li>Modular design
366
+
367
+ <p>
368
+ Use what you want and how you want it.
369
+ </p>
370
+ <p>
371
+ Through Ruby Ramaze provides one of the most powerful programming-languages
372
+ available, giving you full control over your system.
373
+ </p>
374
+ <p>
375
+ Even the most essential parts of Ramaze can easily be replaced and/or
376
+ modified without losing the advantage of the whole framework.
377
+ </p>
378
+ </li>
379
+ <li>Minimal dependencies
380
+
381
+ <p>
382
+ Nothing besides Ruby is required for the basic features.
383
+ </p>
384
+ <p>
385
+ Of course you can take advantage of several wonderful libraries, but Ramaze
386
+ is built in a way to be run on any basic setup.
387
+ </p>
388
+ </li>
389
+ <li>Documentation
390
+
391
+ <p>
392
+ Document everything, classes, modules, methods, configuration&#8230;
393
+ </p>
394
+ <p>
395
+ Through 100% documentation Ramaze gives the developer easy and solid
396
+ understanding of the underlying concepts and functionality.
397
+ </p>
398
+ </li>
399
+ <li>Open development
400
+
401
+ <p>
402
+ Everyone is welcome to contribute to Ramaze in the easiest way possible.
403
+ The repository is open for patches passing the Test-suite.
404
+ </p>
405
+ </li>
406
+ <li>Examples
407
+
408
+ <p>
409
+ Everyone learns different, some only read the source, others browse
410
+ documentation, but everyone loves examples for a quick and painless start.
411
+ </p>
412
+ <p>
413
+ Ramaze addresses this need and offers a wide variety of examples of usage,
414
+ basic functionality, project-layout and more advanced applications.
415
+ </p>
416
+ </li>
417
+ <li>Fully BDD (Behaviour Driven Design)
418
+
419
+ <p>
420
+ Ramaze has a very complete set of so-called specifications built by RSpec.
421
+ These specs define the way Ramaze has to behave.
422
+ </p>
423
+ <p>
424
+ The specs are checked every time a new patch is pushed into the repository,
425
+ deciding whether the changes the patch applies are valid and don&#8216;t
426
+ break the framework.
427
+ </p>
428
+ </li>
429
+ </ul>
430
+ <h1>Installation</h1>
431
+ <ul>
432
+ <li>via RubyGems
433
+
434
+ <p>
435
+ The simplest way of installing Ramaze is via
436
+ </p>
437
+ <pre>
438
+ $ gem install ramaze
439
+ </pre>
440
+ <p>
441
+ in case you have RubyGems installed.
442
+ </p>
443
+ </li>
444
+ <li>via darcs
445
+
446
+ <p>
447
+ To get the latest and sweetest, you can just pull from the repository and
448
+ run Ramaze that way.
449
+ </p>
450
+ <pre>
451
+ $ darcs get --partial http://darcs.ramaze.net/ramaze
452
+ </pre>
453
+ <p>
454
+ Please read the man page or `darcs help` for more information about
455
+ updating and creating your own patches. This is at the moment the premier
456
+ way to use Ramaze, since it is the way I use it.
457
+ </p>
458
+ <p>
459
+ Some hints for the usage of Darcs.
460
+ </p>
461
+ <ul>
462
+ <li>use require &#8216;ramaze&#8217; from everywhere
463
+
464
+ <p>
465
+ add a file to your site_ruby named &#8216;ramaze.rb&#8217; the content
466
+ should be: &quot;require
467
+ &#8217;/path/to/darcs/repo/ramaze/lib/ramaze&#8217;&quot;
468
+ </p>
469
+ </li>
470
+ <li>get the latest version (from inside the ramaze-directory)
471
+
472
+ <p>
473
+ $ darcs pull
474
+ </p>
475
+ </li>
476
+ <li>record a patch
477
+
478
+ <p>
479
+ $ darcs record
480
+ </p>
481
+ </li>
482
+ <li>output your patches into a bundle ready to be mailed (compress it before
483
+ sending to make sure it arrives in the way you sent it)
484
+
485
+ <p>
486
+ $ darcs send -o ramaze_bundle $ gzip -c ramaze_bundle &gt; ramaze_bundle.gz
487
+ </p>
488
+ </li>
489
+ </ul>
490
+ </li>
491
+ <li>via install.rb
492
+
493
+ <p>
494
+ Support for install.rb has been canceled and the file removed.
495
+ </p>
496
+ </li>
497
+ </ul>
498
+ <h1>Getting Started</h1>
499
+ <p>
500
+ Now that you have a vague idea of what you&#8216;re about to get into you
501
+ might just want to get a way to get up and running ASAP. Please read below
502
+ for more information about installation.
503
+ </p>
504
+ <p>
505
+ Depending on what you are planning to do you can either just go and start
506
+ reading the source or directly get some hands-on experience by trying some
507
+ of the examples. Most things will require dependencies though. The basic
508
+ functionality is provided by the WEBrick adapter and the Template::Ramaze,
509
+ which just run out of the box. For more features you will have to install
510
+ some templating-engines and mongrel (<em>very</em> recommended). Ramaze
511
+ will inform you when it needs further dependencies, so just go and try some
512
+ things.
513
+ </p>
514
+ <p>
515
+ Some places to get started are:
516
+ </p>
517
+ <ul>
518
+ <li>Read the documentation.
519
+
520
+ </li>
521
+ <li>Run and read the test cases.
522
+
523
+ </li>
524
+ <li>Look at the examples and run/modify them.
525
+
526
+ </li>
527
+ </ul>
528
+ <h1>A couple of Examples</h1>
529
+ <p>
530
+ There are some examples for your instant pleasure inside the
531
+ examples-directory in the Ramaze-distribution. To start up an example, you
532
+ can use the Ramaze binary located in bin/ramaze for example:
533
+ </p>
534
+ <pre>
535
+ $ ramaze examples/hello.rb
536
+ </pre>
537
+ <p>
538
+ Or:
539
+ </p>
540
+ <pre>
541
+ $ cd examples/blog
542
+ $ ramaze
543
+ </pre>
544
+ <p>
545
+ Since ramaze uses the start.rb by default if you don&#8216;t pass anything
546
+ else.
547
+ </p>
548
+ <p>
549
+ For more information about the usage of ramaze try:
550
+ </p>
551
+ <pre>
552
+ $ ramaze --help
553
+ </pre>
554
+ <p>
555
+ Examples include:
556
+ </p>
557
+ <ul>
558
+ <li>examples/hello.rb Hello, World!
559
+
560
+ </li>
561
+ <li>examples/simple.rb A bit more advanced than the hello-example, but still
562
+ very basic.
563
+
564
+ </li>
565
+ <li>examples/blog Not yet fully functional, but coming along.
566
+
567
+ </li>
568
+ <li>examples/whywiki A basic examples of a minimalistic application, based on
569
+ the Wiki of _why in his camping-framework.
570
+
571
+ </li>
572
+ <li>examples/templates examples of real usage of the templating-engines. Tries
573
+ to implement the same functionality in each template_*.rb file using a
574
+ different engine.
575
+
576
+ </li>
577
+ </ul>
578
+ <h1>How to find Help</h1>
579
+ <p>
580
+ For help you can:
581
+ </p>
582
+ <ul>
583
+ <li>Visit us in the channel ramaze on irc.freenode.net
584
+
585
+ </li>
586
+ <li>Join the Mailinglist at <a
587
+ href="http://ramaze.rubyforge.org">ramaze.rubyforge.org</a>
588
+
589
+ </li>
590
+ </ul>
591
+ <h1>Appendix</h1>
592
+ <ul>
593
+ <li>Performance
594
+
595
+ <ul>
596
+ <li>Serving
597
+
598
+ <p>
599
+ For best performance you should consider using Mongrel to host your
600
+ application.
601
+ </p>
602
+ </li>
603
+ <li>Caching
604
+
605
+ <p>
606
+ You can easily cache your pages using the CacheHelper. Also, using MemCache
607
+ gives you high-end performance and security.
608
+ </p>
609
+ </li>
610
+ </ul>
611
+ </li>
612
+ </ul>
613
+ <h1>And thanks to&#8230;</h1>
614
+ <p>
615
+ There is a large number of people who made Ramaze possibe by their ongoing
616
+ efforts in the world of open source and by encouraging and helping me.
617
+ </p>
618
+ <p>
619
+ This list is by no means a full listing of all these people, but I try to
620
+ get a good coverage despite that.
621
+ </p>
622
+ <p>
623
+ I would like to thank:
624
+ </p>
625
+ <ul>
626
+ <li>Yukihiro Matsumoto a.k.a matz
627
+
628
+ <pre>
629
+ For giving the world Ruby and bringing fun back into programming.
630
+ </pre>
631
+ </li>
632
+ <li>Zed Shawn a.k.a. zedas
633
+
634
+ <pre>
635
+ For developing Mongrel, Ramaze started out as a simple Hello World based
636
+ on that awesome server.
637
+ </pre>
638
+ </li>
639
+ <li>Christian Neukirchen a.k.a chris2
640
+
641
+ <pre>
642
+ For building rack, which is just what the numerous web-developers had
643
+ anticipated and which will, with no doubt, change the world.
644
+ </pre>
645
+ </li>
646
+ <li>Pistos
647
+
648
+ <pre>
649
+ For continious encouragment and building the first real webpage on Ramaze.
650
+ His bugreports were invaluable.
651
+ </pre>
652
+ </li>
653
+ <li>Jim Weirich
654
+
655
+ <pre>
656
+ For Rake, which lifts off a lot of tasks from the shoulders of every
657
+ developer who uses it.
658
+ </pre>
659
+ </li>
660
+ <li>Thomas Sawyer a.k.a Trans
661
+
662
+ <pre>
663
+ Dragging me deep into the rabbit-hole and showing me how awesome Ruby
664
+ truely is through his work on facets, ratchets and tons of other projects.
665
+ </pre>
666
+ </li>
667
+ <li>George Moschovitis a.k.a gmosx
668
+
669
+ <pre>
670
+ For his tremendous efforts in the Nitro/Og framework, which is a source of
671
+ steady inspiration for Ramaze and brought me to Ruby in the first place.
672
+ </pre>
673
+ </li>
674
+ <li>Rob Levin a.k.a. lilo
675
+
676
+ <pre>
677
+ He founded the most excellent Freenode IRC-network, where the most important
678
+ channels for rubyists are located (as is #ramaze).
679
+ May he rest in peace.
680
+ </pre>
681
+ </li>
682
+ <li>The guys (and gals) in the various channels on Freenode
683
+
684
+ <pre>
685
+ As the people are way too many to be listed, here the channels that i call
686
+ my online home.
687
+ All the people in there deserve special thanks for getting me hooked to Ruby
688
+ and providing their help in a friendly and patient manner.
689
+
690
+ * #nitro
691
+ * #ruby-de
692
+ * #ruby-lang
693
+ * #rubyforce
694
+ </pre>
695
+ </li>
696
+ </ul>
697
+
698
+ </div>
699
+
700
+
701
+ </div>
702
+
703
+
704
+ </div>
705
+
706
+
707
+ <!-- if includes -->
708
+
709
+ <div id="section">
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+ <!-- if method_list -->
719
+
720
+
721
+ </div>
722
+
723
+
724
+ <div id="validator-badges">
725
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
726
+ </div>
727
+
728
+ </body>
729
+ </html>