merb-core 0.9.4 → 0.9.5
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 +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}
|