ramaze 2011.07.25 → 2011.10.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. data/.gitignore +3 -0
  2. data/.mailmap +3 -2
  3. data/.travis.yml +17 -0
  4. data/.yardopts +13 -0
  5. data/README.md +95 -352
  6. data/examples/app/blog/app.rb +25 -64
  7. data/examples/app/blog/config.ru +11 -9
  8. data/examples/app/blog/controller/init.rb +29 -86
  9. data/examples/app/blog/controller/posts.rb +232 -0
  10. data/examples/app/blog/controller/users.rb +160 -0
  11. data/examples/app/blog/layout/default.xhtml +61 -0
  12. data/examples/app/blog/migrations/01_create_schema.rb +50 -0
  13. data/examples/app/blog/model/comment.rb +41 -54
  14. data/examples/app/blog/model/init.rb +41 -13
  15. data/examples/app/blog/model/post.rb +35 -0
  16. data/examples/app/blog/model/user.rb +105 -0
  17. data/examples/app/blog/public/.htaccess +24 -0
  18. data/examples/app/blog/public/css/grid.css +107 -0
  19. data/examples/app/blog/public/css/layout.css +203 -0
  20. data/examples/app/blog/public/css/reset.css +123 -0
  21. data/examples/app/blog/public/css/text.css +109 -0
  22. data/examples/app/blog/public/dispatch.fcgi +11 -0
  23. data/examples/app/blog/public/favicon.ico +0 -0
  24. data/examples/app/blog/public/images/bg.png +0 -0
  25. data/examples/app/blog/start.rb +18 -3
  26. data/examples/app/blog/view/feed.xhtml +23 -0
  27. data/examples/app/blog/view/form.xhtml +11 -0
  28. data/examples/app/blog/view/index.xhtml +44 -0
  29. data/examples/app/blog/view/users/form.xhtml +12 -0
  30. data/examples/app/blog/view/users/index.xhtml +30 -0
  31. data/examples/app/blog/view/users/login.xhtml +8 -0
  32. data/examples/app/blog/view/view.xhtml +68 -0
  33. data/{doc → guide}/AUTHORS +5 -3
  34. data/{doc → guide}/CHANGELOG +428 -0
  35. data/{doc/GPL → guide/GPL_LICENSE} +0 -0
  36. data/{doc/COPYING → guide/RUBY_LICENSE} +3 -6
  37. data/guide/_static/logo.png +0 -0
  38. data/guide/_static/logo.svg +49 -0
  39. data/guide/_static/ramaze_console.png +0 -0
  40. data/guide/css/common.css +20 -0
  41. data/guide/general/cache.md +167 -0
  42. data/guide/general/configuration.md +168 -0
  43. data/guide/general/contributing.md +108 -0
  44. data/guide/general/controllers.md +115 -0
  45. data/guide/general/helpers.md +76 -0
  46. data/guide/general/installation.md +58 -0
  47. data/guide/general/logging.md +99 -0
  48. data/guide/general/middlewares.md +100 -0
  49. data/guide/general/models.md +78 -0
  50. data/guide/general/principles.md +53 -0
  51. data/guide/general/ramaze_command.md +155 -0
  52. data/guide/general/routes.md +81 -0
  53. data/guide/general/sessions.md +140 -0
  54. data/guide/general/special_thanks.md +67 -0
  55. data/guide/general/testing.md +61 -0
  56. data/guide/general/views.md +322 -0
  57. data/guide/tutorials/introduction.md +259 -0
  58. data/lib/proto/config.ru +1 -1
  59. data/lib/proto/public/favicon.ico +0 -0
  60. data/lib/proto/view/index.xhtml +7 -7
  61. data/lib/ramaze.rb +4 -4
  62. data/lib/ramaze/app.rb +11 -11
  63. data/lib/ramaze/app_graph.rb +2 -4
  64. data/lib/ramaze/bin/console.rb +3 -3
  65. data/lib/ramaze/bin/create.rb +2 -2
  66. data/lib/ramaze/bin/restart.rb +4 -4
  67. data/lib/ramaze/bin/runner.rb +5 -5
  68. data/lib/ramaze/bin/start.rb +19 -4
  69. data/lib/ramaze/bin/status.rb +3 -3
  70. data/lib/ramaze/bin/stop.rb +3 -3
  71. data/lib/ramaze/cache.rb +1 -0
  72. data/lib/ramaze/cache/lru.rb +8 -4
  73. data/lib/ramaze/cache/memcache.rb +32 -13
  74. data/lib/ramaze/cache/redis.rb +164 -0
  75. data/lib/ramaze/cache/sequel.rb +43 -28
  76. data/lib/ramaze/controller.rb +1 -2
  77. data/lib/ramaze/dependencies.rb +40 -3
  78. data/lib/ramaze/helper/bench.rb +26 -16
  79. data/lib/ramaze/helper/blue_form.rb +46 -73
  80. data/lib/ramaze/helper/cache.rb +10 -6
  81. data/lib/ramaze/helper/csrf.rb +35 -39
  82. data/lib/ramaze/helper/disqus.rb +5 -4
  83. data/lib/ramaze/helper/email.rb +35 -24
  84. data/lib/ramaze/helper/erector.rb +9 -13
  85. data/lib/ramaze/helper/flash.rb +7 -9
  86. data/lib/ramaze/helper/formatting.rb +194 -179
  87. data/lib/ramaze/helper/gravatar.rb +4 -8
  88. data/lib/ramaze/helper/identity.rb +3 -3
  89. data/lib/ramaze/helper/layout.rb +23 -8
  90. data/lib/ramaze/helper/markaby.rb +1 -1
  91. data/lib/ramaze/helper/paginate.rb +46 -39
  92. data/lib/ramaze/helper/request_accessor.rb +3 -1
  93. data/lib/ramaze/helper/simple_captcha.rb +18 -17
  94. data/lib/ramaze/helper/stack.rb +1 -1
  95. data/lib/ramaze/helper/tagz.rb +4 -2
  96. data/lib/ramaze/helper/upload.rb +523 -0
  97. data/lib/ramaze/helper/user.rb +4 -8
  98. data/lib/ramaze/helper/xhtml.rb +11 -15
  99. data/lib/ramaze/log.rb +9 -6
  100. data/lib/ramaze/log/rotatinginformer.rb +62 -27
  101. data/lib/ramaze/log/syslog.rb +20 -15
  102. data/lib/ramaze/log/xosd.rb +2 -1
  103. data/lib/ramaze/reloader.rb +2 -0
  104. data/lib/ramaze/request.rb +11 -10
  105. data/lib/ramaze/setup.rb +23 -6
  106. data/lib/ramaze/snippets/array/put_within.rb +3 -9
  107. data/lib/ramaze/snippets/binding/locals.rb +5 -10
  108. data/lib/ramaze/snippets/fiber.rb +1 -23
  109. data/lib/ramaze/snippets/kernel/pretty_inspect.rb +3 -6
  110. data/lib/ramaze/snippets/numeric/filesize_format.rb +3 -5
  111. data/lib/ramaze/snippets/numeric/time.rb +3 -7
  112. data/lib/ramaze/snippets/object/__dir__.rb +3 -7
  113. data/lib/ramaze/snippets/object/instance_variable_defined.rb +3 -6
  114. data/lib/ramaze/snippets/object/pretty.rb +3 -7
  115. data/lib/ramaze/snippets/object/scope.rb +7 -9
  116. data/lib/ramaze/snippets/proc/locals.rb +12 -12
  117. data/lib/ramaze/snippets/ramaze/acquire.rb +15 -14
  118. data/lib/ramaze/snippets/ramaze/deprecated.rb +1 -1
  119. data/lib/ramaze/snippets/ramaze/fiber.rb +1 -1
  120. data/lib/ramaze/snippets/ramaze/lru_hash.rb +2 -3
  121. data/lib/ramaze/snippets/ramaze/struct.rb +2 -4
  122. data/lib/ramaze/snippets/string/camel_case.rb +8 -10
  123. data/lib/ramaze/snippets/string/color.rb +3 -4
  124. data/lib/ramaze/snippets/string/end_with.rb +3 -6
  125. data/lib/ramaze/snippets/string/esc.rb +3 -8
  126. data/lib/ramaze/snippets/string/ord.rb +3 -8
  127. data/lib/ramaze/snippets/string/snake_case.rb +6 -9
  128. data/lib/ramaze/snippets/string/start_with.rb +3 -8
  129. data/lib/ramaze/snippets/string/unindent.rb +3 -6
  130. data/lib/ramaze/snippets/thread/into.rb +1 -3
  131. data/lib/ramaze/spec.rb +2 -31
  132. data/lib/ramaze/spec/bacon.rb +18 -2
  133. data/lib/ramaze/version.rb +1 -1
  134. data/lib/ramaze/view.rb +1 -1
  135. data/ramaze.gemspec +1 -1
  136. data/spec/helper.rb +2 -1
  137. data/spec/ramaze/bin/start.rb +16 -20
  138. data/spec/ramaze/cache/localmemcache.rb +4 -7
  139. data/spec/ramaze/cache/memcache.rb +3 -1
  140. data/spec/ramaze/cache/redis.rb +62 -0
  141. data/spec/ramaze/helper/blue_form.rb +33 -4
  142. data/spec/ramaze/helper/layout.rb +40 -7
  143. data/spec/ramaze/helper/upload.rb +149 -0
  144. data/spec/ramaze/helper/uploads/text_1.txt +1 -0
  145. data/spec/ramaze/helper/uploads/text_2.txt +1 -0
  146. data/spec/ramaze/log/growl.rb +4 -6
  147. data/spec/ramaze/log/syslog.rb +6 -0
  148. data/spec/ramaze/view/lokar.rb +5 -0
  149. data/spec/ramaze/view/nagoro.rb +5 -0
  150. data/tasks/authors.rake +1 -1
  151. data/tasks/bacon.rake +14 -5
  152. data/tasks/changelog.rake +1 -1
  153. data/tasks/yard.rake +12 -4
  154. metadata +277 -239
  155. data/doc/LEGAL +0 -26
  156. data/examples/app/blog/README +0 -3
  157. data/examples/app/blog/controller/comment.rb +0 -45
  158. data/examples/app/blog/controller/entry.rb +0 -85
  159. data/examples/app/blog/controller/main.rb +0 -20
  160. data/examples/app/blog/controller/tag.rb +0 -9
  161. data/examples/app/blog/layout/default.nag +0 -31
  162. data/examples/app/blog/model/entry.rb +0 -89
  163. data/examples/app/blog/model/tag.rb +0 -36
  164. data/examples/app/blog/public/css/screen.css +0 -273
  165. data/examples/app/blog/spec/blog.rb +0 -87
  166. data/examples/app/blog/view/comment/form.nag +0 -10
  167. data/examples/app/blog/view/comment/show.nag +0 -16
  168. data/examples/app/blog/view/entry/edit.nag +0 -14
  169. data/examples/app/blog/view/entry/feed.atom.nag +0 -8
  170. data/examples/app/blog/view/entry/feed.rss.nag +0 -7
  171. data/examples/app/blog/view/entry/index.nag +0 -7
  172. data/examples/app/blog/view/entry/new.nag +0 -13
  173. data/examples/app/blog/view/entry/show.nag +0 -36
  174. data/examples/app/blog/view/feed.atom.nag +0 -18
  175. data/examples/app/blog/view/feed.rss.nag +0 -25
  176. data/examples/app/blog/view/index.nag +0 -6
  177. data/examples/app/blog/view/tag/index.nag +0 -5
  178. data/lib/proto/public/ramaze.png +0 -0
  179. data/lib/ramaze/rest.rb +0 -36
  180. data/spec/ramaze/rest.rb +0 -28
  181. data/tasks/rcov.rake +0 -22
@@ -0,0 +1,259 @@
1
+ # Introduction Tutorial
2
+
3
+ This tutorial focuses on teaching the basics of Ramaze. Before reading this
4
+ tutorial it's recommended that you first read some of the other chapters to get
5
+ a bit of an understanding what Ramaze really is and what it does. It's required
6
+ that you've read the following chapters before reading this tutorial (or any of
7
+ the other tutorials):
8
+
9
+ * {file:README READE}
10
+ * {file:general/installation Installation}
11
+
12
+ In this tutorial we'll cover te following:
13
+
14
+ * Creating applications and running them.
15
+ * Debugging applications using ``ramaze console``
16
+ * Basic introduction to controllers and views.
17
+
18
+ <div class="note todo">
19
+ <p>
20
+ <strong>Note</strong>: Do not blindly copy-paste the code found in this
21
+ tutorial. It's extremely important that you type it manually as this
22
+ makes the learning process much easier and faster.
23
+ </p>
24
+ </div>
25
+
26
+ ## Creating Applications
27
+
28
+ Creating applications can be done in two different ways, using the Ramaze
29
+ executable (called "ramaze") or by manually writing the code. In this tutorial
30
+ we'll use the last approach as it teaches more about what each file does. If
31
+ you're interested in learning more about the executable read the chapter
32
+ {file:general/ramaze_command Ramaze Command}.
33
+
34
+ The first step is to create our project directory, let's call it "tutorial"::
35
+
36
+ $ mkdir tutorial
37
+ $ cd tutorial
38
+
39
+ Each Ramaze application requires a Rackup configuration file ("config.ru") and
40
+ a base file that's used to load all the bits and pieces of your application,
41
+ typically called "app.rb". The Rackup configuration file is used to tell
42
+ webservers such as Thin or Unicorn how they should run Ramaze. Let's start with
43
+ the Rackup file:
44
+
45
+ require ::File.expand_path('../app', __FILE__)
46
+
47
+ Ramaze.start(:root => Ramaze.options.roots, :started => true)
48
+
49
+ run Ramaze
50
+
51
+ The first line of code is used to load our main file "app.rb" (more on this in
52
+ a bit). The path is constructed so that the file is loaded from the same
53
+ directory as the config.ru file. The next line is used to start Ramaze and tell
54
+ it that it's running as well as setting the root directory from which the
55
+ command should be executed. The last line simply tells Rack to start Ramaze.
56
+ Simple right? No? Well here's the good part, you should only have to write this
57
+ code once. If you're lazy you can just copy-paste the code above and save
58
+ yourself some time.
59
+
60
+ The next step is to create our app.rb file. Note that this file can be named
61
+ anything you like but in all the tutorials "app.rb" will be used, on top of
62
+ that it's somewhat of a standard so it's best to just stick with the name. The
63
+ contents of this file can be anything you like as long as it contains the
64
+ following two lines of code:
65
+
66
+ require 'rubygems' # Only required on Ruby < 1.9
67
+ require 'ramaze' # Always required
68
+
69
+ This will load the Ramaze gem, without it you won't be able to create a Ramaze
70
+ application. Besides this you'll obviously need to load a few more files in
71
+ order to get a working application. Let's create our first controller and load
72
+ it in this file, because we've already opened app.rb we'll just add the require
73
+ statement for it right away:
74
+
75
+ require __DIR__('controller/tutorial')
76
+
77
+ This line of code will tell Ruby to load the file "tutorial.rb" from
78
+ $DIR/controller/ where $DIR is the project directory. __DIR__ is a special
79
+ method provided by Ramaze that basically does the same as the following:
80
+
81
+ File.expand_path("../#{some_path}", __FILE__)
82
+
83
+ Whenever you want to load something relative to a file it's best to use
84
+ __DIR__ (or require_relative if you're on 1.9).
85
+
86
+ Right, time to create the controller we just loaded (don't actually start the
87
+ application, it will trigger an error!)::
88
+
89
+ $ mkdir controller/
90
+ $ touch controller/tutorial.rb
91
+
92
+ Now open the tutorial.rb file in your favorite editor. Obviously this file is
93
+ still empty so we'll need to add some code to the file. We'll be creating a
94
+ class called "Tutorial" that will be mapped to "/" (the root of your
95
+ application). This can be done as following:
96
+
97
+ class Tutorial < Ramaze::Controller
98
+ map '/'
99
+ end
100
+
101
+ It's important that you always extend Ramaze::Controller, whether it's extended
102
+ directly or via another class. Without this Ramaze won't recognize the class as
103
+ a controller nor will you be able to use controller specific methods.
104
+
105
+ ## Running Applications
106
+
107
+ Currently we have the following files:
108
+
109
+ * config.ru
110
+ * app.rb
111
+ * controller/tutorial.rb
112
+
113
+ Let's see if our application is working, start it with the following command::
114
+
115
+ $ ramaze start
116
+
117
+ If everything went well the output of this command should look like the
118
+ following::
119
+
120
+ [2011-05-24 17:37:31] INFO WEBrick 1.3.1
121
+ [2011-05-24 17:37:31] INFO ruby 1.9.2 (2011-02-18) [x86_64-darwin10.7.0]
122
+ [2011-05-24 17:37:31] INFO WEBrick::HTTPServer#start: pid=74568 port=7000
123
+
124
+ If you now were to navigate your browser to http://localhost:7000/ you'd get the
125
+ following response:
126
+
127
+ No action found at: "/"
128
+
129
+ This message is displayed because while there is a controller (Tutorial) it
130
+ doesn't have any methods available for the requested URI. Let's go ahead and add
131
+ a method to our controller, shut down WEBRick (Ctrl + C) and open the file
132
+ controller/tutorial.rb. Modify it so that it's code looks like the following:
133
+
134
+ class Tutorial < Ramaze::Controller
135
+ map '/'
136
+
137
+ def index
138
+ "Hello, world!"
139
+ end
140
+ end
141
+
142
+ Save the file and restart WEBRick using ``ramaze start``. If you now refresh
143
+ the page you'd see the message "Hello, world!" opposed to the "No action found.."
144
+ message. This is because we now have a method for the URI "/". Ramaze maps the
145
+ public methods of a controller to the URI of the controller. This means that if
146
+ you added another method to this controller named "cookie" you'd be able to
147
+ access it from /cookie. The method used for a URI of / is "index" by default but
148
+ this can be changed as following:
149
+
150
+ class Tutorial < Ramaze::Controller
151
+ map '/'
152
+
153
+ trait :default_action_name => 'default'
154
+
155
+ def default
156
+ "Hello, world!"
157
+ end
158
+ end
159
+
160
+ The trait() method is a method provided by Ramaze that can be used to set
161
+ configuration options in a class, don't worry about it for now.
162
+
163
+ Obviously a plain text message is boring, let's get started with "views". Views
164
+ are files that will contain the presentation layer (usually HTML) of your
165
+ application. In order to create a view we'll have to create a view directory
166
+ first::
167
+
168
+ $ mkdir view/
169
+
170
+ In order to render a view you'll have to create a view that matches a method's
171
+ name and is placed in the correct directory. In this case our method is called
172
+ "index" and the controller is mapped to /. This means that our view would be
173
+ located in view/index.xhtml. If our method was named "default" the view would
174
+ be in view/default.xhtml. If the controller was mapped to /cookie the view would
175
+ be located in view/cookie.index.xhtml and so on. Let's create and edit the file::
176
+
177
+ $ touch view/index.xhtml
178
+ $ $EDITOR view/index.xhtml
179
+
180
+ Just like all the other files this one is empty. A view can contain HTML and
181
+ Ruby code based on the template engine you're using. By default Ramaze uses
182
+ Etanni which allows you to wrap your Ruby code in #{} for outputting variables
183
+ and <?r ?> for statements:
184
+
185
+ <?r if !@username.nil? ?>
186
+ #{@username}
187
+ <?r end ?>
188
+
189
+ Let's add the following data to the view:
190
+
191
+ <p>Hello, #{@username}!</p>
192
+
193
+ Once this is done modify your Tutorial controller so that it looks like the
194
+ following:
195
+
196
+ class Tutorial < Ramaze::Controller
197
+ map '/'
198
+
199
+ def index
200
+ @username = "Ramaze"
201
+ end
202
+ end
203
+
204
+ From this point on all requests made to / will not result in a response of
205
+ "Hello, world!" but instead will display "Hello, Ramaze!". The cool thing is
206
+ that you don't have to manually load the view (but you still can if you like).
207
+ If the method of a controller has no return value Ramaze will try to load the
208
+ corresponding view.
209
+
210
+ ## Debugging Applications
211
+
212
+ Quite often you'll want to quickly look something up, say the list of available
213
+ methods of a class, in your application. A common approach is to restart your
214
+ application every time
215
+ you've made your changes but this can become really annoying. To solve this issue
216
+ Ramaze comes with the command ``ramaze console``. This command basically loads
217
+ IRB along with your application, allowing you to play with it without having to
218
+ restart your server every time.
219
+
220
+ In order for us to be able to use the console we'll have to add a new file to
221
+ our project, called "start.rb". start.rb works the same as config.ru but
222
+ instead of being used for Rackup it's used to tell Ramaze how to run it in IRB.
223
+ Create the file and open it in your editor ($EDITOR is the command used for
224
+ opening a file in your editor)::
225
+
226
+ $ touch start.rb
227
+ $ $EDITOR start.rb
228
+
229
+ Add the following code to it:
230
+
231
+ require File.expand_path('../app', __FILE__)
232
+
233
+ Ramaze.start(:adapter => :webrick, :port => 7000, :file => __FILE__)
234
+
235
+ Anything that looks familiar? This code is almost identical except that instead
236
+ of calling "run Ramaze" it invokes the Ramaze.start command without telling it
237
+ it will be started by something else (this is done using the :started option).
238
+ Don't bother too much about this file as it's pretty boring, save it and leave
239
+ it alone.
240
+
241
+ Now that we've added the required file we can invoke the console. This is done
242
+ as following::
243
+
244
+ $ ramaze console
245
+ ruby-1.9.2-p180 :001 >
246
+
247
+ You can use the console for everything you'd normally use IRB for but it comes
248
+ with the added value of being able to do Ramaze specific things::
249
+
250
+ ruby-1.9.2-p180 :001 > Ramaze.options.app.name
251
+ => :pristine
252
+
253
+ If you're done playing you can close the console with Ctrl + D.
254
+
255
+ And that's really about it. While we've only scratched the surface of Ramaze
256
+ we've already managed to write some Ramaze specific code as well as learning
257
+ how to use the console and how to start applications. The source code created in
258
+ this tutorial can be found here:
259
+ https://github.com/Ramaze/ramaze-user-guide-code/tree/master/introduction
@@ -14,6 +14,6 @@
14
14
  # 'start.rb' and use `ruby start.rb` instead.
15
15
  require ::File.expand_path('../app', __FILE__)
16
16
 
17
- Ramaze.start(:root => __DIR__, :started => true)
17
+ Ramaze.start(:root => Ramaze.options.roots, :started => true)
18
18
 
19
19
  run Ramaze
Binary file
@@ -19,27 +19,27 @@
19
19
  </ul>
20
20
 
21
21
  <p>
22
- For more information, check out <a href="http://ramaze.net">ramaze.net</a> and
22
+ For more information, check out <a href="http://ramaze.net">ramaze.net</a> and
23
23
  <a href="http://ramaze.net/documentation/index.html">the documentation</a>.
24
24
  <br />
25
- You can also read the
25
+ You can also read the
26
26
  <a href="http://doc.rubyists.com/ramaze%2binnate/">YARD documentation</a>
27
27
  or browse around the <a href="https://github.com/ramaze/ramaze">Ramaze source code</a>.
28
28
  </p>
29
29
 
30
30
  <p>
31
- For help with Ramaze, visit
31
+ For help with Ramaze, visit
32
32
  <a href="irc://chat.freenode.net/ramaze">#ramaze on irc.freenode.net</a>.
33
33
  <br />
34
- You can use <a href="http://embed.mibbit.com/?server=irc.freenode.net&channel=#ramaze,#ruby-lang&forcePrompt=true">Mibbit</a>,
35
- an AJAX based IRC client or
34
+ You can use <a href="http://embed.mibbit.com/?server=irc.freenode.net&amp;channel=%23ramaze,%23ruby-lang&amp;forcePrompt=true">Mibbit</a>,
35
+ an AJAX based IRC client or
36
36
  <a href="http://java.freenode.net/?channel=ramaze">
37
37
  the official freenode irc java applet
38
38
  </a>.
39
39
  </p>
40
40
 
41
41
  <p>
42
- Feel free to post to the
43
- <a href="https://groups.google.com/forum/#!forum/ramaze">Ramaze Google Group</a>, your
42
+ Feel free to post to the
43
+ <a href="https://groups.google.com/forum/#!forum/ramaze">Ramaze Google Group</a>, your
44
44
  first mail has to go through moderation, so please be patient.
45
45
  </p>
@@ -12,16 +12,16 @@
12
12
  module Ramaze
13
13
  ROOT = File.expand_path(File.dirname(__FILE__)) unless defined?(Ramaze::ROOT)
14
14
 
15
- unless $LOAD_PATH.any?{|lp| File.expand_path(lp) == ROOT }
16
- $LOAD_PATH.unshift(ROOT)
17
- end
18
-
19
15
  # 3rd party
20
16
  require 'innate'
21
17
 
22
18
  @options = Innate.options
23
19
  class << self; attr_accessor :options; end
24
20
 
21
+ unless $LOAD_PATH.any?{|lp| File.expand_path(lp) == ROOT }
22
+ $LOAD_PATH.unshift(ROOT)
23
+ end
24
+
25
25
  # vendored, will go into rack-contrib
26
26
  require 'vendor/route_exceptions'
27
27
 
@@ -1,8 +1,7 @@
1
1
  module Ramaze
2
- # An application is a collection of controllers and options that have a
3
- # common name.
4
- # Every application has a location it dispatches from, this behaves similar
5
- # to Rack::URLMap.
2
+ # An application is a collection of controllers and options that have a common
3
+ # name. Every application has a location it dispatches from, this behaves
4
+ # similar to Rack::URLMap.
6
5
  AppMap = Innate::URLMap.new
7
6
 
8
7
  #:nodoc:
@@ -11,18 +10,19 @@ module Ramaze
11
10
  App[app_name].to(object)
12
11
  end
13
12
 
13
+ ##
14
14
  # App is the superclass for applications and acts as their prototype when it
15
15
  # comes to configuration.
16
16
  #
17
17
  # An application consists of options, a location, and a list of objects. The
18
- # objects are usually {Controller}s.
18
+ # objects are usually {Ramaze::Controller}s.
19
19
  #
20
20
  # The options are inherited, the basics are set in Ramaze.options, from there
21
21
  # to Ramaze::App.options, and finally into every instance of App.
22
22
  #
23
- # This allows to collect {Controller}s of your application into a common
24
- # group that can easily be used in other applications, while retaining the
25
- # original options.
23
+ # This allows to collect {Ramaze::Controller}s of your application into a
24
+ # common group that can easily be used in other applications, while retaining
25
+ # the original options.
26
26
  #
27
27
  # Every instance of {App} is mapped in {AppMap}, which is the default
28
28
  # location to #call from Rack.
@@ -35,11 +35,10 @@ module Ramaze
35
35
  # also has a subset of middleware that handles serving static files, routes
36
36
  # and rewrites.
37
37
  #
38
- # To indicate that a {Controller} belongs to a specific application, you can
39
- # pass a second argument to {Controller::map}
38
+ # To indicate that a {Ramaze::Controller} belongs to a specific application,
39
+ # you can pass a second argument to {Ramaze::Controller::map}
40
40
  #
41
41
  # @example adding Controller to application
42
- #
43
42
  # class WikiController < Ramaze::Controller
44
43
  # map '/', :wiki
45
44
  # end
@@ -57,6 +56,7 @@ module Ramaze
57
56
  #
58
57
  # The naming of an App has no influence on any other aspects of dispatching
59
58
  # or configuration.
59
+ #
60
60
  class App
61
61
  include Innate::Optioned
62
62
 
@@ -5,14 +5,12 @@ module Ramaze
5
5
  # The AppGraph class can be used to generate a graph of all the URLs mapped in
6
6
  # a Ramaze application and saves this graph as an image.
7
7
  #
8
- # == Usage
9
- #
10
8
  # In order to generate a graph of your application all you need to do is the
11
9
  # following:
12
10
  #
13
- # require 'ramaze/app_graph'
11
+ # require 'ramaze/app_graph'
14
12
  #
15
- # graph = Ramaze::AppGraph.new graph.generate graph.show
13
+ # graph = Ramaze::AppGraph.new graph.generate graph.show
16
14
  #
17
15
  # Once this code is executed you can find the .dot and PNG files in the root
18
16
  # directory of your application.
@@ -8,10 +8,10 @@ module Ramaze
8
8
  # Allows the user to enter an IRB like session that takes advantage of
9
9
  # everything provided by Ramaze.
10
10
  #
11
- # == Usage
11
+ # Usage:
12
12
  #
13
- # ramaze console
14
- # ramaze console /path/to/app/start.rb
13
+ # ramaze console
14
+ # ramaze console /path/to/app/start.rb
15
15
  #
16
16
  # @author Yorick Peterse
17
17
  # @since 21-07-2011
@@ -7,9 +7,9 @@ module Ramaze
7
7
  # Simple command that allows users to easily create a new application based
8
8
  # on the prototype that ships with Ramaze.
9
9
  #
10
- # == Usage
10
+ # Usage:
11
11
  #
12
- # ramaze create blog
12
+ # ramaze create blog
13
13
  #
14
14
  # @author Yorick Peterse
15
15
  # @since 21-07-2011
@@ -6,11 +6,11 @@ module Ramaze
6
6
  # PID. The PID is used to kill the process, the Rackup file is used to start
7
7
  # the process again after it has been killed.
8
8
  #
9
- # == Usage
9
+ # Usage:
10
10
  #
11
- # ramaze restart
12
- # ramaze restart /home/foobar/projects/ramaze/ \
13
- # -P /home/foobar/projects/ramaze/ramaze.pid
11
+ # ramaze restart
12
+ # ramaze restart /home/foobar/projects/ramaze/ \
13
+ # -P /home/foobar/projects/ramaze/ramaze.pid
14
14
  #
15
15
  # @author Yorick Peterse
16
16
  # @since 21-07-2011
@@ -16,13 +16,13 @@ module Ramaze
16
16
  # Module used for running a particular command based on the specified
17
17
  # command line arguments.
18
18
  #
19
- # == Usage
19
+ # Usage:
20
20
  #
21
- # ramaze --help # Shows a help message
22
- # ramaze -h # Shows a help message as well
23
- # ramaze -v # Shows the version of Ramaze
21
+ # ramaze --help # Shows a help message
22
+ # ramaze -h # Shows a help message as well
23
+ # ramaze -v # Shows the version of Ramaze
24
24
  #
25
- # ramaze [COMMAND] # Runs [COMMAND]
25
+ # ramaze [COMMAND] # Runs [COMMAND]
26
26
  #
27
27
  # @author Yorick Peterse
28
28
  # @since 21-07-2011