merb-core 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +61 -11
- data/bin/merb +5 -1
- data/lib/merb-core.rb +202 -25
- data/lib/merb-core/autoload.rb +19 -17
- data/lib/merb-core/bootloader.rb +84 -71
- data/lib/merb-core/config.rb +19 -14
- data/lib/merb-core/controller/abstract_controller.rb +16 -17
- data/lib/merb-core/controller/exceptions.rb +115 -70
- data/lib/merb-core/controller/merb_controller.rb +62 -38
- data/lib/merb-core/controller/mime.rb +1 -1
- data/lib/merb-core/controller/mixins/authentication.rb +87 -0
- data/lib/merb-core/controller/mixins/controller.rb +16 -15
- data/lib/merb-core/controller/mixins/render.rb +113 -19
- data/lib/merb-core/controller/mixins/responder.rb +8 -2
- data/lib/merb-core/controller/template.rb +1 -1
- data/lib/merb-core/core_ext.rb +1 -0
- data/lib/merb-core/core_ext/class.rb +113 -6
- data/lib/merb-core/core_ext/hash.rb +43 -39
- data/lib/merb-core/core_ext/kernel.rb +75 -38
- data/lib/merb-core/core_ext/mash.rb +4 -4
- data/lib/merb-core/core_ext/object.rb +18 -7
- data/lib/merb-core/core_ext/set.rb +9 -4
- data/lib/merb-core/core_ext/string.rb +29 -9
- data/lib/merb-core/core_ext/time.rb +13 -0
- data/lib/merb-core/dispatch/cookies.rb +1 -2
- data/lib/merb-core/dispatch/dispatcher.rb +18 -10
- data/lib/merb-core/dispatch/exceptions.html.erb +1 -1
- data/lib/merb-core/dispatch/request.rb +3 -0
- data/lib/merb-core/dispatch/router.rb +10 -7
- data/lib/merb-core/dispatch/router/behavior.rb +36 -27
- data/lib/merb-core/dispatch/router/route.rb +7 -2
- data/lib/merb-core/dispatch/session/cookie.rb +4 -4
- data/lib/merb-core/dispatch/session/memcached.rb +17 -5
- data/lib/merb-core/logger.rb +2 -2
- data/lib/merb-core/plugins.rb +16 -4
- data/lib/merb-core/rack/adapter/ebb.rb +4 -1
- data/lib/merb-core/rack/adapter/evented_mongrel.rb +2 -0
- data/lib/merb-core/rack/adapter/fcgi.rb +1 -0
- data/lib/merb-core/rack/adapter/mongrel.rb +1 -0
- data/lib/merb-core/rack/adapter/runner.rb +1 -0
- data/lib/merb-core/rack/adapter/thin.rb +3 -1
- data/lib/merb-core/rack/adapter/webrick.rb +1 -0
- data/lib/merb-core/rack/application.rb +17 -1
- data/lib/merb-core/server.rb +78 -28
- data/lib/merb-core/test/helpers/multipart_request_helper.rb +3 -3
- data/lib/merb-core/test/helpers/request_helper.rb +81 -27
- data/lib/merb-core/test/helpers/view_helper.rb +1 -1
- data/lib/merb-core/test/matchers/controller_matchers.rb +55 -5
- data/lib/merb-core/test/matchers/route_matchers.rb +8 -17
- data/lib/merb-core/test/matchers/view_matchers.rb +53 -11
- data/lib/merb-core/test/run_specs.rb +22 -14
- data/lib/merb-core/test/tasks/spectasks.rb +54 -33
- data/lib/merb-core/vendor/facets/inflect.rb +91 -2
- data/lib/merb-core/version.rb +2 -2
- data/spec/private/config/config_spec.rb +54 -26
- data/spec/private/core_ext/class_spec.rb +22 -0
- data/spec/private/core_ext/hash_spec.rb +70 -54
- data/spec/private/core_ext/kernel_spec.rb +149 -14
- data/spec/private/core_ext/object_spec.rb +92 -10
- data/spec/private/core_ext/string_spec.rb +162 -4
- data/spec/private/core_ext/time_spec.rb +16 -0
- data/spec/private/dispatch/bootloader_spec.rb +24 -0
- data/spec/private/dispatch/fixture/app/views/exeptions/client_error.html.erb +1 -1
- data/spec/private/dispatch/fixture/app/views/exeptions/internal_server_error.html.erb +1 -1
- data/spec/private/dispatch/fixture/app/views/exeptions/not_acceptable.html.erb +1 -1
- data/spec/private/dispatch/fixture/app/views/exeptions/not_found.html.erb +1 -1
- data/spec/private/dispatch/fixture/config/black_hole.rb +12 -0
- data/spec/private/dispatch/fixture/log/merb_test.log +138 -0
- data/spec/private/plugins/plugin_spec.rb +79 -8
- data/spec/private/rack/application_spec.rb +1 -1
- data/spec/public/abstract_controller/controllers/filters.rb +26 -0
- data/spec/public/abstract_controller/controllers/helpers.rb +2 -2
- data/spec/public/abstract_controller/controllers/partial.rb +2 -2
- data/spec/public/abstract_controller/controllers/render.rb +16 -4
- data/spec/public/abstract_controller/filter_spec.rb +8 -0
- data/spec/public/abstract_controller/render_spec.rb +12 -0
- data/spec/public/controller/authentication_spec.rb +103 -0
- data/spec/public/controller/base_spec.rb +4 -3
- data/spec/public/controller/controllers/authentication.rb +47 -0
- data/spec/public/controller/controllers/base.rb +1 -0
- data/spec/public/controller/controllers/display.rb +30 -0
- data/spec/public/controller/controllers/views/layout/custom_arg.html.erb +1 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/display_with_template_argument/index.html.erb +1 -0
- data/spec/public/controller/display_spec.rb +17 -0
- data/spec/public/controller/spec_helper.rb +1 -0
- data/spec/public/controller/url_spec.rb +25 -7
- data/spec/public/core/merb_core_spec.rb +34 -0
- data/spec/public/directory_structure/directory/app/controllers/custom.rb +2 -2
- data/spec/public/directory_structure/directory/log/merb_test.log +48 -0
- data/spec/public/logger/logger_spec.rb +10 -4
- data/spec/public/reloading/directory/app/controllers/reload.rb +1 -1
- data/spec/public/reloading/directory/log/merb_test.log +13 -0
- data/spec/public/reloading/reload_spec.rb +23 -22
- data/spec/public/request/request_spec.rb +2 -0
- data/spec/public/router/nested_resources_spec.rb +7 -0
- data/spec/public/router/resources_spec.rb +46 -1
- data/spec/public/router/special_spec.rb +5 -1
- data/spec/public/test/controller_matchers_spec.rb +25 -1
- data/spec/public/test/controllers/spec_helper_controller.rb +8 -0
- data/spec/public/test/request_helper_spec.rb +52 -1
- data/spec/public/test/route_matchers_spec.rb +27 -25
- data/spec/public/test/view_helper_spec.rb +1 -1
- data/spec/public/test/view_matchers_spec.rb +148 -72
- metadata +23 -3
data/lib/merb-core/config.rb
CHANGED
|
@@ -21,7 +21,8 @@ module Merb
|
|
|
21
21
|
:session_id_key => "_session_id",
|
|
22
22
|
:log_delimiter => " ~ ",
|
|
23
23
|
:log_auto_flush => false,
|
|
24
|
-
:disabled_components => []
|
|
24
|
+
:disabled_components => [],
|
|
25
|
+
:deferred_actions => []
|
|
25
26
|
}
|
|
26
27
|
end
|
|
27
28
|
|
|
@@ -90,7 +91,7 @@ module Merb
|
|
|
90
91
|
# ==== Returns
|
|
91
92
|
# String:: The config as YAML.
|
|
92
93
|
def to_yaml
|
|
93
|
-
@configuration.to_yaml
|
|
94
|
+
@configuration.to_yaml
|
|
94
95
|
end
|
|
95
96
|
|
|
96
97
|
# Sets up the configuration by storing the given settings.
|
|
@@ -120,7 +121,7 @@ module Merb
|
|
|
120
121
|
opts.release = Merb::RELEASE
|
|
121
122
|
|
|
122
123
|
opts.banner = "Usage: merb [uGdcIpPhmailLerkKX] [argument]"
|
|
123
|
-
opts.define_head "Merb
|
|
124
|
+
opts.define_head "Merb. Pocket rocket web framework"
|
|
124
125
|
opts.separator '*'*80
|
|
125
126
|
opts.separator 'If no flags are given, Merb starts in the foreground on port 4000.'
|
|
126
127
|
opts.separator '*'*80
|
|
@@ -141,7 +142,7 @@ module Merb
|
|
|
141
142
|
options[:cluster] = nodes
|
|
142
143
|
end
|
|
143
144
|
|
|
144
|
-
opts.on("-I", "--init-file FILE", "
|
|
145
|
+
opts.on("-I", "--init-file FILE", "File to use for initialization on load, defaults to config/init.rb") do |init_file|
|
|
145
146
|
options[:init_file] = init_file
|
|
146
147
|
end
|
|
147
148
|
|
|
@@ -161,14 +162,18 @@ module Merb
|
|
|
161
162
|
options[:merb_root] = File.expand_path(root)
|
|
162
163
|
end
|
|
163
164
|
|
|
164
|
-
opts.on("-a", "--adapter mongrel", "The rack adapter to use to run merb[mongrel, emongrel, thin, fastcgi, webrick, runner, irb]") do |adapter|
|
|
165
|
+
opts.on("-a", "--adapter mongrel", "The rack adapter to use to run merb[mongrel, emongrel, thin, ebb, fastcgi, webrick, runner, irb]") do |adapter|
|
|
165
166
|
options[:adapter] = adapter
|
|
166
167
|
end
|
|
167
168
|
|
|
169
|
+
opts.on("-R", "--rackup FILE", "Load an alternate Rack config file (default is config/rack.rb)") do |rackup|
|
|
170
|
+
options[:rackup] = rackup
|
|
171
|
+
end
|
|
172
|
+
|
|
168
173
|
opts.on("-i", "--irb-console", "This flag will start merb in irb console mode. All your models and other classes will be available for you in an irb session.") do |console|
|
|
169
174
|
options[:adapter] = 'irb'
|
|
170
175
|
end
|
|
171
|
-
|
|
176
|
+
|
|
172
177
|
opts.on("-S", "--sandbox", "This flag will enable a sandboxed irb console. If your ORM supports transactions, all edits will be rolled back on exit.") do |sandbox|
|
|
173
178
|
options[:sandbox] = true
|
|
174
179
|
end
|
|
@@ -185,20 +190,20 @@ module Merb
|
|
|
185
190
|
options[:environment] = env
|
|
186
191
|
end
|
|
187
192
|
|
|
188
|
-
opts.on("-r", "--script-runner ['RUBY CODE'| FULL_SCRIPT_PATH]",
|
|
193
|
+
opts.on("-r", "--script-runner ['RUBY CODE'| FULL_SCRIPT_PATH]",
|
|
189
194
|
"Command-line option to run scripts and/or code in the merb app.") do |code_or_file|
|
|
190
195
|
options[:runner_code] = code_or_file
|
|
191
196
|
options[:adapter] = 'runner'
|
|
192
197
|
end
|
|
193
198
|
|
|
194
199
|
opts.on("-K", "--graceful PORT or all", "Gracefully kill one merb proceses by port number. Use merb -K all to gracefully kill all merbs.") do |ports|
|
|
195
|
-
|
|
196
|
-
|
|
200
|
+
options[:action] = :kill
|
|
201
|
+
options[:port] = ports
|
|
197
202
|
end
|
|
198
203
|
|
|
199
204
|
opts.on("-k", "--kill PORT or all", "Kill one merb proceses by port number. Use merb -k all to kill all merbs.") do |port|
|
|
200
|
-
|
|
201
|
-
|
|
205
|
+
options[:action] = :kill_9
|
|
206
|
+
options[:port] = port
|
|
202
207
|
end
|
|
203
208
|
|
|
204
209
|
opts.on("-X", "--mutex on/off", "This flag is for turning the mutex lock on and off.") do |mutex|
|
|
@@ -206,7 +211,7 @@ module Merb
|
|
|
206
211
|
options[:use_mutex] = false
|
|
207
212
|
else
|
|
208
213
|
options[:use_mutex] = true
|
|
209
|
-
end
|
|
214
|
+
end
|
|
210
215
|
end
|
|
211
216
|
|
|
212
217
|
opts.on("-D", "--debugger", "Run merb using rDebug.") do
|
|
@@ -222,7 +227,7 @@ module Merb
|
|
|
222
227
|
end
|
|
223
228
|
|
|
224
229
|
opts.on("-?", "-H", "--help", "Show this help message") do
|
|
225
|
-
puts opts
|
|
230
|
+
puts opts
|
|
226
231
|
exit
|
|
227
232
|
end
|
|
228
233
|
end
|
|
@@ -249,7 +254,7 @@ module Merb
|
|
|
249
254
|
def configure(&block)
|
|
250
255
|
ConfigBlock.new(self, &block) if block_given?
|
|
251
256
|
end
|
|
252
|
-
|
|
257
|
+
|
|
253
258
|
# Allows retrieval of single key config values via Merb.config.<key>
|
|
254
259
|
# Allows single key assignment via Merb.config.<key> = ...
|
|
255
260
|
#
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# ==== Examples
|
|
15
15
|
# before :some_filter
|
|
16
16
|
# before :authenticate, :exclude => [:login, :signup]
|
|
17
|
+
# before :has_role, :with => ["Admin"], :exclude => [:index,:show]
|
|
17
18
|
# before Proc.new {|c| c.some_method }, :only => :foo
|
|
18
19
|
# before :authorize, :unless => logged_in?
|
|
19
20
|
#
|
|
@@ -89,7 +90,7 @@ class Merb::AbstractController
|
|
|
89
90
|
# structure for your app.
|
|
90
91
|
#
|
|
91
92
|
# ==== Parameters
|
|
92
|
-
#
|
|
93
|
+
# context<~to_s>:: The controller context (the action or template name).
|
|
93
94
|
# type<~to_s>:: The content type. Defaults to nil.
|
|
94
95
|
# controller<~to_s>::
|
|
95
96
|
# The name of the controller. Defaults to controller_name.
|
|
@@ -98,9 +99,9 @@ class Merb::AbstractController
|
|
|
98
99
|
# ==== Returns
|
|
99
100
|
# String::
|
|
100
101
|
# Indicating where to look for the template for the current controller,
|
|
101
|
-
#
|
|
102
|
+
# context, and content-type.
|
|
102
103
|
#
|
|
103
|
-
# ====
|
|
104
|
+
# ==== Notes
|
|
104
105
|
# The type is irrelevant for controller-types that don't support
|
|
105
106
|
# content-type negotiation, so we default to not include it in the
|
|
106
107
|
# superclass.
|
|
@@ -114,8 +115,8 @@ class Merb::AbstractController
|
|
|
114
115
|
# of controller/action.mime.type
|
|
115
116
|
#---
|
|
116
117
|
# @public
|
|
117
|
-
def _template_location(
|
|
118
|
-
"#{controller}/#{
|
|
118
|
+
def _template_location(context, type = nil, controller = controller_name)
|
|
119
|
+
controller ? "#{controller}/#{context}" : context
|
|
119
120
|
end
|
|
120
121
|
|
|
121
122
|
# ==== Returns
|
|
@@ -158,15 +159,6 @@ class Merb::AbstractController
|
|
|
158
159
|
HERE
|
|
159
160
|
super
|
|
160
161
|
end
|
|
161
|
-
|
|
162
|
-
# ==== Parameters
|
|
163
|
-
# layout<~to_s>:: The layout that should be used for this class
|
|
164
|
-
#
|
|
165
|
-
# ==== Returns
|
|
166
|
-
# ~to_s:: The layout that was passed in
|
|
167
|
-
def layout(layout)
|
|
168
|
-
self._layout = layout
|
|
169
|
-
end
|
|
170
162
|
end
|
|
171
163
|
|
|
172
164
|
attr_accessor :_benchmarks, :_thrown_content
|
|
@@ -218,6 +210,7 @@ class Merb::AbstractController
|
|
|
218
210
|
_call_filters(_after_filters)
|
|
219
211
|
@_benchmarks[:after_filters_time] = Time.now - start if _after_filters
|
|
220
212
|
finalize_session
|
|
213
|
+
@body
|
|
221
214
|
end
|
|
222
215
|
|
|
223
216
|
# This method exists to provide an overridable hook for ActionArgs
|
|
@@ -247,7 +240,13 @@ class Merb::AbstractController
|
|
|
247
240
|
(filter_set || []).each do |filter, rule|
|
|
248
241
|
if _call_filter_for_action?(rule, action_name) && _filter_condition_met?(rule)
|
|
249
242
|
case filter
|
|
250
|
-
when Symbol, String
|
|
243
|
+
when Symbol, String
|
|
244
|
+
if rule.key?(:with)
|
|
245
|
+
args = rule[:with]
|
|
246
|
+
send(filter, *args)
|
|
247
|
+
else
|
|
248
|
+
send(filter)
|
|
249
|
+
end
|
|
251
250
|
when Proc then self.instance_eval(&filter)
|
|
252
251
|
end
|
|
253
252
|
end
|
|
@@ -323,7 +322,7 @@ class Merb::AbstractController
|
|
|
323
322
|
# Filter options (see class documentation under <tt>Filter Options</tt>).
|
|
324
323
|
# &block:: Currently ignored.
|
|
325
324
|
#
|
|
326
|
-
# ====
|
|
325
|
+
# ==== Notes
|
|
327
326
|
# If the filter already exists, its options will be replaced with opts.
|
|
328
327
|
def self.after(filter = nil, opts = {}, &block)
|
|
329
328
|
add_filter(self._after_filters, filter, opts)
|
|
@@ -335,7 +334,7 @@ class Merb::AbstractController
|
|
|
335
334
|
# Filter options (see class documentation under <tt>Filter Options</tt>).
|
|
336
335
|
# &block:: A block to use as a filter if filter is nil.
|
|
337
336
|
#
|
|
338
|
-
# ====
|
|
337
|
+
# ==== Notes
|
|
339
338
|
# If the filter already exists, its options will be replaced with opts.
|
|
340
339
|
def self.before(filter = nil, opts = {}, &block)
|
|
341
340
|
add_filter(self._before_filters, filter || block, opts)
|
|
@@ -58,7 +58,7 @@ module Merb
|
|
|
58
58
|
# "team@cowboys.com",
|
|
59
59
|
# "Exception occured at #{Time.now}",
|
|
60
60
|
# params[:exception])
|
|
61
|
-
# render
|
|
61
|
+
# render 'Something is wrong, but the team are on it!'
|
|
62
62
|
# end
|
|
63
63
|
#
|
|
64
64
|
# Note: The special param[:exception] is available in all Exception actions
|
|
@@ -101,135 +101,180 @@ module Merb
|
|
|
101
101
|
# String:: The snake cased name of the error without the namespace.
|
|
102
102
|
def name; self.class.name; end
|
|
103
103
|
|
|
104
|
-
#
|
|
105
|
-
#
|
|
106
|
-
def self.
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
# === Returns
|
|
105
|
+
# Integer:: The status-code of the error.
|
|
106
|
+
def status; self.class.status; end
|
|
107
|
+
alias :to_i :status
|
|
108
|
+
|
|
109
|
+
class << self
|
|
110
|
+
|
|
111
|
+
# ==== Returns
|
|
112
|
+
# String:: The snake cased name of the class without the namespace.
|
|
113
|
+
def name
|
|
114
|
+
self.to_s.split('::').last.snake_case
|
|
115
|
+
end
|
|
109
116
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
# Get the actual status-code for an Exception class.
|
|
118
|
+
#
|
|
119
|
+
# As usual, this can come from a constant upwards in
|
|
120
|
+
# the inheritance chain.
|
|
121
|
+
#
|
|
122
|
+
# ==== Returns
|
|
123
|
+
# Fixnum:: The status code of this exception.
|
|
124
|
+
def status
|
|
125
|
+
const_get(:STATUS) rescue 0
|
|
126
|
+
end
|
|
127
|
+
alias :to_i :status
|
|
128
|
+
|
|
129
|
+
# Set the actual status-code for an Exception class.
|
|
130
|
+
#
|
|
131
|
+
# If possible, set the STATUS constant, and update
|
|
132
|
+
# any previously registered (inherited) status-code.
|
|
133
|
+
#
|
|
134
|
+
# ==== Parameters
|
|
135
|
+
# num<~to_i>:: The status code
|
|
136
|
+
def status=(num)
|
|
137
|
+
unless self.status?
|
|
138
|
+
register_status_code(self, num)
|
|
139
|
+
self.const_set(:STATUS, num.to_i)
|
|
140
|
+
end
|
|
141
|
+
end
|
|
117
142
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
143
|
+
# See if a status-code has been defined (on self explicitly).
|
|
144
|
+
#
|
|
145
|
+
# ==== Returns
|
|
146
|
+
# Boolean:: Whether the a status code has been set
|
|
147
|
+
def status?
|
|
148
|
+
self.const_defined?(:STATUS)
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Registers any subclasses with status codes for easy lookup by
|
|
152
|
+
# set_status in Merb::Controller.
|
|
153
|
+
#
|
|
154
|
+
# Inheritance ensures this method gets inherited by any subclasses, so
|
|
155
|
+
# it goes all the way down the chain of inheritance.
|
|
156
|
+
#
|
|
157
|
+
# ==== Parameters
|
|
158
|
+
#
|
|
159
|
+
# subclass<Merb::ControllerExceptions::Base>::
|
|
160
|
+
# The Exception class that is inheriting from Merb::ControllerExceptions::Base
|
|
161
|
+
def inherited(subclass)
|
|
162
|
+
# don't set the constant yet - any class methods will be called after self.inherited
|
|
163
|
+
# unless self.status = ... is set explicitly, the status code will be inherited
|
|
164
|
+
register_status_code(subclass, self.status) if self.status?
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
private
|
|
168
|
+
|
|
169
|
+
# Register the status-code for an Exception class.
|
|
170
|
+
#
|
|
171
|
+
# ==== Parameters
|
|
172
|
+
# num<~to_i>:: The status code
|
|
173
|
+
def register_status_code(klass, code)
|
|
174
|
+
STATUS_CODES[klass.name.to_sym] = code.to_i
|
|
131
175
|
end
|
|
176
|
+
|
|
132
177
|
end
|
|
133
178
|
end
|
|
134
179
|
|
|
135
180
|
class Informational < Merb::ControllerExceptions::Base; end
|
|
136
181
|
|
|
137
|
-
class Continue < Merb::ControllerExceptions::Informational;
|
|
182
|
+
class Continue < Merb::ControllerExceptions::Informational; self.status = 100; end
|
|
138
183
|
|
|
139
|
-
class SwitchingProtocols < Merb::ControllerExceptions::Informational;
|
|
184
|
+
class SwitchingProtocols < Merb::ControllerExceptions::Informational; self.status = 101; end
|
|
140
185
|
|
|
141
186
|
class Successful < Merb::ControllerExceptions::Base; end
|
|
142
187
|
|
|
143
|
-
class OK < Merb::ControllerExceptions::Successful;
|
|
188
|
+
class OK < Merb::ControllerExceptions::Successful; self.status = 200; end
|
|
144
189
|
|
|
145
|
-
class Created < Merb::ControllerExceptions::Successful;
|
|
190
|
+
class Created < Merb::ControllerExceptions::Successful; self.status = 201; end
|
|
146
191
|
|
|
147
|
-
class Accepted < Merb::ControllerExceptions::Successful;
|
|
192
|
+
class Accepted < Merb::ControllerExceptions::Successful; self.status = 202; end
|
|
148
193
|
|
|
149
|
-
class NonAuthoritativeInformation < Merb::ControllerExceptions::Successful;
|
|
194
|
+
class NonAuthoritativeInformation < Merb::ControllerExceptions::Successful; self.status = 203; end
|
|
150
195
|
|
|
151
|
-
class NoContent < Merb::ControllerExceptions::Successful;
|
|
196
|
+
class NoContent < Merb::ControllerExceptions::Successful; self.status = 204; end
|
|
152
197
|
|
|
153
|
-
class ResetContent < Merb::ControllerExceptions::Successful;
|
|
198
|
+
class ResetContent < Merb::ControllerExceptions::Successful; self.status = 205; end
|
|
154
199
|
|
|
155
|
-
class PartialContent < Merb::ControllerExceptions::Successful;
|
|
200
|
+
class PartialContent < Merb::ControllerExceptions::Successful; self.status = 206; end
|
|
156
201
|
|
|
157
202
|
class Redirection < Merb::ControllerExceptions::Base; end
|
|
158
203
|
|
|
159
|
-
class MultipleChoices < Merb::ControllerExceptions::Redirection;
|
|
204
|
+
class MultipleChoices < Merb::ControllerExceptions::Redirection; self.status = 300; end
|
|
160
205
|
|
|
161
|
-
class MovedPermanently < Merb::ControllerExceptions::Redirection;
|
|
206
|
+
class MovedPermanently < Merb::ControllerExceptions::Redirection; self.status = 301; end
|
|
162
207
|
|
|
163
|
-
class MovedTemporarily < Merb::ControllerExceptions::Redirection;
|
|
208
|
+
class MovedTemporarily < Merb::ControllerExceptions::Redirection; self.status = 302; end
|
|
164
209
|
|
|
165
|
-
class SeeOther < Merb::ControllerExceptions::Redirection;
|
|
210
|
+
class SeeOther < Merb::ControllerExceptions::Redirection; self.status = 303; end
|
|
166
211
|
|
|
167
|
-
class NotModified < Merb::ControllerExceptions::Redirection;
|
|
212
|
+
class NotModified < Merb::ControllerExceptions::Redirection; self.status = 304; end
|
|
168
213
|
|
|
169
|
-
class UseProxy < Merb::ControllerExceptions::Redirection;
|
|
214
|
+
class UseProxy < Merb::ControllerExceptions::Redirection; self.status = 305; end
|
|
170
215
|
|
|
171
|
-
class TemporaryRedirect < Merb::ControllerExceptions::Redirection;
|
|
216
|
+
class TemporaryRedirect < Merb::ControllerExceptions::Redirection; self.status = 307; end
|
|
172
217
|
|
|
173
218
|
class ClientError < Merb::ControllerExceptions::Base; end
|
|
174
219
|
|
|
175
|
-
class BadRequest < Merb::ControllerExceptions::ClientError;
|
|
220
|
+
class BadRequest < Merb::ControllerExceptions::ClientError; self.status = 400; end
|
|
176
221
|
|
|
177
|
-
|
|
222
|
+
class MultiPartParseError < Merb::ControllerExceptions::BadRequest; end
|
|
178
223
|
|
|
179
|
-
class Unauthorized < Merb::ControllerExceptions::ClientError;
|
|
224
|
+
class Unauthorized < Merb::ControllerExceptions::ClientError; self.status = 401; end
|
|
180
225
|
|
|
181
|
-
class PaymentRequired < Merb::ControllerExceptions::ClientError;
|
|
226
|
+
class PaymentRequired < Merb::ControllerExceptions::ClientError; self.status = 402; end
|
|
182
227
|
|
|
183
|
-
class Forbidden < Merb::ControllerExceptions::ClientError;
|
|
228
|
+
class Forbidden < Merb::ControllerExceptions::ClientError; self.status = 403; end
|
|
184
229
|
|
|
185
|
-
class NotFound < Merb::ControllerExceptions::ClientError;
|
|
230
|
+
class NotFound < Merb::ControllerExceptions::ClientError; self.status = 404; end
|
|
186
231
|
|
|
187
|
-
|
|
232
|
+
class ActionNotFound < Merb::ControllerExceptions::NotFound; end
|
|
188
233
|
|
|
189
|
-
|
|
234
|
+
class TemplateNotFound < Merb::ControllerExceptions::NotFound; end
|
|
190
235
|
|
|
191
|
-
|
|
236
|
+
class LayoutNotFound < Merb::ControllerExceptions::NotFound; end
|
|
192
237
|
|
|
193
|
-
class MethodNotAllowed < Merb::ControllerExceptions::ClientError;
|
|
238
|
+
class MethodNotAllowed < Merb::ControllerExceptions::ClientError; self.status = 405; end
|
|
194
239
|
|
|
195
|
-
class NotAcceptable < Merb::ControllerExceptions::ClientError;
|
|
240
|
+
class NotAcceptable < Merb::ControllerExceptions::ClientError; self.status = 406; end
|
|
196
241
|
|
|
197
|
-
class ProxyAuthenticationRequired < Merb::ControllerExceptions::ClientError;
|
|
242
|
+
class ProxyAuthenticationRequired < Merb::ControllerExceptions::ClientError; self.status = 407; end
|
|
198
243
|
|
|
199
|
-
class RequestTimeout < Merb::ControllerExceptions::ClientError;
|
|
244
|
+
class RequestTimeout < Merb::ControllerExceptions::ClientError; self.status = 408; end
|
|
200
245
|
|
|
201
|
-
class Conflict < Merb::ControllerExceptions::ClientError;
|
|
246
|
+
class Conflict < Merb::ControllerExceptions::ClientError; self.status = 409; end
|
|
202
247
|
|
|
203
|
-
class Gone < Merb::ControllerExceptions::ClientError;
|
|
248
|
+
class Gone < Merb::ControllerExceptions::ClientError; self.status = 410; end
|
|
204
249
|
|
|
205
|
-
class LengthRequired < Merb::ControllerExceptions::ClientError;
|
|
250
|
+
class LengthRequired < Merb::ControllerExceptions::ClientError; self.status = 411; end
|
|
206
251
|
|
|
207
|
-
class PreconditionFailed < Merb::ControllerExceptions::ClientError;
|
|
252
|
+
class PreconditionFailed < Merb::ControllerExceptions::ClientError; self.status = 412; end
|
|
208
253
|
|
|
209
|
-
class RequestEntityTooLarge < Merb::ControllerExceptions::ClientError;
|
|
254
|
+
class RequestEntityTooLarge < Merb::ControllerExceptions::ClientError; self.status = 413; end
|
|
210
255
|
|
|
211
|
-
class RequestURITooLarge < Merb::ControllerExceptions::ClientError;
|
|
256
|
+
class RequestURITooLarge < Merb::ControllerExceptions::ClientError; self.status = 414; end
|
|
212
257
|
|
|
213
|
-
class UnsupportedMediaType < Merb::ControllerExceptions::ClientError;
|
|
258
|
+
class UnsupportedMediaType < Merb::ControllerExceptions::ClientError; self.status = 415; end
|
|
214
259
|
|
|
215
|
-
class RequestRangeNotSatisfiable < Merb::ControllerExceptions::ClientError;
|
|
260
|
+
class RequestRangeNotSatisfiable < Merb::ControllerExceptions::ClientError; self.status = 416; end
|
|
216
261
|
|
|
217
|
-
class ExpectationFailed < Merb::ControllerExceptions::ClientError;
|
|
262
|
+
class ExpectationFailed < Merb::ControllerExceptions::ClientError; self.status = 417; end
|
|
218
263
|
|
|
219
264
|
class ServerError < Merb::ControllerExceptions::Base; end
|
|
220
265
|
|
|
221
|
-
class NotImplemented < Merb::ControllerExceptions::ServerError;
|
|
266
|
+
class NotImplemented < Merb::ControllerExceptions::ServerError; self.status = 501; end
|
|
222
267
|
|
|
223
|
-
class BadGateway < Merb::ControllerExceptions::ServerError;
|
|
268
|
+
class BadGateway < Merb::ControllerExceptions::ServerError; self.status = 502; end
|
|
224
269
|
|
|
225
|
-
class ServiceUnavailable < Merb::ControllerExceptions::ServerError;
|
|
270
|
+
class ServiceUnavailable < Merb::ControllerExceptions::ServerError; self.status = 503; end
|
|
226
271
|
|
|
227
|
-
class GatewayTimeout < Merb::ControllerExceptions::ServerError;
|
|
272
|
+
class GatewayTimeout < Merb::ControllerExceptions::ServerError; self.status = 504; end
|
|
228
273
|
|
|
229
|
-
class HTTPVersionNotSupported < Merb::ControllerExceptions::ServerError;
|
|
274
|
+
class HTTPVersionNotSupported < Merb::ControllerExceptions::ServerError; self.status = 505; end
|
|
230
275
|
|
|
231
276
|
class InternalServerError < Merb::ControllerExceptions::ServerError #:doc:
|
|
232
|
-
|
|
277
|
+
self.status = 500;
|
|
233
278
|
# DEFAULT_TEMPLATE = ::Merb::Dispatcher::DEFAULT_ERROR_TEMPLATE
|
|
234
279
|
def initialize(exception = nil)
|
|
235
280
|
@exception = exception
|