merb-core 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +22 -13
- data/lib/merb-core/bootloader.rb +3 -2
- data/lib/merb-core/config.rb +1 -1
- data/lib/merb-core/constants.rb +3 -1
- data/lib/merb-core/controller/abstract_controller.rb +25 -39
- data/lib/merb-core/controller/exceptions.rb +14 -16
- data/lib/merb-core/controller/merb_controller.rb +2 -2
- data/lib/merb-core/controller/mime.rb +2 -1
- data/lib/merb-core/controller/mixins/render.rb +12 -0
- data/lib/merb-core/controller/mixins/responder.rb +31 -7
- data/lib/merb-core/core_ext/hash.rb +7 -0
- data/lib/merb-core/core_ext/kernel.rb +31 -34
- data/lib/merb-core/core_ext.rb +1 -0
- data/lib/merb-core/dispatch/default_exception/default_exception.rb +3 -3
- data/lib/merb-core/dispatch/dispatcher.rb +128 -135
- data/lib/merb-core/dispatch/request.rb +11 -11
- data/lib/merb-core/dispatch/router/behavior.rb +6 -6
- data/lib/merb-core/dispatch/router.rb +5 -5
- data/lib/merb-core/logger.rb +203 -202
- data/lib/merb-core/rack/application.rb +19 -5
- data/lib/merb-core/rack/middleware/conditional_get.rb +23 -0
- data/lib/merb-core/rack/middleware/content_length.rb +18 -0
- data/lib/merb-core/rack/middleware/tracer.rb +20 -0
- data/lib/merb-core/rack/middleware.rb +1 -7
- data/lib/merb-core/rack.rb +19 -16
- data/lib/merb-core/test/matchers/route_matchers.rb +1 -0
- data/lib/merb-core/test/matchers/view_matchers.rb +36 -0
- data/lib/merb-core/test/run_specs.rb +2 -1
- data/lib/merb-core/version.rb +1 -1
- data/lib/merb-core.rb +39 -33
- data/spec/private/config/merb_spec.rb +34 -0
- data/spec/private/dispatch/fixture/log/merb_test.log +372 -0
- data/spec/private/router/fixture/log/merb_test.log +42 -0
- data/spec/public/abstract_controller/controllers/filters.rb +50 -1
- data/spec/public/abstract_controller/filter_spec.rb +25 -0
- data/spec/public/controller/base_spec.rb +41 -1
- data/spec/public/controller/controllers/base.rb +16 -0
- data/spec/public/controller/controllers/views/merb/test/fixtures/controllers/class_provides/index.html.erb +1 -1
- data/spec/public/controller/dispatcher_spec.rb +24 -25
- data/spec/public/controller/responder_spec.rb +6 -0
- data/spec/public/core_ext/kernel_spec.rb +79 -0
- data/spec/public/directory_structure/directory/log/merb_test.log +245 -0
- data/spec/public/rack/conditinal_get_middleware_spec.rb +139 -0
- data/spec/public/rack/rack_middleware_spec.rb +99 -0
- data/spec/public/rack/shared_example_groups.rb +35 -0
- data/spec/public/reloading/directory/log/merb_test.log +40 -0
- data/spec/public/request/request_spec.rb +0 -5
- data/spec/public/router/fixture/log/merb_test.log +348 -0
- data/spec/public/test/route_matchers_spec.rb +4 -0
- data/spec/spec_helper.rb +7 -1
- metadata +42 -5
- data/spec/private/plugins/plugin_spec.rb +0 -166
@@ -188,6 +188,55 @@ module Merb::Test::Fixtures
|
|
188
188
|
def foo(bar,baz)
|
189
189
|
bar == "bar" && baz == "baz"
|
190
190
|
end
|
191
|
-
end
|
191
|
+
end
|
192
|
+
|
193
|
+
class BeforeFilterWithThrowHalt < Testing
|
194
|
+
before do
|
195
|
+
throw :halt, "Halt thrown"
|
196
|
+
end
|
197
|
+
|
198
|
+
def index
|
199
|
+
"Halt not thrown"
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
class BeforeFilterWithThrowProc < Testing
|
204
|
+
before do
|
205
|
+
throw :halt, Proc.new { "Proc thrown" }
|
206
|
+
end
|
207
|
+
|
208
|
+
def index
|
209
|
+
"Proc not thrown"
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
class ThrowNil < Testing
|
214
|
+
before do
|
215
|
+
throw :halt, nil
|
216
|
+
end
|
217
|
+
|
218
|
+
def index
|
219
|
+
"Awesome"
|
220
|
+
end
|
221
|
+
end
|
222
|
+
|
223
|
+
class FilterChainError < Testing
|
224
|
+
before do
|
225
|
+
throw :halt, Merb
|
226
|
+
end
|
227
|
+
|
228
|
+
def index
|
229
|
+
"Awesome"
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
class Benchmarking < Testing
|
234
|
+
before {}
|
235
|
+
after {}
|
236
|
+
|
237
|
+
def index
|
238
|
+
"Awesome"
|
239
|
+
end
|
240
|
+
end
|
192
241
|
end
|
193
242
|
end
|
@@ -9,6 +9,7 @@
|
|
9
9
|
# Merb::AbstractController#_dispatch(action<~to_s>)
|
10
10
|
|
11
11
|
require File.join(File.dirname(__FILE__), "spec_helper")
|
12
|
+
AbstractControllers = Merb::Test::Fixtures::Abstract
|
12
13
|
|
13
14
|
describe Merb::AbstractController, " should support before and after filters" do
|
14
15
|
|
@@ -95,9 +96,33 @@ describe Merb::AbstractController, " should support before and after filters" do
|
|
95
96
|
dispatch_should_make_body("TestBeforeFilterWithArguments", "index action")
|
96
97
|
end
|
97
98
|
|
99
|
+
it "should support throwing :halt to block a filter chain" do
|
100
|
+
dispatch_should_make_body("BeforeFilterWithThrowHalt", "Halt thrown")
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should support throwing a proc in filters" do
|
104
|
+
dispatch_should_make_body("BeforeFilterWithThrowProc", "Proc thrown")
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should raise an InternalServerError if :halt is thrown with unexpected type" do
|
108
|
+
calling { dispatch_to(AbstractControllers::FilterChainError, :index) }.should(
|
109
|
+
raise_error(ArgumentError, /Threw :halt, Merb. Expected String/))
|
110
|
+
end
|
111
|
+
|
112
|
+
it "should print useful HTML if throw :halt is called with nil" do
|
113
|
+
dispatch_should_make_body("ThrowNil",
|
114
|
+
"<html><body><h1>Filter Chain Halted!</h1></body></html>")
|
115
|
+
end
|
116
|
+
|
98
117
|
it "should inherit before filters" do
|
99
118
|
dispatch_should_make_body("FilterChild2", "Before Limited", :limited)
|
100
119
|
end
|
120
|
+
|
121
|
+
it "should provide benchmarks" do
|
122
|
+
controller = dispatch_to(AbstractControllers::Benchmarking, :index)
|
123
|
+
controller._benchmarks[:before_filters_time].should be_kind_of(Numeric)
|
124
|
+
controller._benchmarks[:after_filters_time].should be_kind_of(Numeric)
|
125
|
+
end
|
101
126
|
|
102
127
|
it "should not get contaminated by cousins" do
|
103
128
|
dispatch_should_make_body("FilterChild2", "Before Index")
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require File.join(File.dirname(__FILE__), "spec_helper")
|
2
|
+
Controllers = Merb::Test::Fixtures::Controllers
|
2
3
|
|
3
|
-
describe Merb::Controller, "
|
4
|
+
describe Merb::Controller, "callable actions" do
|
4
5
|
|
5
6
|
before do
|
6
7
|
Merb.push_path(:layout, File.dirname(__FILE__) / "controllers" / "views" / "layouts")
|
@@ -38,3 +39,42 @@ describe Merb::Controller, " callable actions" do
|
|
38
39
|
end
|
39
40
|
|
40
41
|
end
|
42
|
+
|
43
|
+
describe Merb::Controller, "filtered params" do
|
44
|
+
it "removes filtered parameters from the log" do
|
45
|
+
out = with_level(:info) do
|
46
|
+
dispatch_to(Controllers::FilteredParams, :index, :username => "Awesome", :password => "sekrit")
|
47
|
+
end
|
48
|
+
out.should include_log(/Params:.*"username"\s*=>\s*"Awesome"/)
|
49
|
+
out.should_not include_log(/"password"/)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "doesn't put the parameters in the log in levels higher than info" do
|
53
|
+
out = with_level(:warn) do
|
54
|
+
dispatch_to(Controllers::FilteredParams, :index, :username => "Awesome", :password => "sekrit")
|
55
|
+
end
|
56
|
+
out.should_not include_log(/Params/)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe Merb::Controller, "records benchmarks" do
|
61
|
+
it "collects benchmarks for the amount of time the action took" do
|
62
|
+
controller = dispatch_to(Controllers::Base, :index)
|
63
|
+
controller._benchmarks[:action_time].should be_kind_of(Numeric)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe Merb::Controller, "handles invalid actions" do
|
68
|
+
it "raises if an action was not found" do
|
69
|
+
calling { controller = dispatch_to(Controllers::Base, :awesome) }.
|
70
|
+
should raise_error(Merb::ControllerExceptions::ActionNotFound,
|
71
|
+
/Action.*awesome.*was not found in.*Base/)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe Merb::Controller, "handles invalid status codes" do
|
76
|
+
it "raises if an invalid status is set" do
|
77
|
+
calling { dispatch_to(Controllers::SetStatus, :index) }.
|
78
|
+
should raise_error(ArgumentError, /was.*String/)
|
79
|
+
end
|
80
|
+
end
|
@@ -31,6 +31,22 @@ module Merb::Test::Fixtures
|
|
31
31
|
end
|
32
32
|
hide_action :hidden
|
33
33
|
end
|
34
|
+
|
35
|
+
class FilteredParams < Testing
|
36
|
+
def index
|
37
|
+
"Index"
|
38
|
+
end
|
39
|
+
|
40
|
+
def self._filter_params(params)
|
41
|
+
params.reject {|k,v| k == "password" }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
class SetStatus < Testing
|
46
|
+
def index
|
47
|
+
self.status = "awesome"
|
48
|
+
end
|
49
|
+
end
|
34
50
|
|
35
51
|
end
|
36
52
|
end
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
HTML: Wins Over XML If Both Are Specified
|
@@ -7,12 +7,6 @@ describe Merb::Dispatcher do
|
|
7
7
|
include Merb::Test::Rspec::ControllerMatchers
|
8
8
|
include Merb::Test::Rspec::ViewMatchers
|
9
9
|
|
10
|
-
def with_level(level)
|
11
|
-
Merb.logger = Merb::Logger.new(StringIO.new, level)
|
12
|
-
yield
|
13
|
-
Merb.logger
|
14
|
-
end
|
15
|
-
|
16
10
|
def dispatch(url)
|
17
11
|
Merb::Dispatcher.handle(request_for(url))
|
18
12
|
end
|
@@ -38,6 +32,11 @@ describe Merb::Dispatcher do
|
|
38
32
|
controller.body.should == "Dispatched"
|
39
33
|
end
|
40
34
|
|
35
|
+
it "has the correct status code" do
|
36
|
+
controller = dispatch(@url)
|
37
|
+
controller.status.should == 200
|
38
|
+
end
|
39
|
+
|
41
40
|
it "sets the Request#params to include the route params" do
|
42
41
|
controller = dispatch(@url)
|
43
42
|
controller.request.params.should ==
|
@@ -93,11 +92,11 @@ describe Merb::Dispatcher do
|
|
93
92
|
it "reports that it is redirecting via Logger#info" do
|
94
93
|
with_level(:info) do
|
95
94
|
dispatch(@url)
|
96
|
-
end.should include_log("Dispatcher redirecting to: /foo")
|
95
|
+
end.should include_log("Dispatcher redirecting to: /foo (301)")
|
97
96
|
|
98
97
|
with_level(:warn) do
|
99
98
|
dispatch(@url)
|
100
|
-
end.should_not include_log("Dispatcher redirecting to: /foo")
|
99
|
+
end.should_not include_log("Dispatcher redirecting to: /foo (301)")
|
101
100
|
end
|
102
101
|
|
103
102
|
it "sets the status correctly" do
|
@@ -270,11 +269,11 @@ describe Merb::Dispatcher do
|
|
270
269
|
end
|
271
270
|
|
272
271
|
it "renders the default exception template" do
|
273
|
-
@controller.body.should
|
274
|
-
@controller.body.should
|
275
|
-
|
276
|
-
@controller.body.should
|
277
|
-
@controller.body.should
|
272
|
+
@controller.body.should have_xpath("//h1[contains(.,'Standard Error')]")
|
273
|
+
@controller.body.should have_xpath("//h2[contains(.,'Big error')]")
|
274
|
+
|
275
|
+
@controller.body.should have_xpath("//h1[contains(.,'Load Error')]")
|
276
|
+
@controller.body.should have_xpath("//h2[contains(.,'Big error')]")
|
278
277
|
end
|
279
278
|
|
280
279
|
it "returns a 500 status code" do
|
@@ -311,8 +310,8 @@ describe Merb::Dispatcher do
|
|
311
310
|
end
|
312
311
|
|
313
312
|
it "renders the default exception template" do
|
314
|
-
@controller.body.should
|
315
|
-
@controller.body.should
|
313
|
+
@controller.body.should have_xpath("//h1[contains(.,'Not Found')]")
|
314
|
+
@controller.body.should have_xpath("//h2[contains(.,'Somehow, the thing')]")
|
316
315
|
end
|
317
316
|
|
318
317
|
it "returns a 404 status code" do
|
@@ -348,7 +347,7 @@ describe Merb::Dispatcher do
|
|
348
347
|
end
|
349
348
|
|
350
349
|
it "renders the default exception template" do
|
351
|
-
@controller.body.should
|
350
|
+
@controller.body.should have_xpath("//h2[contains(.,'Something failed here')]")
|
352
351
|
end
|
353
352
|
|
354
353
|
it "returns a 500 status code" do
|
@@ -389,18 +388,18 @@ describe Merb::Dispatcher do
|
|
389
388
|
end
|
390
389
|
|
391
390
|
it "renders a list of links to the traces" do
|
392
|
-
@body.should
|
393
|
-
@body.should
|
394
|
-
@body.should
|
391
|
+
@body.should have_xpath("//li//a[@href='#exception_0']")
|
392
|
+
@body.should have_xpath("//li//a[@href='#exception_1']")
|
393
|
+
@body.should have_xpath("//li//a[@href='#exception_2']")
|
395
394
|
end
|
396
395
|
|
397
396
|
it "renders the default exception template" do
|
398
|
-
@body.should
|
399
|
-
@body.should
|
400
|
-
@body.should
|
401
|
-
@body.should
|
402
|
-
@body.should
|
403
|
-
@body.should
|
397
|
+
@body.should have_xpath("//h1[contains(.,'Load Error')]")
|
398
|
+
@body.should have_xpath("//h2[contains(.,'In the controller')]")
|
399
|
+
@body.should have_xpath("//h1[contains(.,'Standard Error')]")
|
400
|
+
@body.should have_xpath("//h2[contains(.,'StandardError')]")
|
401
|
+
@body.should have_xpath("//h1[contains(.,'Exception')]")
|
402
|
+
@body.should have_xpath("//h2[contains(.,'Exception')]")
|
404
403
|
end
|
405
404
|
|
406
405
|
it "returns a 500 status code" do
|
@@ -47,6 +47,12 @@ describe Merb::Controller, " responds" do
|
|
47
47
|
controller.body.should == "HTML: Multi"
|
48
48
|
end
|
49
49
|
|
50
|
+
it "should pick application/xhtml+xml when both application/xml and application/xhtml+xml are available" do
|
51
|
+
controller = dispatch_to(Merb::Test::Fixtures::Controllers::ClassProvides,
|
52
|
+
:index, {}, :http_accept => "application/xml,application/xhtml+xml")
|
53
|
+
controller.body.should == "HTML: Wins Over XML If Both Are Specified"
|
54
|
+
end
|
55
|
+
|
50
56
|
it "should use the first mime-type when accepting anything */*, even if something unprovidable comes first" do
|
51
57
|
controller = dispatch_to(Merb::Test::Fixtures::Controllers::HtmlDefault, :index, {}, :http_accept => "application/json, */*")
|
52
58
|
controller.body.should == "HTML: Default"
|
@@ -6,4 +6,83 @@ describe Kernel, "#dependency" do
|
|
6
6
|
dependency "core_ext_dependency"
|
7
7
|
defined?(CoreExtDependency).should_not be_nil
|
8
8
|
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe Kernel, "#use_orm" do
|
12
|
+
|
13
|
+
before do
|
14
|
+
Kernel.stub!(:dependency)
|
15
|
+
Merb.orm = :none # reset orm
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should set Merb.orm" do
|
19
|
+
Kernel.use_orm(:activerecord)
|
20
|
+
Merb.orm.should == :activerecord
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should add the the orm plugin as a dependency" do
|
24
|
+
Kernel.should_receive(:dependency).with('merb_activerecord')
|
25
|
+
Kernel.use_orm(:activerecord)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Kernel, "#use_template_engine" do
|
31
|
+
|
32
|
+
before do
|
33
|
+
Kernel.stub!(:dependency)
|
34
|
+
Merb.template_engine = :erb # reset orm
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should set Merb.template_engine" do
|
38
|
+
Kernel.use_template_engine(:haml)
|
39
|
+
Merb.template_engine.should == :haml
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should add merb-haml as a dependency for :haml" do
|
43
|
+
Kernel.should_receive(:dependency).with('merb-haml')
|
44
|
+
Kernel.use_template_engine(:haml)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should add merb-builder as a dependency for :builder" do
|
48
|
+
Kernel.should_receive(:dependency).with('merb-builder')
|
49
|
+
Kernel.use_template_engine(:builder)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should add no dependency for :erb" do
|
53
|
+
Kernel.should_not_receive(:dependency)
|
54
|
+
Kernel.use_template_engine(:erb)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should add other plugins as a dependency" do
|
58
|
+
Kernel.should_receive(:dependency).with('merb_liquid')
|
59
|
+
Kernel.use_template_engine(:liquid)
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
describe Kernel, "#use_test" do
|
65
|
+
|
66
|
+
before do
|
67
|
+
Merb.test_framework = :rspec # reset orm
|
68
|
+
Merb.stub!(:dependencies)
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should set Merb.test_framework" do
|
72
|
+
Kernel.use_test(:test_unit)
|
73
|
+
Merb.test_framework.should == :test_unit
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should not require test dependencies when not in 'test' env" do
|
77
|
+
Merb.stub!(:env).and_return("development")
|
78
|
+
Kernel.should_not_receive(:dependencies)
|
79
|
+
Merb.use_test(:test_unit, 'hpricot', 'webrat')
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should require test dependencies when in 'test' env" do
|
83
|
+
Merb.stub!(:env).and_return("test")
|
84
|
+
Kernel.should_receive(:dependencies).with(["hpricot", "webrat"])
|
85
|
+
Merb.use_test(:test_unit, 'hpricot', 'webrat')
|
86
|
+
end
|
87
|
+
|
9
88
|
end
|
@@ -3768,3 +3768,248 @@ Restarting Worker Thread
|
|
3768
3768
|
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000928}
|
3769
3769
|
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3770
3770
|
~ {:after_filters_time=>1.2e-05, :before_filters_time=>1.1e-05, :action_time=>0.001381}
|
3771
|
+
~ Not Using Sessions
|
3772
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3773
|
+
~ {:after_filters_time=>1.8e-05, :before_filters_time=>1.9e-05, :action_time=>0.000195}
|
3774
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3775
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>8.0e-06, :action_time=>0.004358}
|
3776
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3777
|
+
~ {:after_filters_time=>2.1e-05, :before_filters_time=>1.3e-05, :action_time=>0.022162}
|
3778
|
+
~ Not Using Sessions
|
3779
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3780
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>4.4e-05, :action_time=>0.000203}
|
3781
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3782
|
+
~ {:after_filters_time=>5.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000694}
|
3783
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3784
|
+
~ {:after_filters_time=>1.2e-05, :before_filters_time=>1.0e-05, :action_time=>0.000773}
|
3785
|
+
~ Not Using Sessions
|
3786
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3787
|
+
~ {:after_filters_time=>1.8e-05, :before_filters_time=>2.0e-05, :action_time=>0.000211}
|
3788
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3789
|
+
~ {:after_filters_time=>7.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000791}
|
3790
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3791
|
+
~ {:after_filters_time=>1.2e-05, :before_filters_time=>1.3e-05, :action_time=>0.000861}
|
3792
|
+
~ Not Using Sessions
|
3793
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3794
|
+
~ {:after_filters_time=>1.6e-05, :before_filters_time=>1.9e-05, :action_time=>0.000637}
|
3795
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3796
|
+
~ {:after_filters_time=>7.0e-06, :before_filters_time=>7.0e-06, :action_time=>0.000811}
|
3797
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3798
|
+
~ {:after_filters_time=>1.6e-05, :before_filters_time=>1.2e-05, :action_time=>0.002617}
|
3799
|
+
~ Not Using Sessions
|
3800
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3801
|
+
~ {:action_time=>0.000202, :after_filters_time=>1.5e-05, :before_filters_time=>1.8e-05}
|
3802
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3803
|
+
~ {:action_time=>0.001615, :after_filters_time=>7.0e-06, :before_filters_time=>6.0e-06}
|
3804
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3805
|
+
~ {:action_time=>0.025443, :after_filters_time=>4.9e-05, :before_filters_time=>1.2e-05}
|
3806
|
+
~ Not Using Sessions
|
3807
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3808
|
+
~ {:action_time=>0.000168, :after_filters_time=>1.3e-05, :before_filters_time=>1.6e-05}
|
3809
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3810
|
+
~ {:action_time=>0.000671, :after_filters_time=>7.0e-06, :before_filters_time=>6.0e-06}
|
3811
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3812
|
+
~ {:action_time=>0.000707, :after_filters_time=>1.0e-05, :before_filters_time=>1.0e-05}
|
3813
|
+
~ Not Using Sessions
|
3814
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3815
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.7e-05, :action_time=>0.000287}
|
3816
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3817
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>8.0e-06, :action_time=>0.000608}
|
3818
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3819
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.1e-05, :action_time=>0.000651}
|
3820
|
+
~ Not Using Sessions
|
3821
|
+
~ Not Using Sessions
|
3822
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3823
|
+
~ {:action_time=>0.000192, :after_filters_time=>1.5e-05, :before_filters_time=>1.9e-05}
|
3824
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3825
|
+
~ {:action_time=>0.036927, :after_filters_time=>9.0e-06, :before_filters_time=>6.0e-06}
|
3826
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3827
|
+
~ {:action_time=>0.001957, :after_filters_time=>1.2e-05, :before_filters_time=>1.2e-05}
|
3828
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3829
|
+
~ {:action_time=>0.000188, :after_filters_time=>1.6e-05, :before_filters_time=>1.9e-05}
|
3830
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3831
|
+
~ {:action_time=>0.004562, :after_filters_time=>7.0e-06, :before_filters_time=>6.0e-06}
|
3832
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3833
|
+
~ {:action_time=>0.002057, :after_filters_time=>1.1e-05, :before_filters_time=>1.4e-05}
|
3834
|
+
~ Not Using Sessions
|
3835
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3836
|
+
~ {:action_time=>0.000172, :after_filters_time=>1.4e-05, :before_filters_time=>1.7e-05}
|
3837
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3838
|
+
~ {:action_time=>0.000685, :after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06}
|
3839
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3840
|
+
~ {:action_time=>0.001134, :after_filters_time=>1.7e-05, :before_filters_time=>1.4e-05}
|
3841
|
+
~ Not Using Sessions
|
3842
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3843
|
+
~ {:action_time=>0.000175, :after_filters_time=>1.4e-05, :before_filters_time=>1.6e-05}
|
3844
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3845
|
+
~ {:action_time=>0.000924, :after_filters_time=>7.0e-06, :before_filters_time=>5.0e-06}
|
3846
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3847
|
+
~ {:action_time=>0.000805, :after_filters_time=>1.0e-05, :before_filters_time=>1.1e-05}
|
3848
|
+
~ Not Using Sessions
|
3849
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3850
|
+
~ {:action_time=>0.000177, :after_filters_time=>1.3e-05, :before_filters_time=>1.7e-05}
|
3851
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3852
|
+
~ {:action_time=>0.000723, :after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06}
|
3853
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3854
|
+
~ {:action_time=>0.001328, :after_filters_time=>1.2e-05, :before_filters_time=>1.0e-05}
|
3855
|
+
~ Not Using Sessions
|
3856
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3857
|
+
~ {:action_time=>0.000169, :after_filters_time=>1.4e-05, :before_filters_time=>1.6e-05}
|
3858
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3859
|
+
~ {:action_time=>0.000677, :after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06}
|
3860
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3861
|
+
~ {:action_time=>0.000846, :after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05}
|
3862
|
+
~ Not Using Sessions
|
3863
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3864
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.6e-05, :action_time=>0.000187}
|
3865
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3866
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000533}
|
3867
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3868
|
+
~ {:after_filters_time=>1.0e-05, :before_filters_time=>1.1e-05, :action_time=>0.000606}
|
3869
|
+
~ Not Using Sessions
|
3870
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3871
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.8e-05, :action_time=>0.000185}
|
3872
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3873
|
+
~ {:after_filters_time=>5.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000668}
|
3874
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3875
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.1e-05, :action_time=>0.000615}
|
3876
|
+
~ Not Using Sessions
|
3877
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3878
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.7e-05, :action_time=>0.000192}
|
3879
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3880
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000556}
|
3881
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3882
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.1e-05, :action_time=>0.00062}
|
3883
|
+
~ Not Using Sessions
|
3884
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3885
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.7e-05, :action_time=>0.000167}
|
3886
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3887
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000671}
|
3888
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3889
|
+
~ {:after_filters_time=>1.0e-05, :before_filters_time=>1.0e-05, :action_time=>0.00067}
|
3890
|
+
~ Not Using Sessions
|
3891
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3892
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.6e-05, :action_time=>0.000173}
|
3893
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3894
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000644}
|
3895
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3896
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05, :action_time=>0.000677}
|
3897
|
+
~ Not Using Sessions
|
3898
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3899
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.7e-05, :action_time=>0.000174}
|
3900
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3901
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000636}
|
3902
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3903
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05, :action_time=>0.000644}
|
3904
|
+
~ Not Using Sessions
|
3905
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3906
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.7e-05, :action_time=>0.000176}
|
3907
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3908
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000642}
|
3909
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3910
|
+
~ {:after_filters_time=>1.0e-05, :before_filters_time=>1.0e-05, :action_time=>0.000653}
|
3911
|
+
~ Not Using Sessions
|
3912
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3913
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.7e-05, :action_time=>0.000173}
|
3914
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3915
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000649}
|
3916
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3917
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.1e-05, :action_time=>0.000649}
|
3918
|
+
~ Not Using Sessions
|
3919
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3920
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.7e-05, :action_time=>0.000171}
|
3921
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3922
|
+
~ {:after_filters_time=>5.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000626}
|
3923
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3924
|
+
~ {:after_filters_time=>1.0e-05, :before_filters_time=>1.0e-05, :action_time=>0.000699}
|
3925
|
+
~ Not Using Sessions
|
3926
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3927
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.8e-05, :action_time=>0.00025}
|
3928
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3929
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000638}
|
3930
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3931
|
+
~ {:after_filters_time=>1.3e-05, :before_filters_time=>1.0e-05, :action_time=>0.000778}
|
3932
|
+
~ Not Using Sessions
|
3933
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3934
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.7e-05, :action_time=>0.000176}
|
3935
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3936
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000663}
|
3937
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3938
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05, :action_time=>0.00066}
|
3939
|
+
~ Not Using Sessions
|
3940
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3941
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.8e-05, :action_time=>0.000174}
|
3942
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3943
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000639}
|
3944
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3945
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05, :action_time=>0.000645}
|
3946
|
+
~ Not Using Sessions
|
3947
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3948
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.8e-05, :action_time=>0.000174}
|
3949
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3950
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000639}
|
3951
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3952
|
+
~ {:after_filters_time=>1.0e-05, :before_filters_time=>1.1e-05, :action_time=>0.000648}
|
3953
|
+
~ Not Using Sessions
|
3954
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3955
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.7e-05, :action_time=>0.000173}
|
3956
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3957
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000672}
|
3958
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3959
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05, :action_time=>0.00065}
|
3960
|
+
~ Not Using Sessions
|
3961
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3962
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.7e-05, :action_time=>0.000173}
|
3963
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3964
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000647}
|
3965
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3966
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.1e-05, :action_time=>0.000711}
|
3967
|
+
~ Not Using Sessions
|
3968
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3969
|
+
~ {:after_filters_time=>1.6e-05, :before_filters_time=>2.0e-05, :action_time=>0.000223}
|
3970
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3971
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>7.0e-06, :action_time=>0.000735}
|
3972
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3973
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.1e-05, :action_time=>0.000678}
|
3974
|
+
~ Not Using Sessions
|
3975
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3976
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.8e-05, :action_time=>0.000196}
|
3977
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3978
|
+
~ {:after_filters_time=>7.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000743}
|
3979
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3980
|
+
~ {:after_filters_time=>1.2e-05, :before_filters_time=>1.2e-05, :action_time=>0.000783}
|
3981
|
+
~ Not Using Sessions
|
3982
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3983
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.7e-05, :action_time=>0.000177}
|
3984
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3985
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000824}
|
3986
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3987
|
+
~ {:after_filters_time=>1.2e-05, :before_filters_time=>1.1e-05, :action_time=>0.000713}
|
3988
|
+
~ Not Using Sessions
|
3989
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3990
|
+
~ {:after_filters_time=>1.5e-05, :before_filters_time=>1.8e-05, :action_time=>0.000198}
|
3991
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3992
|
+
~ {:after_filters_time=>7.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000909}
|
3993
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
3994
|
+
~ {:after_filters_time=>1.3e-05, :before_filters_time=>1.2e-05, :action_time=>0.000948}
|
3995
|
+
~ Not Using Sessions
|
3996
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
3997
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.6e-05, :action_time=>0.00017}
|
3998
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
3999
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000654}
|
4000
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
4001
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05, :action_time=>0.000698}
|
4002
|
+
~ Not Using Sessions
|
4003
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
4004
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.7e-05, :action_time=>0.000169}
|
4005
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
4006
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>6.0e-06, :action_time=>0.000642}
|
4007
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
4008
|
+
~ {:after_filters_time=>1.1e-05, :before_filters_time=>1.0e-05, :action_time=>0.000705}
|
4009
|
+
~ Not Using Sessions
|
4010
|
+
~ Params: {"action"=>"string", "controller"=>"base"}
|
4011
|
+
~ {:after_filters_time=>1.4e-05, :before_filters_time=>1.7e-05, :action_time=>0.000175}
|
4012
|
+
~ Params: {"action"=>"template", "controller"=>"base"}
|
4013
|
+
~ {:after_filters_time=>6.0e-06, :before_filters_time=>5.0e-06, :action_time=>0.000645}
|
4014
|
+
~ Params: {"action"=>"template", "controller"=>"custom"}
|
4015
|
+
~ {:after_filters_time=>1.0e-05, :before_filters_time=>1.0e-05, :action_time=>0.000657}
|