ramaze 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +4 -12
- data/bin/ramaze +95 -171
- data/doc/CHANGELOG +387 -4
- data/doc/README +81 -13
- data/doc/meta/announcement.txt +51 -8
- data/doc/meta/configuration.txt +17 -34
- data/doc/meta/internals.txt +34 -4
- data/doc/migrate/1110_to_1111.txt +131 -0
- data/doc/readme_chunks/features.txt +81 -12
- data/doc/readme_chunks/installing.txt +0 -1
- data/doc/tutorial/todolist.html +293 -65
- data/doc/tutorial/{todolist.txt → todolist.mkd} +251 -51
- data/examples/blog/main.rb +1 -1
- data/examples/blog/src/model.rb +0 -1
- data/examples/hello.rb +2 -5
- data/examples/templates/template/external.haml +5 -5
- data/examples/templates/template/external.liquid +1 -1
- data/examples/templates/template/external.mab +8 -8
- data/examples/templates/template/external.rem +30 -0
- data/examples/templates/template/external.rhtml +6 -7
- data/examples/templates/template/external.zmr +13 -9
- data/examples/templates/template_amrita2.rb +8 -8
- data/examples/templates/template_erubis.rb +11 -11
- data/examples/templates/template_ezamar.rb +9 -11
- data/examples/templates/template_haml.rb +13 -13
- data/examples/templates/template_liquid.rb +10 -10
- data/examples/templates/template_markaby.rb +13 -10
- data/examples/templates/template_remarkably.rb +59 -0
- data/examples/todolist/main.rb +1 -7
- data/examples/todolist/src/controller/main.rb +26 -13
- data/examples/todolist/src/element/page.rb +5 -0
- data/examples/whywiki/main.rb +1 -1
- data/lib/proto/main.rb +0 -8
- data/lib/proto/public/css/ramaze_error.css +12 -4
- data/lib/proto/public/error.zmr +6 -25
- data/lib/ramaze.rb +35 -245
- data/lib/ramaze/action.rb +21 -0
- data/lib/ramaze/adapter.rb +94 -29
- data/lib/ramaze/adapter/base.rb +57 -0
- data/lib/ramaze/adapter/mongrel.rb +12 -19
- data/lib/ramaze/adapter/webrick.rb +21 -20
- data/lib/ramaze/cache.rb +47 -3
- data/lib/ramaze/cache/memcached.rb +22 -0
- data/lib/ramaze/cache/yaml_store.rb +19 -0
- data/lib/ramaze/controller.rb +47 -271
- data/lib/ramaze/controller/error.rb +43 -0
- data/lib/ramaze/controller/render.rb +90 -0
- data/lib/ramaze/controller/resolve.rb +147 -0
- data/lib/ramaze/dispatcher.rb +41 -9
- data/lib/ramaze/dispatcher/file.rb +1 -1
- data/lib/ramaze/global.rb +73 -158
- data/lib/ramaze/global/dsl.rb +29 -0
- data/lib/ramaze/global/globalstruct.rb +90 -0
- data/lib/ramaze/helper.rb +1 -1
- data/lib/ramaze/helper/aspect.rb +39 -179
- data/lib/ramaze/helper/cache.rb +8 -9
- data/lib/ramaze/helper/cgi.rb +23 -0
- data/lib/ramaze/helper/file.rb +3 -0
- data/lib/ramaze/helper/inform.rb +3 -0
- data/lib/ramaze/helper/link.rb +56 -63
- data/lib/ramaze/helper/nitroform.rb +4 -0
- data/lib/ramaze/helper/redirect.rb +1 -1
- data/lib/ramaze/inform.rb +6 -2
- data/lib/ramaze/inform/analogger.rb +5 -1
- data/lib/ramaze/inform/hub.rb +1 -1
- data/lib/ramaze/inform/informing.rb +7 -0
- data/lib/ramaze/snippets/kernel/aquire.rb +2 -0
- data/lib/ramaze/snippets/kernel/constant.rb +2 -0
- data/lib/ramaze/snippets/kernel/pretty_inspect.rb +2 -0
- data/lib/ramaze/snippets/object/traits.rb +4 -0
- data/lib/ramaze/snippets/openstruct/temp.rb +3 -0
- data/lib/ramaze/snippets/string/DIVIDE.rb +2 -0
- data/lib/ramaze/snippets/string/camel_case.rb +2 -0
- data/lib/ramaze/snippets/string/color.rb +2 -0
- data/lib/ramaze/snippets/string/each.rb +2 -0
- data/lib/ramaze/snippets/string/snake_case.rb +3 -0
- data/lib/ramaze/snippets/struct/fill.rb +8 -2
- data/lib/ramaze/snippets/struct/values_at.rb +16 -0
- data/lib/ramaze/snippets/symbol/to_proc.rb +3 -0
- data/lib/ramaze/sourcereload.rb +89 -0
- data/lib/ramaze/template.rb +21 -12
- data/lib/ramaze/template/amrita2.rb +6 -6
- data/lib/ramaze/template/erubis.rb +4 -9
- data/lib/ramaze/template/ezamar.rb +13 -57
- data/lib/ramaze/template/ezamar/element.rb +10 -12
- data/lib/ramaze/template/ezamar/engine.rb +40 -101
- data/lib/ramaze/template/ezamar/morpher.rb +3 -3
- data/lib/ramaze/template/haml.rb +3 -6
- data/lib/ramaze/template/liquid.rb +4 -9
- data/lib/ramaze/template/markaby.rb +16 -22
- data/lib/ramaze/template/remarkably.rb +28 -0
- data/lib/ramaze/tool/mime.rb +2 -0
- data/lib/ramaze/tool/record.rb +6 -0
- data/lib/ramaze/trinity/request.rb +44 -54
- data/lib/ramaze/trinity/response.rb +1 -1
- data/lib/ramaze/trinity/session.rb +15 -37
- data/lib/ramaze/version.rb +1 -1
- data/rake_tasks/gem.rake +2 -2
- data/rake_tasks/maintaince.rake +42 -1
- data/rake_tasks/spec.rake +45 -0
- data/spec/examples/caching.rb +1 -1
- data/spec/examples/simple.rb +1 -1
- data/spec/examples/templates/template_amrita2.rb +1 -0
- data/spec/examples/templates/template_erubis.rb +2 -1
- data/spec/examples/templates/template_ezamar.rb +1 -1
- data/spec/examples/templates/template_haml.rb +2 -1
- data/spec/examples/templates/template_liquid.rb +2 -1
- data/spec/examples/templates/template_markaby.rb +2 -1
- data/spec/examples/templates/template_remarkably.rb +22 -0
- data/spec/examples/todolist.rb +125 -0
- data/spec/helper.rb +2 -23
- data/spec/helper/minimal.rb +20 -0
- data/spec/helper/mock_http.rb +24 -30
- data/spec/helper/simple_http.rb +2 -2
- data/spec/helper/wrap.rb +6 -9
- data/spec/ramaze/adapter.rb +1 -1
- data/spec/ramaze/adapter/record.rb +31 -0
- data/spec/ramaze/cache.rb +41 -54
- data/spec/ramaze/controller.rb +121 -137
- data/spec/ramaze/controller/template/list.xhtml +1 -0
- data/spec/ramaze/controller/template/other/greet/other.xhtml +1 -0
- data/spec/ramaze/controller/template_resolving.rb +27 -3
- data/spec/ramaze/element.rb +11 -7
- data/spec/ramaze/error.rb +1 -1
- data/spec/ramaze/gestalt.rb +2 -0
- data/spec/ramaze/helper/aspect.rb +30 -21
- data/spec/ramaze/helper/auth.rb +1 -1
- data/spec/ramaze/helper/cache.rb +2 -1
- data/spec/ramaze/helper/form.rb +14 -11
- data/spec/ramaze/helper/link.rb +18 -41
- data/spec/ramaze/localize.rb +29 -2
- data/spec/ramaze/morpher.rb +23 -12
- data/spec/ramaze/params.rb +46 -24
- data/spec/ramaze/request.rb +6 -2
- data/spec/ramaze/store/yaml.rb +5 -0
- data/spec/ramaze/template.rb +22 -27
- data/spec/ramaze/template/amrita2.rb +1 -2
- data/spec/ramaze/template/erubis.rb +1 -1
- data/spec/ramaze/template/ezamar.rb +1 -2
- data/spec/ramaze/template/haml.rb +2 -2
- data/spec/ramaze/template/haml/with_vars.haml +1 -1
- data/spec/ramaze/template/liquid.rb +1 -1
- data/spec/ramaze/template/markaby.rb +1 -1
- data/spec/ramaze/template/remarkably.rb +56 -0
- data/spec/ramaze/template/remarkably/external.rem +8 -0
- data/spec/ramaze/template/remarkably/sum.rem +1 -0
- metadata +38 -63
- data/doc/README.html +0 -637
- data/doc/allison/LICENSE +0 -184
- data/doc/allison/README +0 -37
- data/doc/allison/allison.css +0 -299
- data/doc/allison/allison.gif +0 -0
- data/doc/allison/allison.js +0 -307
- data/doc/allison/allison.rb +0 -287
- data/doc/allison/cache/BODY +0 -588
- data/doc/allison/cache/CLASS_INDEX +0 -4
- data/doc/allison/cache/CLASS_PAGE +0 -1
- data/doc/allison/cache/FILE_INDEX +0 -4
- data/doc/allison/cache/FILE_PAGE +0 -1
- data/doc/allison/cache/FONTS +0 -1
- data/doc/allison/cache/FR_INDEX_BODY +0 -1
- data/doc/allison/cache/IMGPATH +0 -1
- data/doc/allison/cache/INDEX +0 -1
- data/doc/allison/cache/JAVASCRIPT +0 -307
- data/doc/allison/cache/METHOD_INDEX +0 -4
- data/doc/allison/cache/METHOD_LIST +0 -1
- data/doc/allison/cache/SRC_PAGE +0 -1
- data/doc/allison/cache/STYLE +0 -321
- data/doc/allison/cache/URL +0 -1
- data/doc/changes.txt +0 -3375
- data/doc/changes.xml +0 -3378
- data/examples/todolist/conf/benchmark.yaml +0 -35
- data/examples/todolist/conf/debug.yaml +0 -34
- data/examples/todolist/conf/live.yaml +0 -33
- data/examples/todolist/conf/silent.yaml +0 -31
- data/examples/todolist/conf/stage.yaml +0 -33
- data/examples/todolist/public/css/coderay.css +0 -105
- data/examples/todolist/public/css/ramaze_error.css +0 -42
- data/lib/proto/conf/benchmark.yaml +0 -21
- data/lib/proto/conf/debug.yaml +0 -21
- data/lib/proto/conf/live.yaml +0 -21
- data/lib/proto/conf/silent.yaml +0 -21
- data/lib/proto/conf/stage.yaml +0 -21
- data/lib/proto/public/css/coderay.css +0 -105
- data/lib/ramaze/http_status.rb +0 -66
- data/lib/ramaze/snippets/hash/keys_to_sym.rb +0 -19
- data/lib/ramaze/snippets/kernel/method.rb +0 -26
- data/lib/ramaze/snippets/method/name.rb +0 -22
- data/lib/ramaze/snippets/ramaze/autoreload.rb +0 -135
- data/lib/ramaze/snippets/rdoc/usage_no_exit.rb +0 -65
- data/spec/all.rb +0 -32
- data/spec/ramaze/conf/locale_de.yaml +0 -6
- data/spec/ramaze/conf/locale_en.yaml +0 -6
- data/spec/ramaze/dependencies.rb +0 -16
- data/spec/ramaze/global.rb +0 -44
data/doc/README
CHANGED
@@ -49,6 +49,11 @@ Ramaze offers following features at the moment:
|
|
49
49
|
CGI is the Common Gateway Interface and is one of the most basic ways
|
50
50
|
to integrate into Webservers like Apache, Lighttpd or Nginx.
|
51
51
|
|
52
|
+
* FCGI
|
53
|
+
|
54
|
+
Improvment of CGI as it doesn't start up a new connection to Ramaze on
|
55
|
+
every request.
|
56
|
+
|
52
57
|
|
53
58
|
* Templates
|
54
59
|
* [Amrita2](http://amrita2.rubyforge.org/)
|
@@ -69,13 +74,18 @@ Ramaze offers following features at the moment:
|
|
69
74
|
Liquid's syntax and parse model are inspired by Django templates, as well
|
70
75
|
as PHP's smarty.
|
71
76
|
|
77
|
+
* [Remarkably](http://rubyforge.org/projects/remarkably)
|
78
|
+
|
79
|
+
Remarkably is a very tiny Markaby-like XML builder
|
80
|
+
|
72
81
|
* [Markaby](http://code.whytheluckystiff.net/markaby/)
|
73
82
|
|
74
83
|
Markaby means Markup as Ruby.
|
75
84
|
|
76
85
|
* Ezamar
|
77
86
|
|
78
|
-
A simple homage to [Nitro](http://nitroproject.org)s templating
|
87
|
+
A simple homage to [Nitro](http://nitroproject.org)s templating, is shipped
|
88
|
+
together with Ramaze.
|
79
89
|
|
80
90
|
* Cache
|
81
91
|
* Hash
|
@@ -83,22 +93,81 @@ Ramaze offers following features at the moment:
|
|
83
93
|
* MemCache
|
84
94
|
|
85
95
|
* Helper
|
86
|
-
*
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
+
* Active by default
|
97
|
+
* CGI
|
98
|
+
|
99
|
+
Shortcuts for escape/unescape of the CGI module.
|
100
|
+
|
101
|
+
* File
|
102
|
+
|
103
|
+
Helps you serving files from your Controller.
|
104
|
+
|
105
|
+
* Flash
|
106
|
+
|
107
|
+
Store a couple of values for one request associated with a session.
|
108
|
+
|
109
|
+
* Link
|
110
|
+
|
111
|
+
Easier linking to the various parts of your applications Controllers and
|
112
|
+
Actions.
|
113
|
+
|
114
|
+
* Redirect
|
115
|
+
|
116
|
+
Easy redirection.
|
117
|
+
|
118
|
+
* Optional
|
119
|
+
* Aspect
|
120
|
+
|
121
|
+
Allows you to wrap different Actions on your Controller with code.
|
122
|
+
|
123
|
+
* Auth
|
124
|
+
|
125
|
+
Simple way to add basic authentication.
|
126
|
+
|
127
|
+
* Cache
|
128
|
+
|
129
|
+
Easy caching Actions and values.
|
130
|
+
|
131
|
+
* Feed
|
132
|
+
|
133
|
+
Programmatically generate feeds from any Class.
|
134
|
+
|
135
|
+
* Form
|
136
|
+
|
137
|
+
In development, help appreciated.
|
138
|
+
|
139
|
+
* Identity
|
140
|
+
|
141
|
+
For ease of use of the OpenID authentication mechanism.
|
142
|
+
|
143
|
+
* Inform
|
144
|
+
|
145
|
+
Wrapping the functionality of Ramazes logging facilities.
|
146
|
+
|
147
|
+
* Markaby
|
148
|
+
|
149
|
+
Allows you to use Markaby in your Controller without having it as the
|
150
|
+
default templating engine.
|
151
|
+
|
152
|
+
* Nitroform
|
153
|
+
|
154
|
+
Hooks up on nitros form builder to help you creating forms from Og
|
155
|
+
objects.
|
156
|
+
|
157
|
+
* OpenID
|
158
|
+
|
159
|
+
Authentication via OpenID made easy.
|
160
|
+
|
161
|
+
* Stack
|
162
|
+
|
163
|
+
Allows you to use a call/answer mechanism for things like redirection to the
|
164
|
+
site a user entered login-forms from.
|
96
165
|
|
97
166
|
* Various
|
98
167
|
* Sessions
|
99
168
|
* Global configuration system
|
100
169
|
* Simple request/response handling
|
101
|
-
* Custom Error-handling
|
170
|
+
* Custom sophisticated Error-handling
|
102
171
|
|
103
172
|
|
104
173
|
= Basic Principles
|
@@ -170,7 +239,6 @@ There are some basic principles that Ramaze tries to follow:
|
|
170
239
|
$ gem install ramaze
|
171
240
|
|
172
241
|
in case you have RubyGems installed.
|
173
|
-
(this will work as soon as I have registered on RubyForge ;)
|
174
242
|
|
175
243
|
|
176
244
|
* via darcs
|
data/doc/meta/announcement.txt
CHANGED
@@ -1,17 +1,62 @@
|
|
1
|
-
This
|
2
|
-
source web framework with the aim to be light and modular.
|
3
|
-
|
4
|
-
|
1
|
+
This time we are proud to announce Version 0.1.2 of the Ramaze framework, an
|
2
|
+
open source web framework with the aim to be light and modular.
|
3
|
+
|
4
|
+
Since the 0.1.0 release we have made a lot of progress and the overall API has
|
5
|
+
mostly settled down. An extensive set of tests is covering almost every detail
|
6
|
+
of the implementation and usage.
|
7
|
+
|
8
|
+
It is developed by by several people and already in production-use at some
|
9
|
+
companies.
|
10
|
+
|
5
11
|
|
6
12
|
Home page: http://ramaze.rubyforge.org
|
7
13
|
IRC: #ramaze on irc.freenode.net
|
8
14
|
|
15
|
+
|
16
|
+
New Features in Version 0.1.2: ( review and remove unimportant stuff )
|
17
|
+
|
18
|
+
- Restructuring of Ramaze internals, featuring a cleaner overall layout.
|
19
|
+
|
20
|
+
- Add Ramaze::Record to easily record requests fitting particular patterns.
|
21
|
+
|
22
|
+
- Support for the Remarkably templating engine.
|
23
|
+
|
24
|
+
- Adapted for Rack 0.2
|
25
|
+
|
26
|
+
- Easier caching.
|
27
|
+
|
28
|
+
- replacing autoreload with the almighty SourceReload.
|
29
|
+
|
30
|
+
- tiny DSL for settings.
|
31
|
+
|
32
|
+
- Global is now a Struct, no OpenStruct.
|
33
|
+
|
34
|
+
- Default logger is now LogHub with Inform
|
35
|
+
|
36
|
+
- Lightweight error-page.
|
37
|
+
|
38
|
+
- Central API for caches.
|
39
|
+
|
40
|
+
- Reviewed and largely improved tutorial and examples.
|
41
|
+
|
42
|
+
- Even less patches to the Ruby core, mostly for compatibility with the
|
43
|
+
upcoming Ruby 1.9 and tested with older versions down to 1.8.2.
|
44
|
+
|
45
|
+
- Largely improved Spec-framework for any kind of web-application.
|
46
|
+
|
47
|
+
- Through some benchmarking and refactoring the overall speed has improved
|
48
|
+
around the factor 2.
|
49
|
+
|
50
|
+
A complete Changelog is available at [ insert URL ]
|
51
|
+
|
52
|
+
|
9
53
|
Features:
|
10
54
|
- Builds on top of the recently released Rack library, which provides easy use
|
11
55
|
of adapters like Mongrel, WEBrick, CGI or FCGI.
|
12
56
|
|
13
57
|
- Supports a wide range of templating-engines like:
|
14
|
-
Amrita2, Erubis, HAML, Liquid, Markaby and its own engine
|
58
|
+
Amrita2, Erubis, HAML, Liquid, Markaby, Remarkably and its own engine
|
59
|
+
called Ezamar.
|
15
60
|
|
16
61
|
- Highly modular structure, you can just use the parts you like. This also
|
17
62
|
means that it's very simple to add your own customizations.
|
@@ -36,9 +81,7 @@ Features planned:
|
|
36
81
|
- Unified FormHelper for ORMs, making the framework mostly independent of the
|
37
82
|
underlying model.
|
38
83
|
|
39
|
-
-
|
40
|
-
during runtime and link that with the CLI-parameter automatically.
|
41
|
-
|
84
|
+
- Support for distributed deployment over DRb.
|
42
85
|
|
43
86
|
For more information please come to http://ramaze.rubyforge.org or ask directly
|
44
87
|
on IRC (irc://irc.freenode.net/#ramaze)
|
data/doc/meta/configuration.txt
CHANGED
@@ -6,10 +6,8 @@ This chapter covers how to do configuration in Ramaze for your application.
|
|
6
6
|
The object holding most configuration is called Global. It resides in the Ramaze
|
7
7
|
module/name space.
|
8
8
|
|
9
|
-
Global is
|
10
|
-
|
11
|
-
change key/value pairs by accident that Ramaze itself uses (doing it intentional
|
12
|
-
is OK of course).
|
9
|
+
Global is an instance of GlobalStruct, which itself is an instance of Struct.
|
10
|
+
There have been some changes to it to suit its purpose.
|
13
11
|
|
14
12
|
Before covering some of the available options let us see how to actually use it.
|
15
13
|
|
@@ -20,17 +18,15 @@ Global with Ramaze so it is written Ramaze::Global.
|
|
20
18
|
|
21
19
|
#### Basic assignment:
|
22
20
|
|
23
|
-
Global.
|
21
|
+
Global.spawn = 10
|
24
22
|
|
25
|
-
if you do that before calling Ramaze::start Ramaze will spawn
|
26
|
-
port in that Range. The first value of this Range is also assigned to
|
27
|
-
Global.port during the startup procedure.
|
23
|
+
if you do that before calling Ramaze::start Ramaze will spawn the given number of servers.
|
28
24
|
|
29
25
|
|
30
26
|
#### Multiple assignment:
|
31
27
|
|
32
28
|
Global.setup :adapter => :mongrel,
|
33
|
-
:cache =>
|
29
|
+
:cache => :memcached
|
34
30
|
|
35
31
|
So you can pass a Hash of all the options you want to change.
|
36
32
|
In this case you would use Mongrel as the adapter and use memcached for your
|
@@ -61,24 +57,24 @@ useful to quickly test some configuration.
|
|
61
57
|
|
62
58
|
### Global options
|
63
59
|
|
64
|
-
Since this document is especially prone to be outdated at times make sure you
|
65
|
-
check lib/ramaze/global.rb in case you run into trouble, we will try to keep at
|
66
|
-
least the RDocs up to date. This update is from 2007/04/16.
|
67
|
-
|
68
60
|
This listing is here to provide you with descriptions of the most common
|
69
61
|
configurations in alphabetical order per section showing the default value next
|
70
62
|
to the key.
|
71
63
|
|
64
|
+
This chapter has been shrunk a lot to cover only essentials, please look at
|
65
|
+
lib/ramaze/global.rb to see all available options.
|
66
|
+
|
67
|
+
Date of last update: 2007-05-20
|
72
68
|
|
73
69
|
#### General Configuration:
|
74
70
|
|
75
|
-
:
|
71
|
+
:sourcereload => 3
|
76
72
|
|
77
|
-
|
73
|
+
SourceReload is a nifty mechanism that takes advantage of the dynamics of Ruby,
|
78
74
|
it's basically a Thread that runs in the background and polls for files in the
|
79
75
|
application and framework that have changed (using mtime). The value specifies
|
80
|
-
roughly how fast your changes are going to be loaded and should be a
|
81
|
-
|
76
|
+
roughly how fast your changes are going to be loaded and should be a number.
|
77
|
+
If you set this to false, it will not start.
|
82
78
|
|
83
79
|
|
84
80
|
:adapter => :webrick
|
@@ -91,19 +87,13 @@ additional libraries to be installed, webrick and cgi run out of the box.
|
|
91
87
|
Generally the most supported and recommended for deployment is Mongrel.
|
92
88
|
|
93
89
|
|
94
|
-
:
|
95
|
-
|
96
|
-
This option doesn't have a large impact and is most likely left on its default
|
97
|
-
value, it controls how long the backtrace shown in your log and on the error
|
98
|
-
page should be.
|
99
|
-
|
100
|
-
|
101
|
-
:cache => MemoryCache
|
90
|
+
:cache => :memory
|
102
91
|
|
92
|
+
Possible: :memory, :memcached, :yaml
|
103
93
|
The cache is one of the more important things for deployment, the default for
|
104
94
|
this is MemoryCache, a simple Hash.
|
105
|
-
|
106
|
-
like sessions, page- and value-caching.
|
95
|
+
What you specify here will be used by Ramaze::Cache and is used throughout
|
96
|
+
Ramaze to cache various things, like sessions, page- and value-caching.
|
107
97
|
Included in Ramaze are the MemoryCache and YAMLStoreCache, after you install
|
108
98
|
'memcached' you can also use the much more performant MemcachedCache that also
|
109
99
|
makes it easy to use the same cache between different applications (sharing
|
@@ -140,13 +130,6 @@ Tell the adapter where it accepts requests from, 0.0.0.0 says that every
|
|
140
130
|
IP will be accepted, 127.0.0.1 would accept only requests from loopback.
|
141
131
|
|
142
132
|
|
143
|
-
:logger => Ramaze::Informer
|
144
|
-
|
145
|
-
The logger is used during startup to set Ramaze::Inform, you may set this
|
146
|
-
to Ramaze::Syslog or in case you have 'analogger' installed, you can use
|
147
|
-
Ramaze::Analogger.
|
148
|
-
|
149
|
-
|
150
133
|
:mapping => {}
|
151
134
|
|
152
135
|
This is a very central and special setting, it contains key/value pairs
|
data/doc/meta/internals.txt
CHANGED
@@ -18,10 +18,40 @@ limitations and features are.
|
|
18
18
|
Ramaze is also the main module or so-called namespace that the framework lives
|
19
19
|
in. It has
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
Tasks on require
|
22
|
+
|
23
|
+
* Inform
|
24
|
+
* LogHub.new(Informer)
|
25
|
+
* Global
|
26
|
+
* GlobalStruct.new
|
27
|
+
|
28
|
+
|
29
|
+
Tasks on startup
|
30
|
+
|
31
|
+
* Global.startup
|
32
|
+
* passed options to Ramaze.start
|
33
|
+
* CLI options from bin/ramaze (treat as passed.merge)
|
34
|
+
* Global options set before startup (fake Global?)
|
35
|
+
|
36
|
+
* Controller.startup
|
37
|
+
* mapping of all subclassed Controller
|
38
|
+
* validation of mapping
|
39
|
+
* validation of template_root
|
40
|
+
|
41
|
+
* Adapter.startup
|
42
|
+
* interpret Global.adapter
|
43
|
+
* add every created adapter to Global.adapters
|
44
|
+
|
45
|
+
* SourceReload.startup
|
46
|
+
* start with Global.reload_interval
|
47
|
+
* assign Global.sourcereload
|
48
|
+
|
49
|
+
|
50
|
+
Tasks on shutdown
|
51
|
+
|
52
|
+
* Adapter.shutdown (iterates Global.adapters)
|
53
|
+
* Inform.shutdown (iterates all in LogHub)
|
54
|
+
|
25
55
|
|
26
56
|
|
27
57
|
#### Global configuration
|
@@ -0,0 +1,131 @@
|
|
1
|
+
= Explanation of the changes of patch 1110-1111
|
2
|
+
|
3
|
+
What this patch is all about.
|
4
|
+
Due to a general cleanup and preparation for further extension there has been a
|
5
|
+
lot of moving of code into more appropriate positions.
|
6
|
+
Another goal was the reimplementation of Global, away from OpenStruct to the
|
7
|
+
faster Struct.
|
8
|
+
Some smaller improvments will follow on both areas, but as with the last
|
9
|
+
Controller refactoring, this aimed to be finished as soon as possible to get
|
10
|
+
Ramaze bulletproof again before the next release.
|
11
|
+
|
12
|
+
|
13
|
+
== Ramaze
|
14
|
+
=== What happened to the module
|
15
|
+
|
16
|
+
The whole module has now only two methods, :startup and :shutdown
|
17
|
+
|
18
|
+
startup sends .startup to the classes in
|
19
|
+
Ramaze.trait[:essentials]
|
20
|
+
shutdown sends .shutdown to these classes.
|
21
|
+
|
22
|
+
Other methods changed:
|
23
|
+
|
24
|
+
force_start
|
25
|
+
removed -> not used anywhere and easily done with a passed option.
|
26
|
+
|
27
|
+
execute
|
28
|
+
removed -> there may be a replacement coming though.
|
29
|
+
|
30
|
+
kill_threads
|
31
|
+
delegated -> this is handled over the shutdown of the responsible classes now.
|
32
|
+
|
33
|
+
setup_controllers
|
34
|
+
delegated -> has been moved to Controller::startup
|
35
|
+
|
36
|
+
init_sourcereload
|
37
|
+
delegated -> moved to SourceReload::startup
|
38
|
+
|
39
|
+
init_global
|
40
|
+
delegated -> moved to Global::startup
|
41
|
+
|
42
|
+
init_adapter, run_adapter, test_connections, connection_possible
|
43
|
+
delegated -> moved to Adapter::startup
|
44
|
+
|
45
|
+
require_adapter
|
46
|
+
delegated -> is now the mask Global.adapter
|
47
|
+
|
48
|
+
parse_port
|
49
|
+
delegated -> is now the mask Global.ports
|
50
|
+
|
51
|
+
|
52
|
+
== Global
|
53
|
+
=== New functionality and layout
|
54
|
+
|
55
|
+
Global is now a Struct instead of an OpenStruct, which means two things:
|
56
|
+
The general API is hardened now, assigning new accessors is not as simple as
|
57
|
+
just setting them via method_missing anymore.
|
58
|
+
The GlobalStruct::DEFAULT hash defines what contents the Struct has.
|
59
|
+
This has on one hand a improved performance, on the other hand it unifies the
|
60
|
+
API for further versions, collecting the setting of Global accessors into one
|
61
|
+
place.
|
62
|
+
We could add method_missing in further revisions if need arises.
|
63
|
+
The other important improvement is the masking of internals of Global. This means
|
64
|
+
that we can now define a method over the internal value and present something
|
65
|
+
different than it actually contains. Also hooks on setting a value are now
|
66
|
+
possible.
|
67
|
+
|
68
|
+
Controller.trait[:ramaze_public] has moved here as Global.public_root to match
|
69
|
+
the Controller.public_root setting.
|
70
|
+
|
71
|
+
|
72
|
+
== Controller
|
73
|
+
=== template_root and public_root
|
74
|
+
|
75
|
+
These are no traits anymore. Now the resolution of templates should be a little
|
76
|
+
bit faster, but more importantly they will give you a warning when setting a
|
77
|
+
path that does not exist.
|
78
|
+
To remove the 'self.' boilerplate they take an optional argument and act as
|
79
|
+
getter only if no argument is given.
|
80
|
+
|
81
|
+
|
82
|
+
== Cache
|
83
|
+
=== Unified API for new Caches
|
84
|
+
|
85
|
+
We now take advantage of the ages-old idea of having a unified Ramaze::Cache to
|
86
|
+
spawn new instances of caches instead of relying on Global.cache.new which posed
|
87
|
+
many problems with configuring them.
|
88
|
+
To retrieve a new cache, simply use Cache.new now, setting Global.cache will
|
89
|
+
define which class is used for this. You can set strings/symbols like :memory,
|
90
|
+
:memcached or :yaml.
|
91
|
+
|
92
|
+
Cache also specifies a unified API, at the moment consisting of:
|
93
|
+
#[](key), #[]=(key, value), #clear, #delete(*keys)
|
94
|
+
|
95
|
+
To make interacting easier, all keys are stored/retrieved as strings
|
96
|
+
automatically so you can use either symbols or strings to access values.
|
97
|
+
|
98
|
+
|
99
|
+
== Adapter
|
100
|
+
=== Adapter::( startup | shutdown )
|
101
|
+
|
102
|
+
The stuff from Ramaze has moved here, it basically still works the same way.
|
103
|
+
However, we are now wrapping less threads around one adapter, which may or may
|
104
|
+
not affect performance.
|
105
|
+
|
106
|
+
|
107
|
+
== Request
|
108
|
+
=== Outsourcing of methods to Rack
|
109
|
+
|
110
|
+
Following methods have been moved to the latest version of Rack:
|
111
|
+
#fullpath #[](key), #[]=(key, value), #values_at(*keys), #referer/#referer
|
112
|
+
|
113
|
+
=== Change from module to subclass
|
114
|
+
|
115
|
+
== Response
|
116
|
+
=== Change from module to subclass
|
117
|
+
|
118
|
+
Same as Request
|
119
|
+
|
120
|
+
|
121
|
+
== STATUS_CODE
|
122
|
+
=== Usage of Rack::Utils::HTTP_STATUS_CODES
|
123
|
+
|
124
|
+
We are now using the hash from Rack, assigned to Ramaze::STATUS_CODE and have
|
125
|
+
removed ramaze/http_status.rb
|
126
|
+
The major change is that the keys are now strings like
|
127
|
+
"Not Found" or "Internal Server Error". Most of the time guessing will work.
|
128
|
+
|
129
|
+
|
130
|
+
== Informing
|
131
|
+
=== Added #debug? for WEBrick, set to false.
|