ramaze 0.3.5 → 0.3.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (204) hide show
  1. data/Rakefile +5 -20
  2. data/bin/ramaze +0 -4
  3. data/doc/AUTHORS +5 -0
  4. data/doc/meta/announcement.txt +2 -1
  5. data/doc/tutorial/todolist.html +20 -21
  6. data/doc/tutorial/todolist.mkd +10 -9
  7. data/examples/blog/{src/controller.rb → controller/main.rb} +2 -0
  8. data/examples/blog/{src/model.rb → model/entry.rb} +0 -0
  9. data/examples/blog/spec/blog.rb +3 -3
  10. data/examples/blog/start.rb +2 -3
  11. data/examples/blog/view/edit.xhtml +17 -0
  12. data/examples/blog/view/index.xhtml +17 -0
  13. data/examples/blog/view/layout.xhtml +11 -0
  14. data/examples/blog/view/new.xhtml +16 -0
  15. data/examples/facebook.rb +15 -8
  16. data/examples/identity.rb +1 -1
  17. data/examples/memleak_detector.rb +1 -1
  18. data/examples/rammit/src/model.rb +1 -1
  19. data/examples/rapaste/controller/paste.rb +7 -7
  20. data/examples/rapaste/model/paste.rb +1 -3
  21. data/examples/rapaste/public/css/display.css +2 -1
  22. data/examples/rapaste/start.rb +2 -3
  23. data/examples/sourceview/sourceview.rb +1 -1
  24. data/examples/templates/template/external.tenjin +28 -0
  25. data/examples/templates/template_amrita2.rb +0 -3
  26. data/examples/templates/template_tenjin.rb +57 -0
  27. data/examples/todolist/spec/todolist.rb +13 -2
  28. data/examples/todolist/src/controller/main.rb +1 -1
  29. data/examples/todolist/template/index.xhtml +1 -1
  30. data/examples/wiktacular/spec/wiktacular.rb +18 -0
  31. data/examples/wiktacular/src/controller.rb +2 -2
  32. data/examples/wiktacular/src/model.rb +8 -2
  33. data/lib/proto/public/css/ramaze_error.css +4 -0
  34. data/lib/proto/public/dispatch.fcgi +11 -0
  35. data/lib/proto/spec/main.rb +1 -1
  36. data/lib/proto/start.ru +8 -0
  37. data/lib/proto/view/error.xhtml +2 -0
  38. data/lib/ramaze.rb +28 -5
  39. data/lib/ramaze/action.rb +9 -2
  40. data/lib/ramaze/action/render.rb +40 -24
  41. data/lib/ramaze/adapter.rb +10 -17
  42. data/lib/ramaze/adapter/base.rb +8 -12
  43. data/lib/ramaze/adapter/cgi.rb +14 -13
  44. data/lib/ramaze/adapter/ebb.rb +34 -0
  45. data/lib/ramaze/adapter/evented_mongrel.rb +1 -1
  46. data/lib/ramaze/adapter/fcgi.rb +14 -14
  47. data/lib/ramaze/adapter/lsws.rb +15 -11
  48. data/lib/ramaze/adapter/mongrel.rb +2 -1
  49. data/lib/ramaze/adapter/scgi.rb +24 -0
  50. data/lib/ramaze/adapter/swiftiplied_mongrel.rb +1 -1
  51. data/lib/ramaze/adapter/thin.rb +4 -5
  52. data/lib/ramaze/adapter/webrick.rb +5 -5
  53. data/lib/ramaze/cache.rb +1 -1
  54. data/lib/ramaze/cache/memcached.rb +1 -1
  55. data/lib/ramaze/contrib.rb +70 -10
  56. data/lib/ramaze/contrib/auto_params.rb +1 -1
  57. data/lib/ramaze/contrib/email.rb +15 -15
  58. data/lib/ramaze/contrib/facebook.rb +2 -2
  59. data/lib/ramaze/contrib/facebook/facebook.rb +7 -4
  60. data/lib/ramaze/contrib/file_cache.rb +65 -0
  61. data/lib/ramaze/contrib/gettext.rb +56 -55
  62. data/lib/ramaze/contrib/profiling.rb +36 -0
  63. data/lib/ramaze/contrib/sequel_cache.rb +92 -0
  64. data/lib/ramaze/controller.rb +80 -47
  65. data/lib/ramaze/controller/error.rb +10 -5
  66. data/lib/ramaze/controller/resolve.rb +36 -48
  67. data/lib/ramaze/current.rb +70 -0
  68. data/lib/ramaze/{trinity → current}/request.rb +62 -15
  69. data/lib/ramaze/current/response.rb +19 -0
  70. data/lib/ramaze/{trinity → current}/session.rb +32 -110
  71. data/lib/ramaze/current/session/flash.rb +67 -0
  72. data/lib/ramaze/current/session/hash.rb +65 -0
  73. data/lib/ramaze/dispatcher.rb +1 -28
  74. data/lib/ramaze/dispatcher/action.rb +6 -3
  75. data/lib/ramaze/dispatcher/directory.rb +1 -1
  76. data/lib/ramaze/dispatcher/error.rb +26 -5
  77. data/lib/ramaze/dispatcher/file.rb +13 -2
  78. data/lib/ramaze/gestalt.rb +3 -1
  79. data/lib/ramaze/global.rb +6 -3
  80. data/lib/ramaze/global/globalstruct.rb +3 -1
  81. data/lib/ramaze/helper.rb +66 -20
  82. data/lib/ramaze/helper/aspect.rb +25 -17
  83. data/lib/ramaze/helper/auth.rb +4 -3
  84. data/lib/ramaze/helper/cache.rb +5 -4
  85. data/lib/ramaze/helper/cgi.rb +11 -9
  86. data/lib/ramaze/helper/flash.rb +28 -3
  87. data/lib/ramaze/helper/formatting.rb +1 -3
  88. data/lib/ramaze/helper/identity.rb +2 -3
  89. data/lib/ramaze/helper/inform.rb +7 -6
  90. data/lib/ramaze/helper/link.rb +15 -17
  91. data/lib/ramaze/helper/markaby.rb +2 -4
  92. data/lib/ramaze/helper/maruku.rb +1 -1
  93. data/lib/ramaze/helper/nitroform.rb +4 -4
  94. data/lib/ramaze/helper/pager.rb +4 -6
  95. data/lib/ramaze/helper/partial.rb +24 -21
  96. data/lib/ramaze/helper/redirect.rb +8 -5
  97. data/lib/ramaze/helper/{file.rb → sendfile.rb} +1 -3
  98. data/lib/ramaze/helper/sequel.rb +1 -3
  99. data/lib/ramaze/helper/stack.rb +1 -3
  100. data/lib/ramaze/helper/tagz.rb +19 -0
  101. data/lib/ramaze/helper/user.rb +63 -0
  102. data/lib/ramaze/inform.rb +2 -24
  103. data/lib/ramaze/log.rb +28 -0
  104. data/lib/ramaze/{inform → log}/analogger.rb +3 -3
  105. data/lib/ramaze/{inform → log}/growl.rb +2 -2
  106. data/lib/ramaze/{inform → log}/hub.rb +4 -6
  107. data/lib/ramaze/{inform → log}/informer.rb +4 -4
  108. data/lib/ramaze/{inform → log}/knotify.rb +2 -2
  109. data/lib/ramaze/log/logger.rb +22 -0
  110. data/lib/ramaze/{inform/informing.rb → log/logging.rb} +16 -16
  111. data/lib/ramaze/{inform → log}/syslog.rb +0 -0
  112. data/lib/ramaze/{inform → log}/xosd.rb +2 -2
  113. data/lib/ramaze/route.rb +64 -36
  114. data/lib/ramaze/snippets/array/put_within.rb +13 -0
  115. data/lib/ramaze/snippets/binding/locals.rb +13 -0
  116. data/lib/ramaze/snippets/kernel/__dir__.rb +10 -8
  117. data/lib/ramaze/snippets/kernel/aquire.rb +1 -1
  118. data/lib/ramaze/snippets/kernel/constant.rb +1 -1
  119. data/lib/ramaze/snippets/object/pretty.rb +6 -0
  120. data/lib/ramaze/snippets/object/scope.rb +11 -0
  121. data/lib/ramaze/snippets/object/thread_accessor.rb +5 -0
  122. data/lib/ramaze/snippets/ordered_set.rb +1 -1
  123. data/lib/ramaze/snippets/proc/locals.rb +11 -0
  124. data/lib/ramaze/snippets/ramaze/thread_accessor.rb +44 -0
  125. data/lib/ramaze/snippets/string/esc.rb +29 -0
  126. data/lib/ramaze/snippets/string/start_with.rb +7 -0
  127. data/lib/ramaze/snippets/string/unindent.rb +6 -1
  128. data/lib/ramaze/snippets/struct/values_at.rb +1 -5
  129. data/lib/ramaze/sourcereload.rb +16 -14
  130. data/lib/ramaze/spec.rb +1 -0
  131. data/lib/ramaze/spec/helper.rb +11 -3
  132. data/lib/ramaze/spec/helper/browser.rb +25 -1
  133. data/lib/ramaze/spec/helper/pretty_output.rb +11 -11
  134. data/lib/ramaze/template.rb +5 -4
  135. data/lib/ramaze/template/amrita2.rb +2 -3
  136. data/lib/ramaze/template/ezamar/element.rb +2 -3
  137. data/lib/ramaze/template/ezamar/morpher.rb +1 -2
  138. data/lib/ramaze/template/ezamar/render_partial.rb +1 -1
  139. data/lib/ramaze/template/haml.rb +5 -2
  140. data/lib/ramaze/template/markaby.rb +2 -0
  141. data/lib/ramaze/template/tagz.rb +79 -0
  142. data/lib/ramaze/template/tenjin.rb +34 -0
  143. data/lib/ramaze/tool/create.rb +0 -3
  144. data/lib/ramaze/tool/localize.rb +107 -105
  145. data/lib/ramaze/tool/mime.rb +0 -2
  146. data/lib/ramaze/trinity.rb +1 -26
  147. data/lib/ramaze/version.rb +1 -1
  148. data/lib/vendor/bacon.rb +47 -41
  149. data/rake_tasks/conf.rake +18 -0
  150. data/rake_tasks/darcs.rake +5 -0
  151. data/rake_tasks/maintenance.rake +37 -24
  152. data/rake_tasks/spec.rake +1 -1
  153. data/spec/contrib/auto_params.rb +3 -1
  154. data/spec/contrib/profiling.rb +26 -0
  155. data/spec/examples/templates/template_redcloth.rb +1 -1
  156. data/spec/examples/templates/template_tenjin.rb +28 -0
  157. data/spec/helper.rb +0 -1
  158. data/spec/ramaze/action/layout.rb +28 -0
  159. data/spec/ramaze/controller/actionless_templates.rb +32 -0
  160. data/spec/ramaze/controller/template/other_wrapper.xhtml +1 -0
  161. data/spec/ramaze/controller/template_resolving.rb +37 -0
  162. data/spec/ramaze/{trinity → current}/request.rb +12 -2
  163. data/spec/ramaze/current/session.rb +97 -0
  164. data/spec/ramaze/dispatcher/directory.rb +2 -1
  165. data/spec/ramaze/dispatcher/file.rb +8 -3
  166. data/spec/ramaze/dispatcher/public/file name.txt +1 -0
  167. data/spec/ramaze/gestalt.rb +11 -0
  168. data/spec/ramaze/helper/aspect.rb +28 -22
  169. data/spec/ramaze/helper/cgi.rb +2 -2
  170. data/spec/ramaze/helper/flash.rb +33 -15
  171. data/spec/ramaze/helper/formatting.rb +2 -2
  172. data/spec/ramaze/helper/link.rb +46 -18
  173. data/spec/ramaze/helper/pager.rb +8 -5
  174. data/spec/ramaze/helper/partial.rb +8 -1
  175. data/spec/ramaze/helper/template/recursive_local_ivars.xhtml +7 -0
  176. data/spec/ramaze/helper/user.rb +46 -0
  177. data/spec/ramaze/{inform → log}/informer.rb +0 -0
  178. data/spec/ramaze/{inform → log}/syslog.rb +1 -1
  179. data/spec/ramaze/request.rb +14 -10
  180. data/spec/ramaze/route.rb +23 -0
  181. data/spec/ramaze/template.rb +48 -1
  182. data/spec/ramaze/template/haml.rb +6 -16
  183. data/spec/ramaze/template/haml/locals.haml +2 -1
  184. data/spec/ramaze/template/tagz.rb +62 -0
  185. data/spec/ramaze/template/tagz/external.tagz +8 -0
  186. data/spec/ramaze/template/tagz/sum.tagz +1 -0
  187. data/spec/ramaze/template/tenjin.rb +49 -0
  188. data/spec/ramaze/template/tenjin/external.tenjin +1 -0
  189. data/spec/snippets/string/unindent.rb +15 -0
  190. metadata +509 -475
  191. data/doc/README.html +0 -729
  192. data/doc/changes.txt +0 -5757
  193. data/doc/changes.xml +0 -5759
  194. data/examples/blog/src/view.rb +0 -16
  195. data/examples/blog/template/edit.xhtml +0 -19
  196. data/examples/blog/template/index.xhtml +0 -19
  197. data/examples/blog/template/new.xhtml +0 -18
  198. data/examples/wiktacular/mkd/newpagename/current.mkd +0 -1
  199. data/examples/wiktacular/mkd/newpagename/current.mkd.bak +0 -1
  200. data/lib/ramaze/contrib/email.rb-darcs-backup0 +0 -81
  201. data/lib/ramaze/template/bijou.rb +0 -39
  202. data/lib/ramaze/trinity/response.rb +0 -32
  203. data/spec/ramaze/template/bijou.rb +0 -25
  204. data/spec/ramaze/trinity/session.rb +0 -29
@@ -1,729 +0,0 @@
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>