ramaze 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. data/bin/ramaze +58 -26
  2. data/doc/AUTHORS +2 -0
  3. data/doc/CHANGELOG +401 -0
  4. data/doc/README +14 -9
  5. data/doc/README.html +737 -0
  6. data/doc/TODO +14 -14
  7. data/doc/changes.txt +401 -0
  8. data/doc/changes.xml +401 -0
  9. data/doc/meta/announcement.txt +28 -15
  10. data/doc/meta/configuration.txt +3 -3
  11. data/doc/meta/internals.txt +2 -2
  12. data/doc/meta/users.kml +62 -0
  13. data/doc/readme_chunks/examples.txt +1 -1
  14. data/doc/readme_chunks/features.txt +13 -8
  15. data/doc/tutorial/todolist.html +2 -2
  16. data/doc/tutorial/todolist.mkd +2 -2
  17. data/examples/blog/README +3 -0
  18. data/examples/blog/spec/blog.rb +101 -0
  19. data/examples/blog/{main.rb → start.rb} +0 -0
  20. data/examples/caching.rb +16 -5
  21. data/examples/layout.rb +41 -0
  22. data/examples/templates/template_amrita2.rb +1 -1
  23. data/examples/templates/template_erubis.rb +1 -1
  24. data/examples/templates/template_ezamar.rb +1 -1
  25. data/examples/templates/template_haml.rb +1 -1
  26. data/examples/templates/template_liquid.rb +1 -1
  27. data/examples/templates/template_markaby.rb +1 -1
  28. data/examples/templates/template_remarkably.rb +1 -1
  29. data/examples/todolist/README +1 -0
  30. data/{spec/examples → examples/todolist/spec}/todolist.rb +3 -3
  31. data/examples/todolist/{main.rb → start.rb} +0 -0
  32. data/examples/whywiki/{main.rb → start.rb} +0 -0
  33. data/examples/wiktacular/README +2 -0
  34. data/examples/wiktacular/spec/wiktacular.rb +146 -0
  35. data/examples/wiktacular/src/controller.rb +11 -0
  36. data/examples/wiktacular/src/model.rb +5 -1
  37. data/examples/wiktacular/{main.rb → start.rb} +0 -1
  38. data/examples/wiktacular/template/edit.xhtml +1 -2
  39. data/examples/wiktacular/template/html_layout.xhtml +27 -0
  40. data/examples/wiktacular/template/index.xhtml +8 -10
  41. data/examples/wiktacular/template/new.xhtml +1 -2
  42. data/lib/proto/{main.rb → start.rb} +0 -0
  43. data/lib/proto/template/index.xhtml +1 -1
  44. data/lib/ramaze/action/render.rb +58 -4
  45. data/lib/ramaze/action.rb +20 -0
  46. data/lib/ramaze/adapter/cgi.rb +7 -4
  47. data/lib/ramaze/adapter/fcgi.rb +6 -4
  48. data/lib/ramaze/adapter/mongrel.rb +4 -0
  49. data/lib/ramaze/adapter/webrick.rb +20 -9
  50. data/lib/ramaze/adapter.rb +3 -1
  51. data/lib/ramaze/cache/memcached.rb +2 -26
  52. data/lib/ramaze/cache.rb +8 -4
  53. data/lib/ramaze/controller/resolve.rb +26 -8
  54. data/lib/ramaze/controller.rb +44 -7
  55. data/lib/ramaze/dispatcher/action.rb +5 -1
  56. data/lib/ramaze/dispatcher/directory.rb +115 -0
  57. data/lib/ramaze/dispatcher/error.rb +19 -5
  58. data/lib/ramaze/dispatcher/file.rb +2 -2
  59. data/lib/ramaze/dispatcher.rb +52 -39
  60. data/lib/ramaze/global/dsl.rb +3 -2
  61. data/lib/ramaze/global/globalstruct.rb +26 -4
  62. data/lib/ramaze/global.rb +20 -11
  63. data/lib/ramaze/helper/aspect.rb +29 -11
  64. data/lib/ramaze/helper/auth.rb +2 -2
  65. data/lib/ramaze/helper/cache.rb +2 -0
  66. data/lib/ramaze/helper/identity.rb +21 -6
  67. data/lib/ramaze/helper/link.rb +1 -1
  68. data/lib/ramaze/helper/pager.rb +158 -100
  69. data/lib/ramaze/helper/partial.rb +22 -0
  70. data/lib/ramaze/helper/redirect.rb +1 -2
  71. data/lib/ramaze/helper/stack.rb +1 -1
  72. data/lib/ramaze/inform/informer.rb +20 -0
  73. data/lib/ramaze/inform/syslog.rb +5 -0
  74. data/lib/ramaze/snippets/kernel/__dir__.rb +21 -0
  75. data/lib/ramaze/snippets/kernel/aquire.rb +22 -12
  76. data/lib/ramaze/snippets/numeric/human_readable_filesize_format.rb +33 -0
  77. data/lib/ramaze/snippets/ramaze/caller_lines.rb +1 -1
  78. data/lib/ramaze/snippets/struct/values_at.rb +11 -4
  79. data/lib/ramaze/sourcereload.rb +29 -1
  80. data/{spec → lib/ramaze/spec}/helper/context.rb +0 -0
  81. data/{spec → lib/ramaze/spec}/helper/layout.rb +1 -1
  82. data/{spec → lib/ramaze/spec}/helper/minimal.rb +0 -0
  83. data/{spec → lib/ramaze/spec}/helper/mock_http.rb +0 -0
  84. data/{spec → lib/ramaze/spec}/helper/requester.rb +0 -0
  85. data/{spec → lib/ramaze/spec}/helper/simple_http.rb +0 -0
  86. data/{spec → lib/ramaze/spec}/helper/wrap.rb +0 -0
  87. data/lib/ramaze/spec/helper.rb +60 -0
  88. data/lib/ramaze/store/default.rb +3 -0
  89. data/lib/ramaze/template/ezamar/render_partial.rb +3 -0
  90. data/lib/ramaze/template/sass.rb +45 -0
  91. data/lib/ramaze/template.rb +1 -1
  92. data/lib/ramaze/tool/create.rb +5 -5
  93. data/lib/ramaze/tool/localize.rb +26 -5
  94. data/lib/ramaze/tool/mime.rb +7 -0
  95. data/lib/ramaze/trinity/response.rb +15 -0
  96. data/lib/ramaze/trinity/session.rb +1 -1
  97. data/lib/ramaze/version.rb +1 -1
  98. data/lib/ramaze.rb +5 -0
  99. data/rake_tasks/conf.rake +4 -4
  100. data/rake_tasks/maintaince.rake +12 -7
  101. data/rake_tasks/spec.rake +7 -4
  102. data/spec/examples/caching.rb +6 -8
  103. data/spec/helper.rb +3 -60
  104. data/spec/ramaze/action/basics.rb +17 -0
  105. data/spec/ramaze/action/cache.rb +28 -0
  106. data/spec/ramaze/action/layout.rb +110 -0
  107. data/spec/ramaze/action/render.rb +14 -0
  108. data/spec/ramaze/action/template/bar.xhtml +1 -0
  109. data/spec/ramaze/action/template/other_wrapper.xhtml +1 -0
  110. data/spec/ramaze/action/template/single_wrapper.xhtml +1 -0
  111. data/spec/ramaze/controller/template/edit/content.xhtml +1 -0
  112. data/spec/ramaze/controller/template/edit.xhtml +1 -0
  113. data/spec/ramaze/controller/template_resolving.rb +2 -2
  114. data/spec/ramaze/dispatcher/directory.rb +53 -0
  115. data/spec/ramaze/dispatcher/file.rb +0 -3
  116. data/spec/ramaze/error.rb +17 -2
  117. data/spec/ramaze/helper/aspect.rb +14 -20
  118. data/spec/ramaze/helper/pager.rb +83 -1
  119. data/spec/ramaze/helper/partial.rb +1 -1
  120. data/spec/ramaze/helper/template/test_template.xhtml +1 -0
  121. data/spec/ramaze/inform/informer.rb +37 -5
  122. data/spec/ramaze/localize.rb +1 -1
  123. data/spec/ramaze/template/haml.rb +5 -5
  124. data/spec/ramaze/template/sass/file.css.sass +5 -0
  125. data/spec/ramaze/template/sass.rb +46 -0
  126. data/spec/ramaze/template.rb +1 -1
  127. data/spec/ramaze/trinity/session.rb +27 -0
  128. data/spec/snippets/kernel/__dir__.rb +8 -0
  129. data/spec/snippets/kernel/aquire.rb +71 -0
  130. data/spec/snippets/kernel/constant.rb +27 -0
  131. data/spec/snippets/numeric/human_readable_filesize_format.rb +11 -0
  132. data/spec/snippets/ramaze/caller_info.rb +39 -0
  133. data/spec/snippets/ramaze/caller_lines.rb +27 -0
  134. data/spec/snippets/string/DIVIDE.rb +18 -0
  135. data/spec/snippets/string/camel_case.rb +25 -0
  136. data/spec/snippets/string/color.rb +11 -0
  137. data/spec/snippets/string/snake_case.rb +17 -0
  138. data/spec/snippets/struct/fill.rb +27 -0
  139. data/spec/snippets/struct/values_at.rb +39 -0
  140. metadata +71 -31
  141. data/examples/todolist/todolist.db +0 -5
  142. data/examples/wiktacular/src/page.rb +0 -66
  143. data/lib/ramaze/helper/feed.rb +0 -135
  144. data/lib/ramaze/helper/form.rb +0 -204
  145. data/lib/ramaze/snippets/openstruct/temp.rb +0 -13
  146. data/lib/ramaze/store/yaml.rb +0 -170
  147. data/spec/ramaze/helper/feed.rb +0 -127
  148. data/spec/ramaze/helper/form.rb +0 -146
  149. data/spec/ramaze/store/yaml.rb +0 -76
data/doc/README CHANGED
@@ -82,6 +82,11 @@ Ramaze offers following features at the moment:
82
82
 
83
83
  Markaby means Markup as Ruby.
84
84
 
85
+ * [Sass](http://haml.hamptoncatlin.com/docs/sass)
86
+
87
+ Sass is a meta-language on top of CSS that‘s used to describe the style of
88
+ a document cleanly and structurally, with more power than flat CSS allows.
89
+
85
90
  * Ezamar
86
91
 
87
92
  A simple homage to [Nitro](http://nitroproject.org)s templating, is shipped
@@ -128,14 +133,6 @@ Ramaze offers following features at the moment:
128
133
 
129
134
  Easy caching Actions and values.
130
135
 
131
- * Feed
132
-
133
- Programmatically generate feeds from any Class.
134
-
135
- * Form
136
-
137
- In development, help appreciated.
138
-
139
136
  * Identity
140
137
 
141
138
  For ease of use of the OpenID authentication mechanism.
@@ -158,6 +155,14 @@ Ramaze offers following features at the moment:
158
155
 
159
156
  Authentication via OpenID made easy.
160
157
 
158
+ * Pager
159
+
160
+ Displays a collection of entitities in multiple pages.
161
+
162
+ * Partial
163
+
164
+ Renders so-called partials.
165
+
161
166
  * Stack
162
167
 
163
168
  Allows you to use a call/answer mechanism for things like redirection to the
@@ -316,7 +321,7 @@ Or:
316
321
  $ cd examples/blog
317
322
  $ ramaze
318
323
 
319
- Since ramaze uses the main.rb by default if you don't pass anything else.
324
+ Since ramaze uses the start.rb by default if you don't pass anything else.
320
325
 
321
326
  For more information about the usage of ramaze try:
322
327
 
data/doc/README.html ADDED
@@ -0,0 +1,737 @@
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>Thu Sep 06 22:02:25 +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, Lighttpd or Nginx.
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://manveru.mine.nu/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>Nicer Error-pages
594
+
595
+ <ul>
596
+ <li>Install coderay (it&#8216;s a gem)
597
+
598
+ </li>
599
+ </ul>
600
+ </li>
601
+ <li>Performance
602
+
603
+ <ul>
604
+ <li>Serving
605
+
606
+ <p>
607
+ For best performance you should consider using Mongrel to host your
608
+ application.
609
+ </p>
610
+ </li>
611
+ <li>Caching
612
+
613
+ <p>
614
+ You can easily cache your pages using the CacheHelper. Also, using MemCache
615
+ gives you high-end performance and security.
616
+ </p>
617
+ </li>
618
+ </ul>
619
+ </li>
620
+ </ul>
621
+ <h1>And thanks to&#8230;</h1>
622
+ <p>
623
+ There is a large number of people who made Ramaze possibe by their ongoing
624
+ efforts in the world of open source and by encouraging and helping me.
625
+ </p>
626
+ <p>
627
+ This list is by no means a full listing of all these people, but I try to
628
+ get a good coverage despite that.
629
+ </p>
630
+ <p>
631
+ I would like to thank:
632
+ </p>
633
+ <ul>
634
+ <li>Yukihiro Matsumoto a.k.a matz
635
+
636
+ <pre>
637
+ For giving the world Ruby and bringing fun back into programming.
638
+ </pre>
639
+ </li>
640
+ <li>Zed Shawn a.k.a. zedas
641
+
642
+ <pre>
643
+ For developing Mongrel, Ramaze started out as a simple Hello World based
644
+ on that awesome server.
645
+ </pre>
646
+ </li>
647
+ <li>Christian Neukirchen a.k.a chris2
648
+
649
+ <pre>
650
+ For building rack, which is just what the numerous web-developers had
651
+ anticipated and which will, with no doubt, change the world.
652
+ </pre>
653
+ </li>
654
+ <li>Pistos
655
+
656
+ <pre>
657
+ For continious encouragment and building the first real webpage on Ramaze.
658
+ His bugreports were invaluable.
659
+ </pre>
660
+ </li>
661
+ <li>Jim Weirich
662
+
663
+ <pre>
664
+ For Rake, which lifts off a lot of tasks from the shoulders of every
665
+ developer who uses it.
666
+ </pre>
667
+ </li>
668
+ <li>Thomas Sawyer a.k.a Trans
669
+
670
+ <pre>
671
+ Dragging me deep into the rabbit-hole and showing me how awesome Ruby
672
+ truely is through his work on facets, ratchets and tons of other projects.
673
+ </pre>
674
+ </li>
675
+ <li>George Moschovitis a.k.a gmosx
676
+
677
+ <pre>
678
+ For his tremendous efforts in the Nitro/Og framework, which is a source of
679
+ steady inspiration for Ramaze and brought me to Ruby in the first place.
680
+ </pre>
681
+ </li>
682
+ <li>Rob Levin a.k.a. lilo
683
+
684
+ <pre>
685
+ He founded the most excellent Freenode IRC-network, where the most important
686
+ channels for rubyists are located (as is #ramaze).
687
+ May he rest in peace.
688
+ </pre>
689
+ </li>
690
+ <li>The guys (and gals) in the various channels on Freenode
691
+
692
+ <pre>
693
+ As the people are way too many to be listed, here the channels that i call
694
+ my online home.
695
+ All the people in there deserve special thanks for getting me hooked to Ruby
696
+ and providing their help in a friendly and patient manner.
697
+
698
+ * #nitro
699
+ * #ruby-de
700
+ * #ruby-lang
701
+ * #rubyforce
702
+ </pre>
703
+ </li>
704
+ </ul>
705
+
706
+ </div>
707
+
708
+
709
+ </div>
710
+
711
+
712
+ </div>
713
+
714
+
715
+ <!-- if includes -->
716
+
717
+ <div id="section">
718
+
719
+
720
+
721
+
722
+
723
+
724
+
725
+
726
+ <!-- if method_list -->
727
+
728
+
729
+ </div>
730
+
731
+
732
+ <div id="validator-badges">
733
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
734
+ </div>
735
+
736
+ </body>
737
+ </html>