merb-core 1.0.6.1 → 1.0.7
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/lib/merb-core/bootloader.rb
CHANGED
@@ -255,7 +255,7 @@ class Merb::BootLoader::DropPidFile < Merb::BootLoader
|
|
255
255
|
#
|
256
256
|
# :api: plugin
|
257
257
|
def run
|
258
|
-
Merb::Server.store_pid("main")
|
258
|
+
Merb::Server.store_pid("main") if Merb::Config[:daemonize] || Merb::Config[:cluster]
|
259
259
|
nil
|
260
260
|
end
|
261
261
|
end
|
@@ -15,6 +15,10 @@ module Merb::RenderMixin
|
|
15
15
|
|
16
16
|
module ClassMethods
|
17
17
|
|
18
|
+
def _templates_for
|
19
|
+
@_templates_for ||= {}
|
20
|
+
end
|
21
|
+
|
18
22
|
# Return the default render options.
|
19
23
|
#
|
20
24
|
# ==== Returns
|
@@ -293,8 +297,8 @@ module Merb::RenderMixin
|
|
293
297
|
template_path = File.dirname(template) / "_#{File.basename(template)}"
|
294
298
|
else
|
295
299
|
kontroller = (m = template.match(/.*(?=\/)/)) ? m[0] : controller_name
|
296
|
-
template = "_#{File.basename(template)}"
|
297
300
|
end
|
301
|
+
template = "_#{File.basename(template)}"
|
298
302
|
|
299
303
|
# This handles no :with as well
|
300
304
|
with = [opts.delete(:with)].flatten
|
@@ -408,28 +412,31 @@ module Merb::RenderMixin
|
|
408
412
|
#
|
409
413
|
# :api: private
|
410
414
|
def _template_for(context, content_type, controller=nil, template=nil, locals=[])
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
if template.is_a?(String) && template =~ %r{^/}
|
415
|
-
template_location = self._absolute_template_location(template, content_type)
|
416
|
-
return [_template_method_for(template_location, locals), template_location]
|
417
|
-
end
|
415
|
+
self.class._templates_for[[context, content_type, controller, template, locals]] ||= begin
|
416
|
+
|
417
|
+
template_method, template_location = nil, nil
|
418
418
|
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
# :layout => "foo" where root / "layouts" / "#{controller}.html.*" exists
|
424
|
-
else
|
425
|
-
template_location = root / self.send(template_meth, context, content_type, controller)
|
419
|
+
# absolute path to a template (:template => "/foo/bar")
|
420
|
+
if template.is_a?(String) && template =~ %r{^/}
|
421
|
+
template_location = self._absolute_template_location(template, content_type)
|
422
|
+
return [_template_method_for(template_location, locals), template_location]
|
426
423
|
end
|
424
|
+
|
425
|
+
self.class._template_roots.reverse_each do |root, template_meth|
|
426
|
+
# :template => "foo/bar.html" where root / "foo/bar.html.*" exists
|
427
|
+
if template
|
428
|
+
template_location = root / self.send(template_meth, template, content_type, nil)
|
429
|
+
# :layout => "foo" where root / "layouts" / "#{controller}.html.*" exists
|
430
|
+
else
|
431
|
+
template_location = root / self.send(template_meth, context, content_type, controller)
|
432
|
+
end
|
427
433
|
|
428
|
-
|
429
|
-
|
434
|
+
break if template_method = _template_method_for(template_location.to_s, locals)
|
435
|
+
end
|
430
436
|
|
431
|
-
|
432
|
-
|
437
|
+
# template_location is a Pathname
|
438
|
+
[template_method, template_location.to_s]
|
439
|
+
end
|
433
440
|
end
|
434
441
|
|
435
442
|
# Return the template method for a location, and check to make sure the current controller
|
@@ -528,6 +528,15 @@ module Merb
|
|
528
528
|
# ==== Returns
|
529
529
|
# Route :: The default route.
|
530
530
|
#
|
531
|
+
# ==== Note
|
532
|
+
# The block takes two parameters, request and params. The params that
|
533
|
+
# are passed into the block are *just* the placeholder params from the
|
534
|
+
# route. If you want the full parsed params, use request.params.
|
535
|
+
#
|
536
|
+
# The rationale for this is that request.params is a fairly slow
|
537
|
+
# operation, and if the full params parsing is not required, we would
|
538
|
+
# rather not do the full parsing.
|
539
|
+
#
|
531
540
|
# ==== Examples
|
532
541
|
# defer_to do |request, params|
|
533
542
|
# params.merge :controller => 'here',
|
@@ -37,7 +37,7 @@ module Merb
|
|
37
37
|
env["HTTP_COOKIE"] = @__cookie_jar__.for(jar, uri)
|
38
38
|
end
|
39
39
|
|
40
|
-
app = Merb::
|
40
|
+
app = Merb::Config[:app]
|
41
41
|
rack = app.call(::Rack::MockRequest.env_for(uri.to_s, env))
|
42
42
|
|
43
43
|
rack = Struct.new(:status, :headers, :body, :url, :original_env).
|
data/lib/merb-core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: merb-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ezra Zygmuntowicz
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-12-
|
12
|
+
date: 2008-12-28 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|