diff options
author | Adam Jacob <adam@hjksolutions.com> | 2008-05-19 01:44:05 -0700 |
---|---|---|
committer | Adam Jacob <adam@hjksolutions.com> | 2008-05-19 01:44:05 -0700 |
commit | 4ce7356d6d08cf02dde23b6e2fe2066a26ec45b2 (patch) | |
tree | 9e9953b6240efe270603a19151d91c9c8a0508dc | |
parent | a125c8a450c4368bfdb1668679dd7153d53757c6 (diff) | |
download | chef-4ce7356d6d08cf02dde23b6e2fe2066a26ec45b2.tar.gz |
Working on network layer
70 files changed, 6570 insertions, 27 deletions
diff --git a/bin/chef-indexer b/bin/chef-indexer new file mode 100755 index 0000000000..bb5d181599 --- /dev/null +++ b/bin/chef-indexer @@ -0,0 +1,87 @@ +#!/usr/bin/ruby +# +# ./chef-indexer - Build indexes from Chef Queues! +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: GNU General Public License version 2 or later +# +# This program and entire repository is free software; you can +# redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software +# Foundation; either version 2 of the License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +$: << File.join(File.dirname(__FILE__), "..", "lib") + +require 'optparse' +require 'chef' +require 'rubygems' +require 'facter' + +config = { + :config_file => "/etc/chef/config.rb", + :log_level => :info +} +opts = OptionParser.new do |opts| + opts.banner = "Usage: #{$0} [-d DIR|-r FILE] (options)" + opts.on("-c CONFIG", "--config CONFIG", "The Chef Config file to use") do |c| + config[:config_file] = c + end + opts.on_tail("-l LEVEL", "--loglevel LEVEL", "Set the log level (debug, info, warn, error, fatal)") do |l| + config[:log_level] = l.to_sym + end + opts.on_tail("-h", "--help", "Show this message") do + puts opts + exit + end +end +opts.parse!(ARGV) + +unless File.exists?(config[:config_file]) && File.readable?(config[:config_file]) + puts "I cannot find or read the config file: #{config[:config_file]}" + puts opts + exit +end + +# Load our config file +Chef::Config.from_file(config[:config_file]) +if config[:log_level] + Chef::Log.level(config[:log_level].to_sym) +end + +# Get a Chef::SearchIndex object +indexer = Chef::SearchIndex.new +Chef::Queue.connect +Chef::Queue.subscribe(:queue, "node_index") +Chef::Queue.subscribe(:queue, "node_remove") +while 1 + begin + object, headers = Chef::Queue.receive_msg + if headers["destination"] =~ /index$/ + start_timer = Time.new + indexer.add(object) + final_timer = Time.new + Chef::Log.info("Indexed object from #{headers['destination']} in #{final_timer - start_timer} seconds") + elsif headers["destination"] =~ /remove$/ + start_timer = Time.new + indexer.delete(object) + final_timer = Time.new + Chef::Log.info("Removed object from #{headers['destination']} in #{final_timer - start_timer} seconds") + end + rescue Exception => e + if e.kind_of?(Interrupt) + raise e + end + Chef::Log.error("Received Exception: #{e.to_str} continuing") + end +end diff --git a/bin/chef-server b/bin/chef-server new file mode 100644 index 0000000000..8b264ec5a7 --- /dev/null +++ b/bin/chef-server @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +require "merb-core" + +if ARGV[0] && ARGV[0] =~ /^[^-]/ + ARGV.push "-H" +end + +unless %w[-a --adapter -i --irb-console -r --script-runner].any? { |o| ARGV.index(o) } + ARGV.push *%w[-a mongrel] +end + +Merb.start diff --git a/bin/chef-solo b/bin/chef-solo index 747c672b32..8fa9c1ee3e 100755 --- a/bin/chef-solo +++ b/bin/chef-solo @@ -27,7 +27,6 @@ require 'optparse' require 'chef' require 'rubygems' require 'facter' -require 'yaml' config = { :config_file => "/etc/chef/config.rb", diff --git a/examples/config/chef-solo.rb b/examples/config/chef-solo.rb index 6e98fbbc22..28a40d0d96 100644 --- a/examples/config/chef-solo.rb +++ b/examples/config/chef-solo.rb @@ -3,6 +3,7 @@ cookbook_path File.join(File.dirname(__FILE__), "cookbooks") node_path File.join(File.dirname(__FILE__), "nodes") +search_index_path File.join(File.dirname(__FILE__), "..", "search_index") log_level :info Chef::Log::Formatter.show_time = false diff --git a/examples/config/cookbooks/fakefile/recipes/default.rb b/examples/config/cookbooks/fakefile/recipes/default.rb index ae52a405c6..3d126518f5 100644 --- a/examples/config/cookbooks/fakefile/recipes/default.rb +++ b/examples/config/cookbooks/fakefile/recipes/default.rb @@ -9,3 +9,11 @@ link "/tmp/foo" do link_type :symbolic target_file "/tmp/xmen" end + +0.upto(1000) do |n| + file "/tmp/somefile#{n}" do + owner "adam" + mode 0644 + action :create + end +end
\ No newline at end of file diff --git a/examples/config/nodes/adam.rb b/examples/config/nodes/adam.rb new file mode 100644 index 0000000000..c3e8e4bc16 --- /dev/null +++ b/examples/config/nodes/adam.rb @@ -0,0 +1,14 @@ +## +# Nodes should have a unique name +## +name "adam" + +## +# Nodes can set arbitrary arguments +## +owner "Adam Jacob" + +## +# Nodes should have recipes +## +recipes "tempfile", "fakefile" diff --git a/lib/chef.rb b/lib/chef.rb index dc61e950a0..18e34e0ffb 100644 --- a/lib/chef.rb +++ b/lib/chef.rb @@ -19,7 +19,7 @@ require 'rubygems' -Dir[File.join(File.dirname(__FILE__), 'chef/**/*.rb')].sort.each { |lib| require lib } +Dir[File.join(File.dirname(__FILE__), 'chef/**/*.rb')].sort.each { |lib| require lib unless lib =~ /server/ } class Chef VERSION = '0.0.1' diff --git a/lib/chef/compile.rb b/lib/chef/compile.rb index e974852426..5cd200b098 100644 --- a/lib/chef/compile.rb +++ b/lib/chef/compile.rb @@ -35,6 +35,7 @@ class Chef end def load_node(name) + Chef::Log.debug("Loading Chef Node #{name}") @node = Chef::Node.find(name) end diff --git a/lib/chef/config.rb b/lib/chef/config.rb index 4793011fb4..807631aedb 100644 --- a/lib/chef/config.rb +++ b/lib/chef/config.rb @@ -39,6 +39,8 @@ class Chef @configuration = { :cookbook_path => [ "/etc/chef/site-cookbook", "/etc/chef/cookbook" ], :node_path => "/etc/chef/node", + :file_store_path => "/var/lib/chef/store", + :search_index_path => "/var/lib/chef/search_index", :log_level => :info, :log_location => STDOUT } @@ -61,6 +63,10 @@ class Chef def []=(config_option, value) @configuration[config_option.to_sym] = value end + + def has_key?(key) + @configuration.has_key?(key.to_sym) + end def method_missing(method_symbol, *args) if @configuration.has_key?(method_symbol) diff --git a/lib/chef/cookbook.rb b/lib/chef/cookbook.rb index 39013069ca..ed9b75a1d9 100644 --- a/lib/chef/cookbook.rb +++ b/lib/chef/cookbook.rb @@ -47,6 +47,7 @@ class Chef def load_definitions results = Hash.new @definition_files.each do |file| + Chef::Log.debug("Loading cookbook #{name}'s definitions from #{file}") resourcedef = Chef::ResourceDefinition.new resourcedef.from_file(file) results[resourcedef.name] = resourcedef diff --git a/lib/chef/cookbook_loader.rb b/lib/chef/cookbook_loader.rb index 24ec01e574..95edecfab8 100644 --- a/lib/chef/cookbook_loader.rb +++ b/lib/chef/cookbook_loader.rb @@ -72,7 +72,11 @@ class Chef end def [](cookbook) - @cookbook[cookbook.to_sym] + if @cookbook.has_key?(cookbook.to_sym) + @cookbook[cookbook.to_sym] + else + raise ArgumentError, "Cannot find a cookbook named #{cookbook.to_s}" + end end def each diff --git a/lib/chef/file_store.rb b/lib/chef/file_store.rb new file mode 100644 index 0000000000..b834624090 --- /dev/null +++ b/lib/chef/file_store.rb @@ -0,0 +1,99 @@ +require File.join(File.dirname(__FILE__), "mixin", "params_validate") +require 'digest/sha2' +require 'json' + +class Chef + class FileStore + class << self + include Chef::Mixin::ParamsValidate + + def store(obj_type, name, object) + validate( + { + :obj_type => obj_type, + :name => name, + :object => object, + }, + { + :object => { :respond_to => :to_json }, + } + ) + + store_path = create_store_path(obj_type, name) + io = File.open(store_path, "w") + io.puts object.to_json + io.close + end + + def load(obj_type, name) + validate( + { + :obj_type => obj_type, + :name => name, + }, + { + :obj_type => { :kind_of => String }, + :name => { :kind_of => String }, + } + ) + store_path = create_store_path(obj_type, name) + raise "Cannot find #{store_path} for #{obj_type} #{name}!" unless File.exists?(store_path) + + object = JSON.parse(IO.read(store_path)) + end + + def delete(obj_type, name) + validate( + { + :obj_type => obj_type, + :name => name, + }, + { + :obj_type => { :kind_of => String }, + :name => { :kind_of => String }, + } + ) + store_path = create_store_path(obj_type, name) + if File.exists?(store_path) + File.unlink(store_path) + end + end + + def list(obj_type) + validate( + { + :obj_type => obj_type, + }, + { + :obj_type => { :kind_of => String } + } + ) + keys = Array.new + Dir[File.join(Chef::Config[:file_store_path], obj_type, '**', '*')].each do |f| + if File.file?(f) + keys << File.basename(f) + end + end + keys + end + + def create_store_path(obj_type, key) + shadigest = Digest::SHA2.hexdigest("#{obj_type}#{key}") + + file_path = [ + Chef::Config[:file_store_path], + obj_type, + shadigest[0,1], + shadigest[1,3] + ] + file_path.each_index do |i| + create_path = File.join(file_path[0, i + 1]) + Dir.mkdir(create_path) unless File.directory?(create_path) + end + file_path << key + File.join(*file_path) + end + + end + end +end
\ No newline at end of file diff --git a/lib/chef/mixin/params_validate.rb b/lib/chef/mixin/params_validate.rb index 741e932006..2f6e432024 100644 --- a/lib/chef/mixin/params_validate.rb +++ b/lib/chef/mixin/params_validate.rb @@ -155,7 +155,7 @@ class Chef def _pv_respond_to(opts, key, method_name_list) value = _pv_opts_lookup(opts, key) if value != nil - method_name_list.to_a.each do |method_name| + [ method_name_list ].flatten.each do |method_name| unless value.respond_to?(method_name) raise ArgumentError, "Option #{key} must have a #{method_name} method!" end diff --git a/lib/chef/node.rb b/lib/chef/node.rb index f8adf5983f..236bd2f9e1 100644 --- a/lib/chef/node.rb +++ b/lib/chef/node.rb @@ -165,21 +165,29 @@ class Chef end end - # Serialize this Node as json - def to_json() - result_object = { + # Serialize this object as a hash + def to_json(*a) + attributes = Hash.new + recipes = Array.new + { "name" => @name, - "type" => "Chef::Node", - "attributes" => Hash.new, - "recipes" => Array.new - } - each_attribute do |a,v| - result_object["attributes"][a] = v + 'json_class' => self.class.name, + "attributes" => @attribute, + "recipes" => @recipe_list, + }.to_json(*a) + end + + def self.json_create(o) + node = new + node.name(o["name"]) + o["attributes"].each do |k,v| + node[k] = v end - recipes.each do |r| - result_object["recipes"] << r + o["recipes"].each do |r| + node.recipes << r end - result_object.to_json + + node end # As a string diff --git a/lib/chef/queue.rb b/lib/chef/queue.rb new file mode 100644 index 0000000000..795670d79a --- /dev/null +++ b/lib/chef/queue.rb @@ -0,0 +1,109 @@ +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: GNU General Public License version 2 or later +# +# This program and entire repository is free software; you can +# redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software +# Foundation; either version 2 of the License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +require File.join(File.dirname(__FILE__), "mixin", "params_validate") + +class Chef + class Queue + require 'stomp' + + @client = nil + + class << self + include Chef::Mixin::ParamsValidate + + def connect + @client = Stomp::Connection.open( + Chef::Config.has_key?(:queue_user) ? Chef::Config[:queue_user] : "", + Chef::Config.has_key?(:queue_password) ? Chef::Config[:queue_password] : "", + Chef::Config.has_key?(:queue_host) ? Chef::Config[:queue_host] : "localhost", + Chef::Config.has_key?(:queue_port) ? Chef::Config[:queue_port] : 61613, + false + ) + end + + def make_url(type, name) + validate( + { + :queue_type => type.to_sym, + :queue_name => name.to_sym, + }, + { + :queue_type => { + :equal_to => [ :topic, :queue ], + }, + :queue_name => { + :kind_of => [ String, Symbol ], + } + } + ) + queue_url = "/#{type}/chef/#{name}" + end + + def subscribe(type, name) + queue_url = make_url(type, name) + Chef::Log.debug("Subscribing to #{queue_url}") + connect if @client == nil + @client.subscribe(queue_url) + end + + def send_msg(type, name, msg) + validate( + { + :message => msg, + }, + { + :message => { + :respond_to => :to_json + } + } + ) + queue_url = make_url(type, name) + json = msg.to_json + connect if @client == nil + Chef::Log.debug("Sending to #{queue_url}: #{json}") + @client.send(queue_url, json) + end + + def receive_msg + connect if @client == nil + raw_msg = @client.receive() + Chef::Log.debug("Received Message from #{raw_msg.headers["destination"]} containing: #{raw_msg.body}") + msg = JSON.parse(raw_msg.body) + return msg, raw_msg.headers + end + + def poll_msg + connect if @client == nil + raw_msg = @client.poll() + if raw_msg + msg = JSON.parse(raw_msg.body) + else + nil + end + end + + def disconnect + raise ArgumentError, "You must call connect before you can disconnect!" unless @client + @client.disconnect + end + end + end +end
\ No newline at end of file diff --git a/lib/chef/resource.rb b/lib/chef/resource.rb index afff713ba6..705738fe59 100644 --- a/lib/chef/resource.rb +++ b/lib/chef/resource.rb @@ -28,8 +28,8 @@ class Chef include Chef::Mixin::CheckHelper include Chef::Mixin::ParamsValidate - attr_accessor :tag, :actions, :params, :provider, :updated, :allowed_actions - attr_reader :resource_name, :collection + attr_accessor :actions, :params, :provider, :updated, :allowed_actions + attr_reader :resource_name, :collection, :source_line def initialize(name, collection=nil) @name = name @@ -38,7 +38,6 @@ class Chef else @collection = Chef::ResourceCollection.new() end - @tag = [ name.to_s ] @noop = nil @before = nil @actions = Hash.new @@ -47,6 +46,7 @@ class Chef @allowed_actions = [ :nothing ] @action = :nothing @updated = false + @source_line = caller(4).shift.gsub!(/^(.+):(.+):.+$/, '\1 line \2') end def action(arg=nil) @@ -118,6 +118,26 @@ class Chef "#{@resource_name}[#{@name}]" end + # Serialize this object as a hash + def to_json(*a) + instance_vars = Hash.new + self.instance_variables.each do |iv| + instance_vars[iv] = self.instance_variable_get(iv) unless iv == "@collection" + end + { + 'json_class' => self.class.name, + 'instance_vars' => instance_vars + }.to_json(*a) + end + + def self.json_create(o) + resource = self.new(o["instance_vars"]["@name"]) + o["instance_vars"].each do |k,v| + resource.instance_variable_set(k.to_sym, v) + end + resource + end + private def check_timing(timing) diff --git a/lib/chef/resource_collection.rb b/lib/chef/resource_collection.rb index 5728fdd3e9..362781ea0e 100644 --- a/lib/chef/resource_collection.rb +++ b/lib/chef/resource_collection.rb @@ -111,6 +111,26 @@ class Chef flat_results = results.flatten flat_results.length == 1 ? flat_results[0] : flat_results end + + # Serialize this object as a hash + def to_json(*a) + instance_vars = Hash.new + self.instance_variables.each do |iv| + instance_vars[iv] = self.instance_variable_get(iv) + end + { + 'json_class' => self.class.name, + 'instance_vars' => instance_vars + }.to_json(*a) + end + + def self.json_create(o) + collection = self.new() + o["instance_vars"].each do |k,v| + collection.instance_variable_set(k.to_sym, v) + end + collection + end private diff --git a/lib/chef/search_index.rb b/lib/chef/search_index.rb new file mode 100644 index 0000000000..6af408b68c --- /dev/null +++ b/lib/chef/search_index.rb @@ -0,0 +1,70 @@ +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: GNU General Public License version 2 or later +# +# This program and entire repository is free software; you can +# redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software +# Foundation; either version 2 of the License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +require File.join(File.dirname(__FILE__), "mixin", "params_validate") +require 'ferret' + +class Chef + class SearchIndex + + def initialize + @index = Ferret::Index::Index.new( + :path => Chef::Config[:search_index_path], + :key => [ :id ] + ) + end + + def add(to_index) + type = check_type(to_index) + result = self.send("_prepare_#{type}", to_index) + Chef::Log.debug("Indexing #{type} with #{result.inspect}") + @index.add_document(result) + end + + def delete(index_obj) + type = check_type(index_obj) + to_index = self.send("_prepare_#{type}", index_obj) + Chef::Log.debug("Removing #{type} with #{to_index.inspect}") + @index.delete(:id => "#{to_index[:id]}") + end + + private + + def check_type(to_check) + type = nil + case to_check + when Chef::Node + type = "node" + end + end + + def _prepare_node(node) + result = Hash.new + result[:id] = "node-#{node.name}" + result[:type] = "node" + result[:name] = node.name + node.each_attribute do |k,v| + result[k.to_sym] = v + end + result[:recipe] = node.recipes + result + end + end +end
\ No newline at end of file diff --git a/packages/chef-server/Rakefile b/packages/chef-server/Rakefile new file mode 100644 index 0000000000..8ca9181536 --- /dev/null +++ b/packages/chef-server/Rakefile @@ -0,0 +1,34 @@ +require 'rubygems' +Gem.clear_paths +Gem.path.unshift(File.join(File.dirname(__FILE__), "gems")) + +require 'rake' +require 'rake/rdoctask' +require 'rake/testtask' +require 'spec/rake/spectask' +require 'fileutils' +require 'merb-core' +require 'rubigen' +include FileUtils + +# Load the basic runtime dependencies; this will include +# any plugins and therefore plugin rake tasks. +init_env = ENV['MERB_ENV'] || 'rake' +Merb.load_dependencies(:environment => init_env) + +# Get Merb plugins and dependencies +Merb::Plugins.rakefiles.each { |r| require r } + +desc "start runner environment" +task :merb_env do + Merb.start_environment(:environment => init_env, :adapter => 'runner') +end + +############################################################################## +# ADD YOUR CUSTOM TASKS BELOW +############################################################################## + +desc "Add new files to subversion" +task :svn_add do + system "svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add" +end diff --git a/packages/chef-server/app/controllers/application.rb b/packages/chef-server/app/controllers/application.rb new file mode 100644 index 0000000000..5ce39a0102 --- /dev/null +++ b/packages/chef-server/app/controllers/application.rb @@ -0,0 +1,2 @@ +class Application < Merb::Controller +end
\ No newline at end of file diff --git a/packages/chef-server/app/controllers/exceptions.rb b/packages/chef-server/app/controllers/exceptions.rb new file mode 100644 index 0000000000..7f72e57ad2 --- /dev/null +++ b/packages/chef-server/app/controllers/exceptions.rb @@ -0,0 +1,20 @@ +class Exceptions < Application + + provides :html, :json + + # handle NotFound exceptions (404) + def not_found + display params + end + + # handle NotAcceptable exceptions (406) + def not_acceptable + display params + end + + # handle BadRequest exceptions (400) + def bad_request + display params + end + +end
\ No newline at end of file diff --git a/packages/chef-server/app/controllers/nodes.rb b/packages/chef-server/app/controllers/nodes.rb new file mode 100644 index 0000000000..f9af3fdc57 --- /dev/null +++ b/packages/chef-server/app/controllers/nodes.rb @@ -0,0 +1,85 @@ +class Nodes < Application + + provides :html, :json + + before :fix_up_node_id + + def index + @node_list = Chef::FileStore.list("node") + display @node_list + end + + def show + begin + @node = Chef::FileStore.load("node", params[:id]) + rescue RuntimeError => e + raise BadRequest, "Cannot load node #{params[:id]}" + end + display @node + end + + def create + @node = params.has_key?("inflated_object") ? params["inflated_object"] : nil + if @node + @status = 202 + Chef::FileStore.store("node", @node.name, @node) + Chef::Queue.send_msg(:queue, :node_index, @node) + display @node + else + raise BadRequest, "You must provide a Node to create" + end + end + + def update + @node = params.has_key?("inflated_object") ? params["inflated_object"] : nil + if @node + @status = 202 + Chef::FileStore.store("node", @node.name, @node) + Chef::Queue.send_msg(:queue, :node_index, @node) + display @node + else + raise BadRequest, "You must provide a Node to update" + end + end + + def destroy + begin + @node = Chef::FileStore.load("node", params[:id]) + rescue RuntimeError => e + raise BadRequest, "Node #{params[:id]} does not exist to destroy!" + end + @status = 202 + Chef::FileStore.delete("node", params[:id]) + Chef::Queue.send_msg(:queue, :node_remove, @node) + display @node + end + + def compile + # Grab a Chef::Compile object + compile = Chef::Compile.new() + compile.load_node(params[:id]) + + stored_node = Chef::FileStore.load("node", params[:id]) + + stored_node.each_attribute do |field, value| + compile.node[field] = value + end + stored_node.recipes.each do |r| + compile.node.recipes << r unless compile.node.recipes.detect { |h| r == h } + end + compile.load_definitions + compile.load_recipes + @output = { + :node => compile.node, + :collection => compile.collection, + } + display @output + end + + def fix_up_node_id + if params.has_key?(:id) + params[:id].gsub!(/_/, '.') + end + end + +end diff --git a/packages/chef-server/app/controllers/openid_consumer.rb b/packages/chef-server/app/controllers/openid_consumer.rb new file mode 100644 index 0000000000..5b3142262e --- /dev/null +++ b/packages/chef-server/app/controllers/openid_consumer.rb @@ -0,0 +1,66 @@ +require 'pathname' + +require "openid" +require 'openid/store/filesystem' + +class OpenidConsumer < Application + layout nil + + def index + # render an openid form + end + + def start + begin + oidreq = consumer.begin(params[:openid_identifier]) + rescue OpenID::OpenIDError => e + flash[:error] = "Discovery failed for #{params[:openid_identifier]}: #{e}" + redirect_to :action => 'index' + return + end + return_to = url_for :action => 'complete', :only_path => false + realm = url_for :action => 'index', :only_path => false + + if oidreq.send_redirect?(realm, return_to, params[:immediate]) + redirect_to oidreq.redirect_url(realm, return_to, params[:immediate]) + else + @form_text = oidreq.form_markup(realm, return_to, params[:immediate], {'id' => 'openid_form'}) + end + end + + def complete + # FIXME - url_for some action is not necessarily the current URL. + current_url = url_for(:action => 'complete', :only_path => false) + parameters = params.reject{|k,v|request.path_parameters[k]} + oidresp = consumer.complete(parameters, current_url) + case oidresp.status + when OpenID::Consumer::FAILURE + if oidresp.display_identifier + flash[:error] = ("Verification of #{oidresp.display_identifier}"\ + " failed: #{oidresp.message}") + else + flash[:error] = "Verification failed: #{oidresp.message}" + end + when OpenID::Consumer::SUCCESS + flash[:success] = ("Verification of #{oidresp.display_identifier}"\ + " succeeded.") + when OpenID::Consumer::SETUP_NEEDED + flash[:alert] = "Immediate request failed - Setup Needed" + when OpenID::Consumer::CANCEL + flash[:alert] = "OpenID transaction cancelled." + else + end + redirect_to :action => 'index' + end + + private + + def consumer + if @consumer.nil? + dir = Pathname.new(RAILS_ROOT).join('db').join('cstore') + store = OpenID::Store::Filesystem.new(dir) + @consumer = OpenID::Consumer.new(session, store) + end + return @consumer + end +end diff --git a/packages/chef-server/app/controllers/openid_login.rb b/packages/chef-server/app/controllers/openid_login.rb new file mode 100644 index 0000000000..dfb621ca5c --- /dev/null +++ b/packages/chef-server/app/controllers/openid_login.rb @@ -0,0 +1,42 @@ +# Controller for handling the login, logout process for "users" of our +# little server. Users have no password. This is just an example. + +require 'openid' + +class OpenidLogin < Application + + provides :html, :json + + def index + @headers['X-XRDS-Location'] = url(:controller => "server", + :action => "idp_xrds", + :only_path => false) + display({ }) + end + + def submit + user = params[:username] + + # if we get a user, log them in by putting their username in + # the session hash. + unless user.nil? + session[:username] = user unless user.nil? + session[:approvals] = [] + session[:notice] = "Your OpenID URL is <b> + #{url(:controller => "openid_server", :action => "user_page", :username => params[:username])} + </b><br/><br/>Proceed to step 2 below." + else + session[:error] = "Sorry, couldn't log you in. Try again." + end + + redirect url(:controller => "openid_login") + end + + def logout + # delete the username from the session hash + session[:username] = nil + session[:approvals] = nil + redirect url(:controller => "openid_login") + end + +end diff --git a/packages/chef-server/app/controllers/openid_server.rb b/packages/chef-server/app/controllers/openid_server.rb new file mode 100644 index 0000000000..aa0d59ab61 --- /dev/null +++ b/packages/chef-server/app/controllers/openid_server.rb @@ -0,0 +1,224 @@ +require 'pathname' + +# load the openid library, first trying rubygems +#begin +# require "rubygems" +# require_gem "ruby-openid", ">= 1.0" +#rescue LoadError +require "openid" +require "openid/consumer/discovery" +require 'openid/store/filesystem' +#end + +class OpenidServer < Application + + include Merb::OpenidServerHelper + include OpenID::Server + layout nil + + def index + oidreq = server.decode_request(params) + + # no openid.mode was given + unless oidreq + render :text => "This is an OpenID server endpoint." + return + end + + oidresp = nil + + if oidreq.kind_of?(CheckIDRequest) + + identity = oidreq.identity + + if oidreq.id_select + if oidreq.immediate + oidresp = oidreq.answer(false) + elsif session[:username].nil? + # The user hasn't logged in. + show_decision_page(oidreq) + return + else + # Else, set the identity to the one the user is using. + identity = url_for_user + end + end + + if oidresp + nil + elsif self.is_authorized(identity, oidreq.trust_root) + oidresp = oidreq.answer(true, nil, identity) + elsif oidreq.immediate + server_url = url_for :action => 'index' + oidresp = oidreq.answer(false, server_url) + else + show_decision_page(oidreq) + return + end + + else + oidresp = server.handle_request(oidreq) + end + + self.render_response(oidresp) + end + + def show_decision_page(oidreq, message="Do you trust this site with your identity?") + session[:last_oidreq] = oidreq + @oidreq = oidreq + + if message + flash[:notice] = message + end + + render :template => 'server/decide', :layout => 'server' + end + + def user_page + # Yadis content-negotiation: we want to return the xrds if asked for. + accept = request.env['HTTP_ACCEPT'] + + # This is not technically correct, and should eventually be updated + # to do real Accept header parsing and logic. Though I expect it will work + # 99% of the time. + if accept and accept.include?('application/xrds+xml') + user_xrds + return + end + + # content negotiation failed, so just render the user page + xrds_url = url_for(:controller=>'user',:action=>params[:username])+'/xrds' + identity_page = <<EOS +<html><head> +<meta http-equiv="X-XRDS-Location" content="#{xrds_url}" /> +<link rel="openid.server" href="#{url_for :action => 'index'}" /> +</head><body><p>OpenID identity page for #{params[:username]}</p> +</body></html> +EOS + + # Also add the Yadis location header, so that they don't have + # to parse the html unless absolutely necessary. + response.headers['X-XRDS-Location'] = xrds_url + render :text => identity_page + end + + def user_xrds + types = [ + OpenID::OPENID_2_0_TYPE, + OpenID::OPENID_1_0_TYPE, + OpenID::SREG_URI, + ] + + render_xrds(types) + end + + def idp_xrds + types = [ + OpenID::OPENID_IDP_2_0_TYPE, + ] + + render_xrds(types) + end + + def decision + oidreq = session[:last_oidreq] + session[:last_oidreq] = nil + + if params[:yes].nil? + redirect_to oidreq.cancel_url + return + else + id_to_send = params[:id_to_send] + + identity = oidreq.identity + if oidreq.id_select + if id_to_send and id_to_send != "" + session[:username] = id_to_send + session[:approvals] = [] + identity = url_for_user + else + msg = "You must enter a username to in order to send " + + "an identifier to the Relying Party." + show_decision_page(oidreq, msg) + return + end + end + + if session[:approvals] + session[:approvals] << oidreq.trust_root + else + session[:approvals] = [oidreq.trust_root] + end + oidresp = oidreq.answer(true, nil, identity) + add_sreg(oidreq, oidresp) + add_pape(oidreq, oidresp) + return self.render_response(oidresp) + end + end + + protected + + def server + if @server.nil? + server_url = url_for :action => 'index', :only_path => false + dir = Pathname.new(RAILS_ROOT).join('db').join('openid-store') + store = OpenID::Store::Filesystem.new(dir) + @server = Server.new(store, server_url) + end + return @server + end + + def approved(trust_root) + return false if session[:approvals].nil? + return session[:approvals].member?(trust_root) + end + + def is_authorized(identity_url, trust_root) + return (session[:username] and (identity_url == url_for_user) and self.approved(trust_root)) + end + + def render_xrds(types) + type_str = "" + + types.each { |uri| + type_str += "<Type>#{uri}</Type>\n " + } + + yadis = <<EOS +<?xml version="1.0" encoding="UTF-8"?> +<xrds:XRDS + xmlns:xrds="xri://$xrds" + xmlns="xri://$xrd*($v*2.0)"> + <XRD> + <Service priority="0"> + #{type_str} + <URI>#{url_for(:controller => 'server', :only_path => false)}</URI> + </Service> + </XRD> +</xrds:XRDS> +EOS + + response.headers['content-type'] = 'application/xrds+xml' + render :text => yadis + end + + def render_response(oidresp) + if oidresp.needs_signing + signed_response = server.signatory.sign(oidresp) + end + web_response = server.encode_response(oidresp) + + case web_response.code + when HTTP_OK + render :text => web_response.body, :status => 200 + + when HTTP_REDIRECT + redirect_to web_response.headers['location'] + + else + render :text => web_response.body, :status => 400 + end + end + + +end diff --git a/packages/chef-server/app/helpers/global_helpers.rb b/packages/chef-server/app/helpers/global_helpers.rb new file mode 100644 index 0000000000..1ef7ac9331 --- /dev/null +++ b/packages/chef-server/app/helpers/global_helpers.rb @@ -0,0 +1,17 @@ +module Merb + module GlobalHelpers + # helpers defined here available to all views. + def resource_collection(collection) + html = "<ul>" + collection.each do |resource| + html << "<li><b>#{resource.class}</b></li>" + end + html << "</ul>" + html + end + + def node_escape(node) + node.gsub(/\./, '_') + end + end +end diff --git a/packages/chef-server/app/helpers/nodes_helper.rb b/packages/chef-server/app/helpers/nodes_helper.rb new file mode 100644 index 0000000000..5e6c25c453 --- /dev/null +++ b/packages/chef-server/app/helpers/nodes_helper.rb @@ -0,0 +1,19 @@ +module Merb + module NodesHelper + def recipe_list(node) + response = "" + node.recipes.each do |recipe| + response << "<li>#{recipe}</li>" + end + response + end + + def attribute_list(node) + response = "" + node.each_attribute do |k,v| + response << "<li><b>#{k}</b>: #{v}</li>" + end + response + end + end +end
\ No newline at end of file diff --git a/packages/chef-server/app/helpers/openid_server_helpers.rb b/packages/chef-server/app/helpers/openid_server_helpers.rb new file mode 100644 index 0000000000..466287ac1a --- /dev/null +++ b/packages/chef-server/app/helpers/openid_server_helpers.rb @@ -0,0 +1,9 @@ +module Merb + module OpenidServerHelper + + def url_for_user + url :controller => 'user', :action => session[:username] + end + + end +end diff --git a/packages/chef-server/app/views/exceptions/bad_request.json.erb b/packages/chef-server/app/views/exceptions/bad_request.json.erb new file mode 100644 index 0000000000..f266cf99b9 --- /dev/null +++ b/packages/chef-server/app/views/exceptions/bad_request.json.erb @@ -0,0 +1 @@ +<%= { :error => params[:exception], :code => 400 }.to_json %>
\ No newline at end of file diff --git a/packages/chef-server/app/views/exceptions/internal_server_error.html.erb b/packages/chef-server/app/views/exceptions/internal_server_error.html.erb new file mode 100644 index 0000000000..aadbfad350 --- /dev/null +++ b/packages/chef-server/app/views/exceptions/internal_server_error.html.erb @@ -0,0 +1,216 @@ +<html> +<head> + <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> + <title><%= @exception_name %></title> + <style type="text/css" media="screen"> + body { + font-family:arial; + font-size:11px; + } + h1 { + font-size:48px; + letter-spacing:-4px; + margin:0; + line-height:36px; + color:#333; + } + h1 sup { + font-size: 0.5em; + } + h1 sup.error_500, h1 sup.error_400 { + color:#990E05; + } + h1 sup.error_100, h1 sup.error_200 { + color:#00BF10; + } + h1 sup.error_300 { + /* pretty sure you cant 'see' status 300 + errors but if you could I think they + would be blue */ + color:#1B2099; + } + h2 { + font-size:36px; + letter-spacing:-3px; + margin:0; + line-height:28px; + color:#444; + } + a, a:visited { + color:#00BF10; + } + .internalError { + width:800px; + margin:50px auto; + } + .header { + border-bottom:10px solid #333; + margin-bottom:1px; + background-image: url("data:image/gif;base64,R0lGODlhAwADAIAAAP///8zMzCH5BAAAAAAALAAAAAADAAMAAAIEBHIJBQA7"); + padding:20px; + } + table.trace { + width:100%; + font-family:courier, monospace; + letter-spacing:-1px; + border-collapse: collapse; + border-spacing:0; + } + table.trace tr td{ + padding:0; + height:26px; + font-size:13px; + vertical-align:middle; + } + table.trace tr.file{ + border-top:2px solid #fff; + background-color:#F3F3F3; + } + table.trace tr.source { + background-color:#F8F8F8; + display:none; + } + table.trace .open tr.source { + display:table-row; + } + table.trace tr.file td.expand { + width:23px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAIAAABvSEP3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdVJREFUeNqMVL+TwUAYxaRIOlEhlZHGDAUzzOQ61+AqXMV1lJSU7q/QRqm8KFUcJTNn5qJkaPyoKKVz7y4mF8na5Kt29tt9+/Z97/u81+vVQ4r9frdarS6Xi7ETDIZisRjxMGPfmk4niNPpZE+xLAugbPaZ53nzvtfMBe/3+/3dbuehBrAKhZdUKkVAWa9Xsiybv0CPZDJZLr/qa5/BwgwRjYqOKIvFYjQa/aNommZh0Ww2K5UqzwfoQOPxaLPZ3FAmk0+7lplMpt1u53J5OpBOR0eZEE9wHJfP5zud93g88QhluwWbjW+5VOmKBgKBer3eaDTDYeGBQF8+x7rqIYoiPgixWJazpA6HA+MSxRArkUgMh0M409g8Ho8+9wYxxCqVSq1W26EDHGM2m4HOHQrEc38f/Yn7cLmlIRhBENzcx8cVRZnPZ/YUep2BWkjTIfA+PKVpZAXR5QxsjiqCKvGEqqp443w+0dvy17swqD0HB3S73V5PpkNg1qBqt8kwGCjmPkinM0QJbIoEa7U6UG6ToVgs4V9G2g0ESoP5Aoi7KYX5oCgf8IKbkvn9/mr1LRQKESamzgJy0g0tSZIuB3nuGqRU9Vv9C4sKkUhEkp4soxvxI8AAhWrrtXa3X8EAAAAASUVORK5CYII=); + background-position:top left; + background-repeat:no-repeat; + } + table.trace .open tr.file td.expand { + width:19px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXZJREFUeNrslK1ywkAUhcMOBomEOiSdqLxEBJX0NaijOsjyHGGmCGyQQYaiiiw4gktkcOmZbpsuuzQ/M5XnqJ2d3S/n3nM3rTzPLUP7/Tt0+pLcGQwG3W53OLyHzPMtjYL7q9UqSRLrD4E1Gj1orCvKYuFHUWTVkOM44/HjDcp8/lL4r6NerzeZPMm1KFw0QkDn83m5fP2lHA4fNQvRtNvtjsfDd0WzmSfb2e/fdTqdOvdh/HLJZLOn0+d2HJ+KRGzbdl23EpFlmed5cp2maRzHQq1lvQ5KMi6EUZBGfup6E1pTfd+vrGW7jbQ2C9hTt9BpqNyIWaAwAy6xg2eBz5iRC/NomiZhGN5sqmnkauo0BUGgVQoBjQ80oCACgNQdZHfTYBkF2mxCtWWAqunWpahxIDUt3QYUxIFQpJHyIWpXjinabKbbwItMHT+NyjchrP8QKaSQQgoppJBCCimkkEIKKaSQQgoppJBCCimkkEIKKaSo+hRgAEFD17X08O2NAAAAAElFTkSuQmCC); + background-position:top left; + background-repeat:no-repeat; + } + table.trace tr.source td.collapse { + width:19px; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVxJREFUeNrs0zFygkAUBmBlUkgJHdABlQwVkVJKKUxBYWbkALTxMJwhltyDFkss03IF8pudIcwaDaDl/6pd2P327b7d+eHwMXs4lNkzggoVKlSoUKFChQoVKlSoUKFChQoVKlSoUKFChQqVEYqm6ft9+qiSJEkYho7jTlcw2fd9NOI4nq4gEdFwXXe1Cqco63VkWVbXRTqLhTpOwQRpF7quR1E0TgGhqvLKUFCyoQqG/rks3O6kZKW/eRFpevOCoGTXVTcMQ5EyxyDEkML1c5RzuZOICIyXqn7JBVez6282MWrx731HOv2qB8Hri2lamNk0DfpVVdV1Peodappmmua8bdvzuc7zfNprzrLMth1FnGh/X8MjCAIQv/cFz/+65PcDh7rbvYv2ZUfdj+PxsyzLgVl0hKwgTqeqKApx2LeOc7t98zyv/1FWOgvx9RPii23bmL9cetJ8Ed8CDAC6aFW8bCzFhwAAAABJRU5ErkJggg==); + background-position:bottom left; + background-repeat:no-repeat; + background-color:#6F706F; + } + table.trace tr td.path { + padding-left:10px; + } + table.trace tr td.code { + padding-left:35px; + white-space: pre; + line-height:9px; + padding-bottom:10px; + } + table.trace tr td.code em { + font-weight:bold; + color:#00BF10; + } + table.trace tr td.code a { + width: 20px; + float: left; + } + table.trace tr td.code .more { + color:#666; + } + table.trace tr td.line { + width:30px; + text-align:right; + padding-right:4px; + } + .footer { + margin-top:5px; + font-size:11px; + color:#444; + text-align:right; + } + </style> +</head> +<body> + <div class="internalError"> + + <div class="header"> + <h1><%= @exception_name %> <sup class="error_<%= @exception.class::STATUS %>"><%= @exception.class::STATUS %></sup></h1> + <% if show_details = ::Merb::Config[:exception_details] -%> + <h2><%= @exception.message %></h2> + <% else -%> + <h2>Sorry about that...</h2> + <% end -%> + <h3>Parameters</h3> + <ul> + <% params[:original_params].each do |param, value| %> + <li><strong><%= param %>:</strong> <%= value.inspect %></li> + <% end %> + <%= "<li>None</li>" if params[:original_params].empty? %> + </ul> + + <h3>Session</h3> + <ul> + <% params[:original_session].each do |param, value| %> + <li><strong><%= param %>:</strong> <%= value.inspect %></li> + <% end %> + <%= "<li>None</li>" if params[:original_session].empty? %> + </ul> + + <h3>Cookies</h3> + <ul> + <% params[:original_cookies].each do |param, value| %> + <li><strong><%= param %>:</strong> <%= value.inspect %></li> + <% end %> + <%= "<li>None</li>" if params[:original_cookies].empty? %> + </ul> + </div> + + <% if show_details %> + <table class="trace"> + <% @exception.backtrace.each_with_index do |line, index| %> + <tbody class="close"> + <tr class="file"> + <td class="expand"> + </td> + <td class="path"> + <%= (line.match(/^([^:]+)/)[1] rescue 'unknown').sub(/\/((opt|usr)\/local\/lib\/(ruby\/)?(gems\/)?(1.8\/)?(gems\/)?|.+\/app\/)/, '') %> + <% unless line.match(/\.erb:/) %> + in "<strong><%= line.match(/:in `(.+)'$/)[1] rescue '?' %></strong>" + <% else %> + (<strong>ERB Template</strong>) + <% end %> + </td> + <td class="line"> + <a href="txmt://open?url=file://<%=file = (line.match(/^([^:]+)/)[1] rescue 'unknown')%>&line=<%= lineno = line.match(/:([0-9]+):/)[1] rescue '?' %>"><%=lineno%></a> + </td> + </tr> + <tr class="source"> + <td class="collapse"> + </td> + <td class="code" colspan="2"><% (__caller_lines__(file, lineno, 5) rescue []).each do |llineno, lcode, lcurrent| %> +<a href="txmt://open?url=file://<%=file%>&line=<%=llineno%>"><%= llineno %></a><%='<em>' if llineno==lineno.to_i %><%= lcode.size > 90 ? CGI.escapeHTML(lcode[0..90])+'<span class="more">......</span>' : CGI.escapeHTML(lcode) %><%='</em>' if llineno==lineno.to_i %> +<% end %> + +</td> + </tr> + </tbody> + <% end %> + </table> + <script type="text/javascript" charset="utf-8"> + // swop the open & closed classes + els = document.getElementsByTagName('td'); + for(i=0; i<els.length; i++){ + if(els[i].className=='expand' || els[i].className=='collapse'){ + els[i].onclick = function(e){ + tbody = this.parentNode.parentNode; + if(tbody.className=='open'){ + tbody.className='closed'; + }else{ + tbody.className='open'; + } + } + } + } + </script> + <% end %> + <div class="footer"> + lots of love, from <a href="#">merb</a> + </div> + </div> +</body> +</html>
\ No newline at end of file diff --git a/packages/chef-server/app/views/exceptions/not_acceptable.html.erb b/packages/chef-server/app/views/exceptions/not_acceptable.html.erb new file mode 100644 index 0000000000..f632712bb2 --- /dev/null +++ b/packages/chef-server/app/views/exceptions/not_acceptable.html.erb @@ -0,0 +1,63 @@ +<div id="container"> + <div id="header-container"> + <img src="/images/merb.jpg" /> + <!-- <h1>Mongrel + Erb</h1> --> + <h2>pocket rocket web framework</h2> + <hr /> + </div> + + <div id="left-container"> + <h3>Exception:</h3> + <p><%= params[:exception] %></p> + </div> + + <div id="main-container"> + <h3>Why am I seeing this page?</h3> + <p>Merb couldn't find an appropriate content_type to return, + based on what you said was available via provides() and + what the client requested.</p> + + <h3>How to add a mime-type</h3> + <pre><code> + Merb.add_mime_type :pdf, :to_pdf, %w[application/pdf], "Content-Encoding" => "gzip" + </code></pre> + <h3>What this means is:</h3> + <ul> + <li>Add a mime-type for :pdf</li> + <li>Register the method for converting objects to PDF as <code>#to_pdf</code>.</li> + <li>Register the incoming mime-type "Accept" header as <code>application/pdf</code>.</li> + <li>Specify a new header for PDF types so it will set <code>Content-Encoding</code> to gzip.</li> + </ul> + + <h3>You can then do:</h3> + <pre><code> + class Foo < Application + provides :pdf + end + </code></pre> + + <h3>Where can I find help?</h3> + <p>If you have any questions or if you can't figure something out, please take a + look at our <a href="http://merbivore.com/"> project page</a>, + feel free to come chat at irc.freenode.net, channel #merb, + or post to <a href="http://groups.google.com/group/merb">merb mailing list</a> + on Google Groups.</p> + + <h3>What if I've found a bug?</h3> + <p>If you want to file a bug or make your own contribution to Merb, + feel free to register and create a ticket at our + <a href="http://merb.lighthouseapp.com/">project development page</a> + on Lighthouse.</p> + + <h3>How do I edit this page?</h3> + <p>You can change what people see when this happens by editing <tt>app/views/exceptions/not_acceptable.html.erb</tt>.</p> + + </div> + + <div id="footer-container"> + <hr /> + <div class="left"></div> + <div class="right">© 2007 the merb dev team</div> + <p> </p> + </div> +</div> diff --git a/packages/chef-server/app/views/exceptions/not_found.html.erb b/packages/chef-server/app/views/exceptions/not_found.html.erb new file mode 100644 index 0000000000..388c72c31d --- /dev/null +++ b/packages/chef-server/app/views/exceptions/not_found.html.erb @@ -0,0 +1,47 @@ +<div id="container"> + <div id="header-container"> + <img src="/images/merb.jpg" /> + <!-- <h1>Mongrel + Erb</h1> --> + <h2>pocket rocket web framework</h2> + <hr /> + </div> + + <div id="left-container"> + <h3>Exception:</h3> + <p><%= params[:exception] %></p> + </div> + + <div id="main-container"> + <h3>Welcome to Merb!</h3> + <p>Merb is a light-weight MVC framework written in Ruby. We hope you enjoy it.</p> + + <h3>Where can I find help?</h3> + <p>If you have any questions or if you can't figure something out, please take a + look at our <a href="http://merbivore.com/"> project page</a>, + feel free to come chat at irc.freenode.net, channel #merb, + or post to <a href="http://groups.google.com/group/merb">merb mailing list</a> + on Google Groups.</p> + + <h3>What if I've found a bug?</h3> + <p>If you want to file a bug or make your own contribution to Merb, + feel free to register and create a ticket at our + <a href="http://merb.lighthouseapp.com/">project development page</a> + on Lighthouse.</p> + + <h3>How do I edit this page?</h3> + <p>You're seeing this page because you need to edit the following files: + <ul> + <li>config/router.rb <strong><em>(recommended)</em></strong></li> + <li>app/views/exceptions/not_found.html.erb <strong><em>(recommended)</em></strong></li> + <li>app/views/layout/application.html.erb <strong><em>(change this layout)</em></strong></li> + </ul> + </p> + </div> + + <div id="footer-container"> + <hr /> + <div class="left"></div> + <div class="right">© 2007 the merb dev team</div> + <p> </p> + </div> +</div> diff --git a/packages/chef-server/app/views/layout/application.html.haml b/packages/chef-server/app/views/layout/application.html.haml new file mode 100644 index 0000000000..074c55ce0f --- /dev/null +++ b/packages/chef-server/app/views/layout/application.html.haml @@ -0,0 +1,15 @@ +!!! XML +!!! +%html + %head + %title Chef Server + %meta{"http-equiv" => "content-type", :content => "text/html; charset=utf-8" } + %link{:rel => "stylesheet", :href => "/stylesheets/master.css", :type => "text/css", :media => "screen", :charset => "utf-8" } + %body + = catch_content :for_layout + .footer + - if session[:username] + %a{:href => url(:controller => "openid_login", :action => "logout")}= "Log Out #{session[:username]}" + %br/ + = url(:controller => "openid_server", :action => "user_page", :username => session[:username]) +
\ No newline at end of file diff --git a/packages/chef-server/app/views/nodes/_node.html.haml b/packages/chef-server/app/views/nodes/_node.html.haml new file mode 100644 index 0000000000..7dce36488f --- /dev/null +++ b/packages/chef-server/app/views/nodes/_node.html.haml @@ -0,0 +1,11 @@ +.node + %h1 + = "Node #{h node.name}" + %h2 Actions + %a{ :href => url(:compile_node, { :id => node_escape(node.name) }) } Compile Node + %h2 Recipes + %ol + = recipe_list(node) + %h2 Attributes + %ol + = attribute_list(node) diff --git a/packages/chef-server/app/views/nodes/_resource.html.haml b/packages/chef-server/app/views/nodes/_resource.html.haml new file mode 100644 index 0000000000..bc7b55f91f --- /dev/null +++ b/packages/chef-server/app/views/nodes/_resource.html.haml @@ -0,0 +1,23 @@ +.resource + %h3= "#{h resource.to_s} (#{resource.class})" + %table + - resource.instance_variables.sort.each do |v| + - attr_name = v.gsub(/\@/, "") + - unless attr_name == "collection" + %tr.attr_group + %td.attr_name + = "#{h attr_name}" + - value = resource.instance_variable_get(v) + - if value.kind_of?(String) + %td.attr_value + = "#{h value}" + - elsif value.kind_of?(Array) + %td.attr_value + = "#{h value.join(", ")}" + - elsif value.kind_of?(Symbol) + %td.attr_value + = "#{h value.to_s}" + - else + %td.attr_value + = "#{h value.inspect}" + diff --git a/packages/chef-server/app/views/nodes/compile.html.haml b/packages/chef-server/app/views/nodes/compile.html.haml new file mode 100644 index 0000000000..5656447ea8 --- /dev/null +++ b/packages/chef-server/app/views/nodes/compile.html.haml @@ -0,0 +1,5 @@ += partial(:node, :node => @output[:node]) +.resource_collection + %h1 Resource Collection + - @output[:collection].each do |resource| + = partial(:resource, :resource => resource) diff --git a/packages/chef-server/app/views/nodes/index.html.haml b/packages/chef-server/app/views/nodes/index.html.haml new file mode 100644 index 0000000000..908f72fab5 --- /dev/null +++ b/packages/chef-server/app/views/nodes/index.html.haml @@ -0,0 +1,5 @@ +%h1 Node List +- @node_list.each do |node| + .node + %a{ :href => url(:node, { :id => node.gsub(/\./, "_") }) } + = node diff --git a/packages/chef-server/app/views/nodes/show.html.haml b/packages/chef-server/app/views/nodes/show.html.haml new file mode 100644 index 0000000000..94708af6d3 --- /dev/null +++ b/packages/chef-server/app/views/nodes/show.html.haml @@ -0,0 +1 @@ += partial(:node, :node => @node)
\ No newline at end of file diff --git a/packages/chef-server/app/views/openid_login/index.html.haml b/packages/chef-server/app/views/openid_login/index.html.haml new file mode 100644 index 0000000000..2bc2ef7c65 --- /dev/null +++ b/packages/chef-server/app/views/openid_login/index.html.haml @@ -0,0 +1,6 @@ +%h1 Login +#login-form + %form{ :method => "get", :action => url(:controller => "openid_login", :action => 'submit') } + %input{ :type => "text", :name => "username" }/ + %input{ :type => "submit", :value => "Log In"}/ +
\ No newline at end of file diff --git a/packages/chef-server/autotest/discover.rb b/packages/chef-server/autotest/discover.rb new file mode 100644 index 0000000000..fddd1269c4 --- /dev/null +++ b/packages/chef-server/autotest/discover.rb @@ -0,0 +1 @@ +Autotest.add_discovery { "merb" }
\ No newline at end of file diff --git a/packages/chef-server/autotest/merb.rb b/packages/chef-server/autotest/merb.rb new file mode 100644 index 0000000000..e9d51af585 --- /dev/null +++ b/packages/chef-server/autotest/merb.rb @@ -0,0 +1,149 @@ +# Adapted from Autotest::Rails +require 'autotest' + +class Autotest::Merb < Autotest + + # +model_tests_dir+:: the directory to find model-centric tests + # +controller_tests_dir+:: the directory to find controller-centric tests + # +view_tests_dir+:: the directory to find view-centric tests + # +fixtures_dir+:: the directory to find fixtures in + attr_accessor :model_tests_dir, :controller_tests_dir, :view_tests_dir, :fixtures_dir + + def initialize # :nodoc: + super + + initialize_test_layout + + # Ignore any happenings in these directories + add_exception %r%^\./(?:doc|log|public|tmp)% + + # Ignore any mappings that Autotest may have already set up + clear_mappings + + # Any changes to a file in the root of the 'lib' directory will run any + # model test with a corresponding name. + add_mapping %r%^lib\/.*\.rb% do |filename, _| + files_matching Regexp.new(["^#{model_test_for(filename)}$"]) + end + + # Any changes to a fixture will run corresponding view, controller and + # model tests + add_mapping %r%^#{fixtures_dir}/(.*)s.yml% do |_, m| + [ + model_test_for(m[1]), + controller_test_for(m[1]), + view_test_for(m[1]) + ] + end + + # Any change to a test or test will cause it to be run + add_mapping %r%^test/(unit|models|integration|controllers|views|functional)/.*rb$% do |filename, _| + filename + end + + # Any change to a model will cause it's corresponding test to be run + add_mapping %r%^app/models/(.*)\.rb$% do |_, m| + model_test_for(m[1]) + end + + # Any change to the global helper will result in all view and controller + # tests being run + add_mapping %r%^app/helpers/global_helpers.rb% do + files_matching %r%^test/(views|functional|controllers)/.*_test\.rb$% + end + + # Any change to a helper will run it's corresponding view and controller + # tests, unless the helper is the global helper. Changes to the global + # helper run all view and controller tests. + add_mapping %r%^app/helpers/(.*)_helper(s)?.rb% do |_, m| + if m[1] == "global" then + files_matching %r%^test/(views|functional|controllers)/.*_test\.rb$% + else + [ + view_test_for(m[1]), + controller_test_for(m[1]) + ] + end + end + + # Changes to views result in their corresponding view and controller test + # being run + add_mapping %r%^app/views/(.*)/% do |_, m| + [ + view_test_for(m[1]), + controller_test_for(m[1]) + ] + end + + # Changes to a controller result in its corresponding test being run. If + # the controller is the exception or application controller, all + # controller tests are run. + add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m| + if ["application", "exception"].include?(m[1]) + files_matching %r%^test/(controllers|views|functional)/.*_test\.rb$% + else + controller_test_for(m[1]) + end + end + + # If a change is made to the router, run all controller and view tests + add_mapping %r%^config/router.rb$% do # FIX + files_matching %r%^test/(controllers|views|functional)/.*_test\.rb$% + end + + # If any of the major files governing the environment are altered, run + # everything + add_mapping %r%^test/test_helper.rb|config/(init|rack|environments/test.rb|database.yml)% do # FIX + files_matching %r%^test/(unit|models|controllers|views|functional)/.*_test\.rb$% + end + end + +private + + # Determines the paths we can expect tests or specs to reside, as well as + # corresponding fixtures. + def initialize_test_layout + self.model_tests_dir = "test/unit" + self.controller_tests_dir = "test/functional" + self.view_tests_dir = "test/views" + self.fixtures_dir = "test/fixtures" + end + + # Given a filename and the test type, this method will return the + # corresponding test's or spec's name. + # + # ==== Arguments + # +filename+<String>:: the file name of the model, view, or controller + # +kind_of_test+<Symbol>:: the type of test we that we should run + # + # ==== Returns + # String:: the name of the corresponding test or spec + # + # ==== Example + # + # > test_for("user", :model) + # => "user_test.rb" + # > test_for("login", :controller) + # => "login_controller_test.rb" + # > test_for("form", :view) + # => "form_view_spec.rb" # If you're running a RSpec-like suite + def test_for(filename, kind_of_test) # :nodoc: + name = [filename] + name << kind_of_test.to_s if kind_of_test == :view + name << "test" + return name.join("_") + ".rb" + end + + def model_test_for(filename) + [model_tests_dir, test_for(filename, :model)].join("/") + end + + def controller_test_for(filename) + [controller_tests_dir, test_for(filename, :controller)].join("/") + end + + def view_test_for(filename) + [view_tests_dir, test_for(filename, :view)].join("/") + end + +end
\ No newline at end of file diff --git a/packages/chef-server/autotest/merb_rspec.rb b/packages/chef-server/autotest/merb_rspec.rb new file mode 100644 index 0000000000..9ff1f7263b --- /dev/null +++ b/packages/chef-server/autotest/merb_rspec.rb @@ -0,0 +1,223 @@ +# Adapted from Autotest::Rails, RSpec's autotest class, as well as merb-core's. +require 'autotest' + +class RspecCommandError < StandardError; end + +class Autotest::MerbRspec < Autotest + + # +model_tests_dir+:: the directory to find model-centric tests + # +controller_tests_dir+:: the directory to find controller-centric tests + # +view_tests_dir+:: the directory to find view-centric tests + # +fixtures_dir+:: the directory to find fixtures in + attr_accessor :model_tests_dir, :controller_tests_dir, :view_tests_dir, :fixtures_dir + + def initialize # :nodoc: + super + + initialize_test_layout + + # Ignore any happenings in these directories + add_exception %r%^\./(?:doc|log|public|tmp)% + + # Ignore any mappings that Autotest may have already set up + clear_mappings + + # Any changes to a file in the root of the 'lib' directory will run any + # model test with a corresponding name. + add_mapping %r%^lib\/.*\.rb% do |filename, _| + files_matching %r%#{model_test_for(filename)}$% + end + + add_mapping %r%^spec/(spec_helper|shared/.*)\.rb$% do + files_matching %r%^spec/.*_spec\.rb$% + end + + # Any changes to a fixture will run corresponding view, controller and + # model tests + add_mapping %r%^#{fixtures_dir}/(.*)s.yml% do |_, m| + [ + model_test_for(m[1]), + controller_test_for(m[1]), + view_test_for(m[1]) + ] + end + + # Any change to a test or spec will cause it to be run + add_mapping %r%^spec/(unit|models|integration|controllers|views|functional)/.*rb$% do |filename, _| + filename + end + + # Any change to a model will cause it's corresponding test to be run + add_mapping %r%^app/models/(.*)\.rb$% do |_, m| + model_test_for(m[1]) + end + + # Any change to the global helper will result in all view and controller + # tests being run + add_mapping %r%^app/helpers/global_helpers.rb% do + files_matching %r%^spec/(views|functional|controllers)/.*_spec\.rb$% + end + + # Any change to a helper will run it's corresponding view and controller + # tests, unless the helper is the global helper. Changes to the global + # helper run all view and controller tests. + add_mapping %r%^app/helpers/(.*)_helper(s)?.rb% do |_, m| + if m[1] == "global" then + files_matching %r%^spec/(views|functional|controllers)/.*_spec\.rb$% + else + [ + view_test_for(m[1]), + controller_test_for(m[1]) + ] + end + end + + # Changes to views result in their corresponding view and controller test + # being run + add_mapping %r%^app/views/(.*)/% do |_, m| + [ + view_test_for(m[1]), + controller_test_for(m[1]) + ] + end + + # Changes to a controller result in its corresponding test being run. If + # the controller is the exception or application controller, all + # controller tests are run. + add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m| + if ["application", "exception"].include?(m[1]) + files_matching %r%^spec/(controllers|views|functional)/.*_spec\.rb$% + else + controller_test_for(m[1]) + end + end + + # If a change is made to the router, run all controller and view tests + add_mapping %r%^config/router.rb$% do # FIX + files_matching %r%^spec/(controllers|views|functional)/.*_spec\.rb$% + end + + # If any of the major files governing the environment are altered, run + # everything + add_mapping %r%^spec/spec_helper.rb|config/(init|rack|environments/test.rb|database.yml)% do # FIX + files_matching %r%^spec/(unit|models|controllers|views|functional)/.*_spec\.rb$% + end + end + + def failed_results(results) + results.scan(/^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m) + end + + def handle_results(results) + @failures = failed_results(results) + @files_to_test = consolidate_failures @failures + unless $TESTING + if @files_to_test.empty? + hook :green + else + hook :red + end + end + @tainted = true unless @files_to_test.empty? + end + + def consolidate_failures(failed) + filters = Hash.new { |h,k| h[k] = [] } + failed.each do |spec, failed_trace| + find_files.keys.select { |f| f =~ /spec\// }.each do |f| + if failed_trace =~ Regexp.new(f) + filters[f] << spec + break + end + end + end + filters + end + + def make_test_cmd(files_to_test) + [ + ruby, + "-S", + spec_command, + add_options_if_present, + files_to_test.keys.flatten.join(' ') + ].join(" ") + end + + def add_options_if_present + File.exist?("spec/spec.opts") ? "-O spec/spec.opts " : "" + end + + # Finds the proper spec command to use. Precendence is set in the + # lazily-evaluated method spec_commands. Alias + Override that in + # ~/.autotest to provide a different spec command then the default + # paths provided. + def spec_command(separator=File::ALT_SEPARATOR) + unless defined? @spec_command then + @spec_command = spec_commands.find { |cmd| File.exists? cmd } + + raise RspecCommandError, "No spec command could be found!" unless @spec_command + + @spec_command.gsub!(File::SEPARATOR, separator) if separator + end + @spec_command + end + + # Autotest will look for spec commands in the following + # locations, in this order: + # + # * default spec bin/loader installed in Rubygems + # * any spec command found in PATH + def spec_commands + [ File.join(Config::CONFIG['bindir'], 'spec'), 'spec' ] + end + +private + + # Determines the paths we can expect tests or specs to reside, as well as + # corresponding fixtures. + def initialize_test_layout + self.model_tests_dir = "spec/models" + self.controller_tests_dir = "spec/controllers" + self.view_tests_dir = "spec/views" + self.fixtures_dir = "spec/fixtures" + end + + # Given a filename and the test type, this method will return the + # corresponding test's or spec's name. + # + # ==== Arguments + # +filename+<String>:: the file name of the model, view, or controller + # +kind_of_test+<Symbol>:: the type of test we that we should run + # + # ==== Returns + # String:: the name of the corresponding test or spec + # + # ==== Example + # + # > test_for("user", :model) + # => "user_test.rb" + # > test_for("login", :controller) + # => "login_controller_test.rb" + # > test_for("form", :view) + # => "form_view_spec.rb" # If you're running a RSpec-like suite + def test_for(filename, kind_of_test) # :nodoc: + name = [filename] + name << kind_of_test.to_s if kind_of_test == :view + name << "spec" + return name.join("_") + ".rb" + end + + def model_test_for(filename) + [model_tests_dir, test_for(filename, :model)].join("/") + end + + def controller_test_for(filename) + [controller_tests_dir, test_for(filename, :controller)].join("/") + end + + def view_test_for(filename) + [view_tests_dir, test_for(filename, :view)].join("/") + end + +end diff --git a/packages/chef-server/config/chef-server.rb b/packages/chef-server/config/chef-server.rb new file mode 100644 index 0000000000..1763cf7263 --- /dev/null +++ b/packages/chef-server/config/chef-server.rb @@ -0,0 +1,9 @@ +# +# Example Chef Solo Config + +cookbook_path File.join(File.dirname(__FILE__), "..", "..", "..", "examples", "config", "cookbooks") +node_path File.join(File.dirname(__FILE__), "..", "..", "..", "examples", "config", "nodes") +file_store_path File.join(File.dirname(__FILE__), "..", "..", "..", "examples", "store") +log_level :debug + +Chef::Log::Formatter.show_time = false diff --git a/packages/chef-server/config/environments/development.rb b/packages/chef-server/config/environments/development.rb new file mode 100644 index 0000000000..69ed60266d --- /dev/null +++ b/packages/chef-server/config/environments/development.rb @@ -0,0 +1,7 @@ +Merb.logger.info("Loaded DEVELOPMENT Environment...") +Merb::Config.use { |c| + c[:exception_details] = true + c[:reload_classes] = true + c[:reload_time] = 0.5 + c[:log_auto_flush ] = true +}
\ No newline at end of file diff --git a/packages/chef-server/config/environments/production.rb b/packages/chef-server/config/environments/production.rb new file mode 100644 index 0000000000..e389e6feeb --- /dev/null +++ b/packages/chef-server/config/environments/production.rb @@ -0,0 +1,7 @@ +Merb.logger.info("Loaded PRODUCTION Environment...") +Merb::Config.use { |c| + c[:exception_details] = false + c[:reload_classes] = false + c[:log_level] = :error + c[:log_file] = Merb.log_path + "/production.log" +}
\ No newline at end of file diff --git a/packages/chef-server/config/environments/rake.rb b/packages/chef-server/config/environments/rake.rb new file mode 100644 index 0000000000..098d3e4a9e --- /dev/null +++ b/packages/chef-server/config/environments/rake.rb @@ -0,0 +1,7 @@ +Merb.logger.info("Loaded RAKE Environment...") +Merb::Config.use { |c| + c[:exception_details] = true + c[:reload_classes] = false + c[:log_auto_flush ] = true + c[:log_file] = Merb.log_path / 'merb_rake.log' +} diff --git a/packages/chef-server/config/environments/test.rb b/packages/chef-server/config/environments/test.rb new file mode 100644 index 0000000000..6865fb4a4e --- /dev/null +++ b/packages/chef-server/config/environments/test.rb @@ -0,0 +1,6 @@ +Merb.logger.info("Loaded TEST Environment...") +Merb::Config.use { |c| + c[:testing] = true + c[:exception_details] = true + c[:log_auto_flush ] = true +}
\ No newline at end of file diff --git a/packages/chef-server/config/init.rb b/packages/chef-server/config/init.rb new file mode 100644 index 0000000000..bdd6d3f8ce --- /dev/null +++ b/packages/chef-server/config/init.rb @@ -0,0 +1,152 @@ +# +# ==== Structure of Merb initializer +# +# 1. Load paths. +# 2. Dependencies configuration. +# 3. Libraries (ORM, testing tool, etc) you use. +# 4. Application-specific configuration. + +# +# ==== Set up load paths +# + +# Make the app's "gems" directory a place where gems are loaded from. +# Note that gems directory must have a structure RubyGems uses for +# directories under which gems are kept. +# +# To conveniently set it up use gem install -i <merb_app_root/gems> +# when installing gems. This will set up the structure under /gems +# automagically. +# +# An example: +# +# You want to bundle ActiveRecord and ActiveSupport with your Merb +# application to be deployment environment independent. To do so, +# install gems into merb_app_root/gems directory like this: +# +# gem install -i ~/dev/merbapp/gems activesupport-post-2.0.2gem activerecord-post-2.0.2.gem +# +# Since RubyGems will search merb_app_root/gems for dependencies, order +# in statement above is important: we need to install ActiveSupport which +# ActiveRecord depends on first. +# +# Remember that bundling of dependencies as gems with your application +# makes it independent of the environment it runs in and is a very +# good, encouraged practice to follow. +Gem.clear_paths +Gem.path.unshift(Merb.root / "gems") + +# If you want modules and classes from libraries organized like +# merbapp/lib/magicwand/lib/magicwand.rb to autoload, +# uncomment this. +Merb.push_path(:lib, File.join(Merb.root, "..", "..", "lib")) +# Merb.push_path(:lib, Merb.root / "lib") # uses **/*.rb as path glob. + +# ==== Dependencies + +# These are some examples of how you might specify dependencies. +# Dependencies load is delayed to one of later Merb app +# boot stages. It may be important when +# later part of your configuration relies on libraries specified +# here. +# +# dependencies "RedCloth", "merb_helpers" +# OR +# dependency "RedCloth", "> 3.0" +# OR +# dependencies "RedCloth" => "> 3.0", "ruby-aes-cext" => "= 1.0" +Merb::BootLoader.after_app_loads do + # Add dependencies here that must load after the application loads: + Chef::Config.from_file(File.join(Merb.root, "config", "chef-server.rb")) + Chef::Queue.connect + + # dependency "magic_admin" # this gem uses the app's model classes +end + +# +# ==== Set up your ORM of choice +# + +# Merb doesn't come with database support by default. You need +# an ORM plugin. Install one, and uncomment one of the following lines, +# if you need a database. + +# Uncomment for DataMapper ORM +# use_orm :datamapper + +# Uncomment for ActiveRecord ORM +# use_orm :activerecord + +# Uncomment for Sequel ORM +# use_orm :sequel + +require 'merb-haml' + +# +# ==== Pick what you test with +# + +# This defines which test framework the generators will use +# rspec is turned on by default +# +# Note that you need to install the merb_rspec if you want to ue +# rspec and merb_test_unit if you want to use test_unit. +# merb_rspec is installed by default if you did gem install +# merb. +# +# use_test :test_unit +use_test :rspec + + +# +# ==== Set up your basic configuration +# +Merb::Config.use do |c| + # Sets up a custom session id key, if you want to piggyback sessions of other applications + # with the cookie session store. If not specified, defaults to '_session_id'. + c[:session_id_key] = '_chef_server_session_id' + c[:session_secret_key] = '0992ea491c30ec76c98367c1ca53b18c1e7c5b30' + c[:session_store] = 'cookie' +end + + +# ==== Tune your inflector + +# To fine tune your inflector use word, singular_word and plural_word +# methods of Language::English::Inflector module metaclass. +# +# Here we define erratum/errata exception case: +# +# Language::English::Inflector.word "erratum", "errata" +# +# In case singular and plural forms are the same omit +# second argument on call: +# +# Language::English::Inflector.word 'information' +# +# You can also define general, singularization and pluralization +# rules: +# +# Once the following rule is defined: +# Language::English::Inflector.rule 'y', 'ies' +# +# You can see the following results: +# irb> "fly".plural +# => flies +# irb> "cry".plural +# => cries +# +# Example for singularization rule: +# +# Language::English::Inflector.singular_rule 'o', 'oes' +# +# Works like this: +# irb> "heroes".singular +# => hero +# +# Example of pluralization rule: +# Language::English::Inflector.singular_rule 'fe', 'ves' +# +# And the result is: +# irb> "wife".plural +# => wives diff --git a/packages/chef-server/config/rack.rb b/packages/chef-server/config/rack.rb new file mode 100644 index 0000000000..f00cf55eee --- /dev/null +++ b/packages/chef-server/config/rack.rb @@ -0,0 +1 @@ +run Merb::Rack::Application.new
\ No newline at end of file diff --git a/packages/chef-server/config/router.rb b/packages/chef-server/config/router.rb new file mode 100644 index 0000000000..500154be33 --- /dev/null +++ b/packages/chef-server/config/router.rb @@ -0,0 +1,50 @@ +# Merb::Router is the request routing mapper for the merb framework. +# +# You can route a specific URL to a controller / action pair: +# +# r.match("/contact"). +# to(:controller => "info", :action => "contact") +# +# You can define placeholder parts of the url with the :symbol notation. These +# placeholders will be available in the params hash of your controllers. For example: +# +# r.match("/books/:book_id/:action"). +# to(:controller => "books") +# +# Or, use placeholders in the "to" results for more complicated routing, e.g.: +# +# r.match("/admin/:module/:controller/:action/:id"). +# to(:controller => ":module/:controller") +# +# You can also use regular expressions, deferred routes, and many other options. +# See merb/specs/merb/router.rb for a fairly complete usage sample. + +Merb.logger.info("Compiling routes...") +Merb::Router.prepare do |r| + # RESTful routes + # r.resources :posts + + # This is the default route for /:controller/:action/:id + # This is fine for most cases. If you're heavily using resource-based + # routes, you may want to comment/remove this line to prevent + # clients from calling your create or destroy actions with a GET + + r.resources :nodes + r.resources :nodes, :member => { :compile => :get } + + r.match("/openid_server").to(:controller => "openid_server", :action => "index") + r.match("/openid_server/server/xrds"). + to(:controller => "openid_server", :action => 'idp_xrds') + r.match("/openid_server/user/:username"). + to(:controller => "openid_server", :action => 'user_page') + r.match('/openid_server/user/:username/xrds'). + to(:controller => 'openid_server', :action => 'user_xrds') + r.match('/openid_login').to(:controller => 'openid_login', :action => 'index') + r.match('/openid_login/submit').to(:controller => 'openid_login', :action => 'submit') + r.match('/openid_login/logout').to(:controller => 'openid_login', :action => 'logout') + + #r.default_routes + + # Change this for your home page to be available at / + # r.match('/').to(:controller => 'whatever', :action =>'index') +end
\ No newline at end of file diff --git a/packages/chef-server/log/merb_test.log b/packages/chef-server/log/merb_test.log new file mode 100644 index 0000000000..d56430f23a --- /dev/null +++ b/packages/chef-server/log/merb_test.log @@ -0,0 +1,3859 @@ +Wed, 14 May 2008 07:07:04 GMT ~ info ~ Logfile created + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>1.2e-05, :action_time=>0.024802, :before_filters_time=>0.000222} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000116, :after_filters_time=>8.0e-06, :action_time=>0.001278} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>7.0e-06, :action_time=>0.001212} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>6.0e-06, :action_time=>0.00118} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001156, :before_filters_time=>0.000111, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001213, :before_filters_time=>0.000115, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001327, :before_filters_time=>0.000108, :after_filters_time=>9.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001202, :before_filters_time=>0.0001, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001337, :before_filters_time=>0.000105, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001207, :before_filters_time=>0.000113, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001222, :before_filters_time=>0.000116, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001195, :before_filters_time=>0.000101} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001367, :before_filters_time=>0.000136, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001185, :before_filters_time=>0.000114, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001277, :before_filters_time=>0.000109, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001215, :before_filters_time=>0.000102, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001223, :before_filters_time=>0.0001, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001335, :before_filters_time=>0.000125, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000315, :before_filters_time=>9.5e-05, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001247, :before_filters_time=>0.000113, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001186, :before_filters_time=>0.000112, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001332, :before_filters_time=>0.000122, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.00119, :before_filters_time=>0.000112, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001199, :before_filters_time=>0.000117, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001225, :before_filters_time=>0.000112, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001935, :before_filters_time=>0.000149, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001171, :before_filters_time=>0.00011, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001188, :before_filters_time=>0.000109, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001332, :before_filters_time=>0.000122, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001238, :before_filters_time=>0.000103, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>6.0e-06, :action_time=>0.001177} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001187, :before_filters_time=>0.0001, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001288, :before_filters_time=>0.000102, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001323, :before_filters_time=>0.000105, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001226, :before_filters_time=>0.000101, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.0012, :before_filters_time=>0.000102, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001198, :before_filters_time=>0.000102, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.002015, :before_filters_time=>0.00016, :after_filters_time=>1.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001281, :before_filters_time=>0.000103, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001184, :before_filters_time=>0.000101, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001205, :before_filters_time=>0.000105, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001178, :before_filters_time=>0.000101, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001178, :before_filters_time=>0.000113, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001215, :before_filters_time=>0.000111} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001171, :before_filters_time=>0.000113, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000101, :after_filters_time=>7.0e-06, :action_time=>0.001185} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000125, :after_filters_time=>6.0e-06, :action_time=>0.001767} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000119, :after_filters_time=>7.0e-06, :action_time=>0.001533} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000118, :after_filters_time=>6.0e-06, :action_time=>0.001226} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.0001, :after_filters_time=>1.4e-05, :action_time=>0.001227} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000104, :after_filters_time=>6.0e-06, :action_time=>0.001262} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000101, :after_filters_time=>7.0e-06, :action_time=>0.001199} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.0001, :after_filters_time=>6.0e-06, :action_time=>0.001208} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000101, :after_filters_time=>8.0e-06, :action_time=>0.001227} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>7.0e-06, :action_time=>0.00027} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.0001, :after_filters_time=>7.0e-06, :action_time=>0.001197} + ~ {:before_filters_time=>7.7e-05, :after_filters_time=>5.0e-06, :action_time=>0.000272} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>9.9e-05, :after_filters_time=>7.0e-06, :action_time=>0.00121} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000228} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000101, :after_filters_time=>7.0e-06, :action_time=>0.001255} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000229} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>9.9e-05, :after_filters_time=>8.0e-06, :action_time=>0.001216} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000225} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.0001, :after_filters_time=>8.0e-06, :action_time=>0.001248} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000231} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001303, :before_filters_time=>0.000124, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000237, :before_filters_time=>8.5e-05, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001202, :before_filters_time=>0.000114, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000223, :before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001214, :before_filters_time=>0.000119, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000227, :before_filters_time=>8.4e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001192, :before_filters_time=>0.000124, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000227, :before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001212, :before_filters_time=>0.000101} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.0012, :before_filters_time=>0.000112, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000271, :before_filters_time=>9.3e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001227, :before_filters_time=>0.000112, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000224, :before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001221, :before_filters_time=>0.000116, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000229, :before_filters_time=>8.5e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001209, :before_filters_time=>0.00011, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000223, :before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001209, :before_filters_time=>0.000112, :after_filters_time=>9.0e-06} + ~ {:action_time=>0.000227, :before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000105, :after_filters_time=>8.0e-06, :action_time=>0.001221} + ~ {:before_filters_time=>7.6e-05, :after_filters_time=>5.0e-06, :action_time=>0.000235} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000108, :after_filters_time=>7.0e-06, :action_time=>0.001178} + ~ {:before_filters_time=>8.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.00023} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>8.0e-06, :action_time=>0.001185} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.00022} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000115, :after_filters_time=>8.0e-06, :action_time=>0.001284} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000247} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>7.0e-06, :action_time=>0.001235} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000227} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000114, :after_filters_time=>7.0e-06, :action_time=>0.001223} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000224} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>9.8e-05, :after_filters_time=>1.6e-05, :action_time=>0.001176} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000219} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001192, :before_filters_time=>9.9e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000243, :before_filters_time=>7.9e-05, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001274, :before_filters_time=>0.000103, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000238, :before_filters_time=>7.8e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001568, :before_filters_time=>0.000104, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000225, :before_filters_time=>7.4e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001172, :before_filters_time=>0.000109, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.00022, :before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000115, :after_filters_time=>7.0e-06, :action_time=>0.001284} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000226} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>9.0e-06, :action_time=>0.001216, :before_filters_time=>0.000111} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000244, :before_filters_time=>8.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000135, :after_filters_time=>3.1e-05, :action_time=>0.001259} + ~ {:before_filters_time=>8.5e-05, :after_filters_time=>7.0e-06, :action_time=>0.000265} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>7.0e-06, :action_time=>0.001182} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>7.0e-06, :action_time=>0.000218} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>7.0e-06, :action_time=>0.001199} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>7.0e-06, :action_time=>0.000221} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>7.0e-06, :action_time=>0.001249} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000221} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>7.0e-06, :action_time=>0.001254} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000224} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>7.0e-06, :action_time=>0.001203} + ~ {:before_filters_time=>8.8e-05, :after_filters_time=>6.0e-06, :action_time=>0.000228} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>7.0e-06, :action_time=>0.001376} + ~ {:before_filters_time=>8.7e-05, :after_filters_time=>6.0e-06, :action_time=>0.00023} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000147, :after_filters_time=>7.0e-06, :action_time=>0.001268} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.00024} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>9.0e-06, :action_time=>0.001266, :before_filters_time=>0.000113} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>7.0e-06, :action_time=>0.001196} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000222} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.00121, :before_filters_time=>9.9e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000222, :before_filters_time=>7.4e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001221, :before_filters_time=>9.8e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000223, :before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001193, :before_filters_time=>9.9e-05, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000227, :before_filters_time=>7.4e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001255, :before_filters_time=>0.000101, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000258, :before_filters_time=>7.6e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001264, :before_filters_time=>0.000102, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000249, :before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000111, :after_filters_time=>7.0e-06, :action_time=>0.001203} + ~ {:before_filters_time=>7.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000221} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000118, :after_filters_time=>7.0e-06, :action_time=>0.001258} + ~ {:before_filters_time=>0.000109, :after_filters_time=>5.0e-06, :action_time=>0.0003} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000116, :after_filters_time=>8.0e-06, :action_time=>0.001274} + ~ {:before_filters_time=>8.8e-05, :after_filters_time=>6.0e-06, :action_time=>0.000239} + ~ {:before_filters_time=>3.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.00025} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000111, :after_filters_time=>7.0e-06, :action_time=>0.001246} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000227} + ~ {:before_filters_time=>4.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000273} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001194, :before_filters_time=>0.000101} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000233, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000293, :before_filters_time=>3.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>7.0e-06, :action_time=>0.001205} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.00022} + ~ {:before_filters_time=>4.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000266} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00011, :after_filters_time=>7.0e-06, :action_time=>0.001201} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.00022} + ~ {:before_filters_time=>3.8e-05, :after_filters_time=>6.0e-06, :action_time=>0.000225} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00012, :after_filters_time=>8.0e-06, :action_time=>0.001336} + ~ {:before_filters_time=>9.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000247} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000241} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000111, :after_filters_time=>8.0e-06, :action_time=>0.001231} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000225} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>7.0e-06, :action_time=>0.000236} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001177, :before_filters_time=>0.000111, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000223, :before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000241, :before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001252, :before_filters_time=>0.000114, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000224, :before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000246, :before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001292, :before_filters_time=>0.000122, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.00024, :before_filters_time=>9.2e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000255, :before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001226, :before_filters_time=>0.000111, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000243, :before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000265, :before_filters_time=>4.0e-05, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001282, :before_filters_time=>0.00013} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000222, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001285, :before_filters_time=>0.00012, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000223, :before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000255, :before_filters_time=>4.2e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001235, :before_filters_time=>0.000101, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000249, :before_filters_time=>7.9e-05, :after_filters_time=>1.3e-05} + ~ {:action_time=>0.000267, :before_filters_time=>3.8e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001199, :before_filters_time=>0.000111, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000221, :before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.00024, :before_filters_time=>3.8e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001185, :before_filters_time=>0.00011, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.00022, :before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000257, :before_filters_time=>3.5e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001231, :before_filters_time=>0.000155} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>3.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001278, :before_filters_time=>0.000113, :after_filters_time=>8.0e-06} + ~ {:action_time=>0.000226, :before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.00027, :before_filters_time=>3.6e-05, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>7.0e-06, :action_time=>0.001199} + ~ {:before_filters_time=>7.6e-05, :after_filters_time=>5.0e-06, :action_time=>0.000227} + ~ {:before_filters_time=>3.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.000279} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000112, :after_filters_time=>8.0e-06, :action_time=>0.001195} + ~ {:before_filters_time=>7.8e-05, :after_filters_time=>7.0e-06, :action_time=>0.000225} + ~ {:before_filters_time=>6.7e-05, :after_filters_time=>7.0e-06, :action_time=>0.000312} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>9.9e-05, :after_filters_time=>8.0e-06, :action_time=>0.001214} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000219} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000256} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000239} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>9.9e-05, :after_filters_time=>7.0e-06, :action_time=>0.001192} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000221} + ~ {:before_filters_time=>3.8e-05, :after_filters_time=>7.0e-06, :action_time=>0.000265} + ~ {:before_filters_time=>3.8e-05, :after_filters_time=>7.0e-06, :action_time=>0.000269} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000102, :after_filters_time=>8.0e-06, :action_time=>0.001252} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000227} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000249} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000238} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.0001, :after_filters_time=>7.0e-06, :action_time=>0.001207} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000232} + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000276} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.00024} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000109, :after_filters_time=>8.0e-06, :action_time=>0.001177} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000223} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.00025} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000245} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000114, :after_filters_time=>8.0e-06, :action_time=>0.001234} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000222} + ~ {:before_filters_time=>3.7e-05, :after_filters_time=>6.0e-06, :action_time=>0.000268} + ~ {:before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000252} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001758, :before_filters_time=>0.000118, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000254, :before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000258, :before_filters_time=>3.4e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000264, :before_filters_time=>3.8e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001186, :before_filters_time=>0.000109, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000223, :before_filters_time=>8.5e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00025, :before_filters_time=>3.4e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000268, :before_filters_time=>3.4e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.00116, :before_filters_time=>0.000108, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000226, :before_filters_time=>8.5e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000266, :before_filters_time=>3.8e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000286, :before_filters_time=>3.6e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001203, :before_filters_time=>0.000111, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000222, :before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000263, :before_filters_time=>3.5e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000243, :before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001198, :before_filters_time=>0.00011, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.00026, :before_filters_time=>8.4e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000249, :before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000248, :before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001295, :before_filters_time=>0.000119, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000221, :before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000255, :before_filters_time=>3.4e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000245, :before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001195, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000223, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000257, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001188, :before_filters_time=>9.9e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000231, :before_filters_time=>7.5e-05, :after_filters_time=>1.1e-05} + ~ {:action_time=>0.000243, :before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000258, :before_filters_time=>4.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000733, :before_filters_time=>8.0e-05, :after_filters_time=>8.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001185, :before_filters_time=>0.000109, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000224, :before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000259, :before_filters_time=>3.3e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000305, :before_filters_time=>3.8e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000275, :before_filters_time=>9.5e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001518, :before_filters_time=>0.000106, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000235, :before_filters_time=>7.5e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000241, :before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000253, :before_filters_time=>4.0e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00029, :before_filters_time=>8.3e-05, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001196, :before_filters_time=>9.7e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000232, :before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000239, :before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000244, :before_filters_time=>3.9e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000273, :before_filters_time=>7.8e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001297, :before_filters_time=>0.000114} + ~ {:after_filters_time=>1.3e-05, :action_time=>0.000263, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000277, :before_filters_time=>5.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001205, :before_filters_time=>0.000115, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000238, :before_filters_time=>8.7e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00024, :before_filters_time=>3.3e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000245, :before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00026, :before_filters_time=>7.8e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001142, :before_filters_time=>0.000108, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000219, :before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000236, :before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000237, :before_filters_time=>3.0e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000256, :before_filters_time=>8.3e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001212, :before_filters_time=>0.0001, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000231, :before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000243, :before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000252, :before_filters_time=>3.5e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000298, :before_filters_time=>9.0e-05, :after_filters_time=>7.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001177, :before_filters_time=>9.9e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000232, :before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000243, :before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000235, :before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00028, :before_filters_time=>8.5e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000264, :before_filters_time=>8.5e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001227, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000227, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000297, :before_filters_time=>4.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001737, :before_filters_time=>0.000133} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000248, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.003685, :before_filters_time=>0.000128} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000222, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000285, :before_filters_time=>4.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000279, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001232, :before_filters_time=>0.000108} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000222, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.000836, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>4.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000297, :before_filters_time=>0.00011} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000261, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001256, :before_filters_time=>0.000114} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000248, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000248, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>7.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000251, :before_filters_time=>7.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001297, :before_filters_time=>0.0001} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000225, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>7.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000103, :after_filters_time=>8.0e-06, :action_time=>0.001298} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.00024} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000239} + ~ {:before_filters_time=>3.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000239} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.00027} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000261} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000274} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000108, :after_filters_time=>7.0e-06, :action_time=>0.001191} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000223} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000249} + ~ {:before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000244} + ~ {:before_filters_time=>8.7e-05, :after_filters_time=>5.0e-06, :action_time=>0.000263} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000249} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000267} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000246} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.00012, :after_filters_time=>7.0e-06, :action_time=>0.001284} + ~ {:before_filters_time=>8.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000227} + ~ {:before_filters_time=>3.8e-05, :after_filters_time=>6.0e-06, :action_time=>0.000241} + ~ {:before_filters_time=>3.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.000254} + ~ {:before_filters_time=>8.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000282} + ~ {:before_filters_time=>8.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000254} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.00026} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000113, :after_filters_time=>7.0e-06, :action_time=>0.001194} + ~ {:before_filters_time=>8.6e-05, :after_filters_time=>5.0e-06, :action_time=>0.000236} + ~ {:before_filters_time=>3.8e-05, :after_filters_time=>5.0e-06, :action_time=>0.000241} + ~ {:before_filters_time=>3.9e-05, :after_filters_time=>7.0e-06, :action_time=>0.000276} + ~ {:before_filters_time=>9.7e-05, :after_filters_time=>7.0e-06, :action_time=>0.000313} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000252} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.00026} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000109, :after_filters_time=>7.0e-06, :action_time=>0.001191} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000222} + ~ {:before_filters_time=>3.6e-05, :after_filters_time=>7.0e-06, :action_time=>0.000266} + ~ {:before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000242} + ~ {:before_filters_time=>8.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000289} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000249} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000261} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000252} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000159, :after_filters_time=>1.1e-05, :action_time=>0.002025} + ~ {:before_filters_time=>0.00011, :after_filters_time=>7.0e-06, :action_time=>0.000301} + ~ {:before_filters_time=>3.9e-05, :after_filters_time=>8.0e-06, :action_time=>0.000291} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000253} + ~ {:before_filters_time=>7.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000268} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.00025} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000264} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000252} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000115, :after_filters_time=>7.0e-06, :action_time=>0.001266} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000365} + ~ {:before_filters_time=>3.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.00027} + ~ {:before_filters_time=>3.9e-05, :after_filters_time=>8.0e-06, :action_time=>0.000285} + ~ {:before_filters_time=>9.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000289} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000442} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000266} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000264} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000255} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>0.000113, :after_filters_time=>7.0e-06, :action_time=>0.001244} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000224} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000239} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000241} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000269} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000251} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000266} + ~ {:before_filters_time=>7.6e-05, :after_filters_time=>5.0e-06, :action_time=>0.000261} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>9.0e-06, :action_time=>0.001857, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000287, :before_filters_time=>0.0001} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000225, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000263, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000251, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000261, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>1.0e-05, :action_time=>0.001777, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000298, :before_filters_time=>0.000104} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000287, :before_filters_time=>4.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000298, :before_filters_time=>4.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000321, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000248, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>7.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001351, :before_filters_time=>0.000111} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000234, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000238, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000319, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001232, :before_filters_time=>0.000102} + ~ {:after_filters_time=>1.3e-05, :action_time=>0.000266, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000267, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000262, :before_filters_time=>4.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000352, :before_filters_time=>0.000125} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>9.0e-06, :action_time=>0.001807, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00022, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000238, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000287, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000251, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000222, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>4.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000266, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>8.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001117, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00022, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>4.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000238, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>7.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00158, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000283, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000253, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000257, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000406, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000302, :before_filters_time=>8.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001139, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000596, :before_filters_time=>0.000429} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000335, :before_filters_time=>0.000111} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000241, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00024, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>7.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00112, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000231, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000241, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>7.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001114, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000202, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000225, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000233, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000248, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001112, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000202, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000226, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>8.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>1.7e-05, :action_time=>0.0011, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000531, :before_filters_time=>0.00038} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000289, :before_filters_time=>0.000103} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000221, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>4.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00024, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00029, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001183, :before_filters_time=>0.00011} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>8.3e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001116, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000208, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00028, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001113, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000206, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000223, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000297, :before_filters_time=>0.000126} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000269, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>7.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001243, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000207, :before_filters_time=>5.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000215, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.00024, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000644, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000278, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001188, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000451, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.00055, :before_filters_time=>0.000256} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000299, :before_filters_time=>4.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.003352, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000505, :before_filters_time=>0.000148} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000305, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000288, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000481, :before_filters_time=>0.000293} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001141, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000294, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>7.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001138, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000213, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000282, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000326, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000259, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000275, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>8.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001124, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000425, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000332, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000299, :before_filters_time=>7.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001104, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000216, :before_filters_time=>5.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000281, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000215, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000234, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000299, :before_filters_time=>0.000123} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000328, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000314, :before_filters_time=>8.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001176, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00021, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00028, :before_filters_time=>0.000104} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000307, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000289, :before_filters_time=>5.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>7.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001123, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000214, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>1.4e-05, :action_time=>0.000267, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>7.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001112, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000206, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000288, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00028, :before_filters_time=>0.000105} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000244, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001104, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000205, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000222, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000251, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000278, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000277, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000269, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>8.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001095, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000207, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>0.000102} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000798, :before_filters_time=>0.000595} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000259, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001128, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000212, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00038, :before_filters_time=>0.000142} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>1.3e-05, :action_time=>0.000804, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000303, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000303, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001125, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000205, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000223, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000279, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000265, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000264, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001141, :before_filters_time=>6.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000209, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00024, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000306, :before_filters_time=>0.000109} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000314, :before_filters_time=>9.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00111, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000202, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000225, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>2.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000236, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000295, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001106, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000206, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000235, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>1.1e-05, :action_time=>0.000558, :before_filters_time=>0.000188} + ~ {:after_filters_time=>1.9e-05, :action_time=>0.000613, :before_filters_time=>0.00021} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>8.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001117, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000208, :before_filters_time=>6.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00027, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000238, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000244, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000321, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000326, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.002271, :before_filters_time=>0.00056} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000405, :before_filters_time=>0.000239} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000218, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000256, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001143, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000193, :before_filters_time=>4.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000271, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000293, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000292, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001268, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000311, :before_filters_time=>0.000133} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000223, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000311, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000282, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000287, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>8.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001177, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000288, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000218, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000309, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>7.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001129, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000212, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.0003, :before_filters_time=>0.000103} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000231, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000259, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001155, :before_filters_time=>0.000129} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000425, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000222, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000322, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00029, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00034, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000261, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001115, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000418, :before_filters_time=>0.000265} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000284, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000233, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000262, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001231, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00022, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000294, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000247, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001168, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000199, :before_filters_time=>5.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000234, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000261, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001156, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000206, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>7.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>1.0e-05, :action_time=>0.001801, :before_filters_time=>0.000107} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.000353, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.00048, :before_filters_time=>0.000146} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.000371, :before_filters_time=>0.000127} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000357, :before_filters_time=>4.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000317, :before_filters_time=>4.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000318, :before_filters_time=>0.000102} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000302, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001141, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000206, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000222, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000261, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001121, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001229, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000228, :before_filters_time=>6.4e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000278, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000218, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001191, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>0.000117} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000298, :before_filters_time=>0.0001} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00114, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.0002, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>0.000102} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000216, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00024, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000269, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001117, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000209, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000279, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000225, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000288, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000288, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>8.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.001109, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>3.4e-05, :action_time=>0.000308, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000218, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000256, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001108, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000228, :before_filters_time=>5.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000314, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000234, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000261, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001124, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000293, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000238, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000293, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000333, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000279, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001137, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000205, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000285, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000244, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001102, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000208, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000283, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000233, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000244, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000259, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>1.1e-05, :action_time=>0.000264, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001115, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000213, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000219, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>1.1e-05, :action_time=>0.000263, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001126, :before_filters_time=>6.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000203, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000224, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000305, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000262, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.000284, :before_filters_time=>8.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001199, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.0002, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>0.000107} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000298, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001117, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00022, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000235, :before_filters_time=>2.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000306, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000275, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001138, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000204, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000219, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00028, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000314, :before_filters_time=>0.000103} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000283, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>8.0e-06, :action_time=>0.001124} + ~ {:before_filters_time=>5.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.000248} + ~ {:before_filters_time=>9.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000264} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000219} + ~ {:before_filters_time=>4.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000268} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000237} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>7.0e-06, :action_time=>0.000291} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000253} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000268} + ~ {:before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000262} + ~ {:before_filters_time=>9.9e-05, :after_filters_time=>5.0e-06, :action_time=>0.000276} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.4e-05, :after_filters_time=>7.0e-06, :action_time=>0.001116} + ~ {:before_filters_time=>5.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000208} + ~ {:before_filters_time=>9.3e-05, :after_filters_time=>7.0e-06, :action_time=>0.000264} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000219} + ~ {:before_filters_time=>3.8e-05, :after_filters_time=>6.0e-06, :action_time=>0.000243} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000235} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>7.0e-06, :action_time=>0.000278} + ~ {:before_filters_time=>9.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.00027} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000272} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000243} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>8.6e-05, :after_filters_time=>7.0e-06, :action_time=>0.001208} + ~ {:before_filters_time=>5.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000224} + ~ {:before_filters_time=>0.000103, :after_filters_time=>6.0e-06, :action_time=>0.000295} + ~ {:before_filters_time=>8.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.000235} + ~ {:before_filters_time=>3.3e-05, :after_filters_time=>7.0e-06, :action_time=>0.000249} + ~ {:before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000239} + ~ {:before_filters_time=>8.7e-05, :after_filters_time=>6.0e-06, :action_time=>0.000261} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000257} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.00027} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000263} + ~ {:before_filters_time=>7.9e-05, :after_filters_time=>5.0e-06, :action_time=>0.000275} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001128, :before_filters_time=>6.5e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000198, :before_filters_time=>5.9e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000269, :before_filters_time=>8.6e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000225, :before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000241, :before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000238, :before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000277, :before_filters_time=>8.6e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000285, :before_filters_time=>9.9e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000269, :before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000267, :before_filters_time=>7.2e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000243, :before_filters_time=>7.9e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001216, :before_filters_time=>6.9e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000215, :before_filters_time=>6.2e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000274, :before_filters_time=>8.7e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000216, :before_filters_time=>7.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000236, :before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000251, :before_filters_time=>4.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000273, :before_filters_time=>7.9e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000258, :before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000282, :before_filters_time=>8.4e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000271, :before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000245, :before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001216, :before_filters_time=>6.7e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000391, :before_filters_time=>5.9e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000274, :before_filters_time=>8.7e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000224, :before_filters_time=>7.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00024, :before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000235, :before_filters_time=>3.8e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000307, :before_filters_time=>8.6e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000248, :before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000268, :before_filters_time=>7.9e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000266, :before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000249, :before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.00119, :before_filters_time=>6.8e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000552, :before_filters_time=>6.6e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000272, :before_filters_time=>8.6e-05, :after_filters_time=>7.0e-06} + ~ {:action_time=>0.000304, :before_filters_time=>0.000145, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000255, :before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000258, :before_filters_time=>3.5e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00029, :before_filters_time=>9.4e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000259, :before_filters_time=>7.2e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.00028, :before_filters_time=>8.6e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000301, :before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000265, :before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.6e-05, :after_filters_time=>7.0e-06, :action_time=>0.001172} + ~ {:before_filters_time=>5.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000203} + ~ {:before_filters_time=>0.0001, :after_filters_time=>6.0e-06, :action_time=>0.000288} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.00022} + ~ {:before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000256} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.00024} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000284} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000245} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000266} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000265} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000245} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>7.0e-06, :action_time=>0.001131} + ~ {:before_filters_time=>5.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.0004} + ~ {:before_filters_time=>9.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000297} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000218} + ~ {:before_filters_time=>2.9e-05, :after_filters_time=>5.0e-06, :action_time=>0.000234} + ~ {:before_filters_time=>3.7e-05, :after_filters_time=>7.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000285} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000248} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000267} + ~ {:before_filters_time=>7.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000264} + ~ {:before_filters_time=>0.000298, :after_filters_time=>6.0e-06, :action_time=>0.000469} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>7.0e-05, :after_filters_time=>7.0e-06, :action_time=>0.00123} + ~ {:before_filters_time=>6.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.000895} + ~ {:before_filters_time=>0.000102, :after_filters_time=>6.0e-06, :action_time=>0.000285} + ~ {:before_filters_time=>9.6e-05, :after_filters_time=>8.0e-06, :action_time=>0.000307} + ~ {:before_filters_time=>3.3e-05, :after_filters_time=>7.0e-06, :action_time=>0.000255} + ~ {:before_filters_time=>3.5e-05, :after_filters_time=>2.1e-05, :action_time=>0.000273} + ~ {:before_filters_time=>8.7e-05, :after_filters_time=>7.0e-06, :action_time=>0.000309} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000266} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000266} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.00025} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.00113} + ~ {:before_filters_time=>5.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000434} + ~ {:before_filters_time=>9.7e-05, :after_filters_time=>6.0e-06, :action_time=>0.000275} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000223} + ~ {:before_filters_time=>4.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.00025} + ~ {:before_filters_time=>3.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000249} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000275} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000248} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>1.1e-05, :action_time=>0.000267} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000258} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000242} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>7.0e-06, :action_time=>0.001114} + ~ {:before_filters_time=>5.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000215} + ~ {:before_filters_time=>9.4e-05, :after_filters_time=>6.0e-06, :action_time=>0.000263} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.00022} + ~ {:before_filters_time=>3.7e-05, :after_filters_time=>5.0e-06, :action_time=>0.000318} + ~ {:before_filters_time=>3.3e-05, :after_filters_time=>7.0e-06, :action_time=>0.000244} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000275} + ~ {:before_filters_time=>9.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000273} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>1.3e-05, :action_time=>0.000271} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000258} + ~ {:before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000244} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>7.0e-06, :action_time=>0.001255} + ~ {:before_filters_time=>5.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.000237} + ~ {:before_filters_time=>9.2e-05, :after_filters_time=>7.0e-06, :action_time=>0.000287} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000213} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000241} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000262} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000264} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000242} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.001117} + ~ {:before_filters_time=>5.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000213} + ~ {:before_filters_time=>8.6e-05, :after_filters_time=>7.0e-06, :action_time=>0.000269} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>1.4e-05, :action_time=>0.000231} + ~ {:before_filters_time=>7.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.00029} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.00024} + ~ {:before_filters_time=>8.8e-05, :after_filters_time=>5.0e-06, :action_time=>0.000263} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000253} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000262} + ~ {:before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000269} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000243} + ~ {:before_filters_time=>7.8e-05, :after_filters_time=>6.0e-06, :action_time=>0.000369} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001151, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000216, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000218, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000264, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000288, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>3.5e-05, :action_time=>0.000866, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000254, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00039, :before_filters_time=>9.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.001116} + ~ {:before_filters_time=>5.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000202} + ~ {:before_filters_time=>8.8e-05, :after_filters_time=>7.0e-06, :action_time=>0.000282} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.000227} + ~ {:before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.00025} + ~ {:before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000233} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>7.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000251} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000261} + ~ {:before_filters_time=>7.7e-05, :after_filters_time=>6.0e-06, :action_time=>0.000309} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000253} + ~ {:before_filters_time=>8.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.000369} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>9.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.001282} + ~ {:before_filters_time=>5.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000289} + ~ {:before_filters_time=>9.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000269} + ~ {:before_filters_time=>8.6e-05, :after_filters_time=>5.0e-06, :action_time=>0.000299} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000237} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000243} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000268} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000246} + ~ {:before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000267} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000251} + ~ {:before_filters_time=>9.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.000379} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.6e-05, :after_filters_time=>6.0e-06, :action_time=>0.001122} + ~ {:before_filters_time=>5.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000228} + ~ {:before_filters_time=>9.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000277} + ~ {:before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000223} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000249} + ~ {:before_filters_time=>4.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000263} + ~ {:before_filters_time=>8.7e-05, :after_filters_time=>5.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000258} + ~ {:before_filters_time=>7.0e-05, :after_filters_time=>6.0e-06, :action_time=>0.000294} + ~ {:before_filters_time=>9.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.00031} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.00025} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.001111} + ~ {:before_filters_time=>5.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.000248} + ~ {:before_filters_time=>8.7e-05, :after_filters_time=>7.0e-06, :action_time=>0.000287} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000225} + ~ {:before_filters_time=>3.1e-05, :after_filters_time=>1.2e-05, :action_time=>0.000245} + ~ {:before_filters_time=>3.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>7.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000257} + ~ {:before_filters_time=>8.6e-05, :after_filters_time=>5.0e-06, :action_time=>0.000281} + ~ {:before_filters_time=>7.8e-05, :after_filters_time=>5.0e-06, :action_time=>0.000277} + ~ {:before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06, :action_time=>0.0003} + ~ {:before_filters_time=>9.5e-05, :after_filters_time=>9.0e-06, :action_time=>0.000449} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001126, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000263, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>0.00016} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000227, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00029, :before_filters_time=>4.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000273, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000251, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000558, :before_filters_time=>0.000105} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.5e-05, :after_filters_time=>6.0e-06, :action_time=>0.001135} + ~ {:before_filters_time=>5.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000207} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000279} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.000238} + ~ {:before_filters_time=>3.6e-05, :after_filters_time=>1.3e-05, :action_time=>0.000269} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000252} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000267} + ~ {:before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000262} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000263} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000248} + ~ {:before_filters_time=>8.7e-05, :after_filters_time=>8.0e-06, :action_time=>0.000418} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001133, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000204, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000291, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00024, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000277, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000385, :before_filters_time=>9.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001132, :before_filters_time=>6.7e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000245, :before_filters_time=>5.4e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000271, :before_filters_time=>8.7e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000218, :before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000277, :before_filters_time=>3.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000239, :before_filters_time=>3.0e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000307, :before_filters_time=>0.000116, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000266, :before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000263, :before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000267, :before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000245, :before_filters_time=>7.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000396, :before_filters_time=>8.0e-05, :after_filters_time=>5.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:action_time=>0.001122, :before_filters_time=>6.8e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000203, :before_filters_time=>5.3e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000276, :before_filters_time=>9.4e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000217, :before_filters_time=>7.9e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000257, :before_filters_time=>3.4e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000236, :before_filters_time=>3.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000269, :before_filters_time=>7.9e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000259, :before_filters_time=>8.1e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000288, :before_filters_time=>7.9e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000274, :before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000243, :before_filters_time=>8.0e-05, :after_filters_time=>6.0e-06} + ~ {:action_time=>0.000387, :before_filters_time=>9.1e-05, :after_filters_time=>5.0e-06} + ~ {:action_time=>0.000361, :before_filters_time=>7.6e-05, :after_filters_time=>6.0e-06} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00124, :before_filters_time=>7.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000226, :before_filters_time=>6.3e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000297, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.0003, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000298, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000304, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>1.3e-05, :action_time=>0.000389, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00036, :before_filters_time=>8.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00169, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000294, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000304, :before_filters_time=>0.000106} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000219, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000232, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>1.3e-05, :action_time=>0.000283, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000412, :before_filters_time=>0.000115} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000323, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00039, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001158, :before_filters_time=>0.000117} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000205, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000289, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000262, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000383, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000372, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001115, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000209, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000299, :before_filters_time=>0.000103} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000231, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000323, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000372, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000388, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001183, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000218, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000263, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000398, :before_filters_time=>0.000108} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000415, :before_filters_time=>9.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.7e-05, :after_filters_time=>6.0e-06, :action_time=>0.001154} + ~ {:before_filters_time=>6.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000202} + ~ {:before_filters_time=>9.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.000277} + ~ {:before_filters_time=>7.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000222} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.00024} + ~ {:before_filters_time=>3.8e-05, :after_filters_time=>5.0e-06, :action_time=>0.000236} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000273} + ~ {:before_filters_time=>0.000118, :after_filters_time=>5.0e-06, :action_time=>0.000303} + ~ {:before_filters_time=>7.6e-05, :after_filters_time=>5.0e-06, :action_time=>0.000278} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.000361} + ~ {:before_filters_time=>8.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.00025} + ~ {:before_filters_time=>8.9e-05, :after_filters_time=>5.0e-06, :action_time=>0.000424} + ~ {:before_filters_time=>9.4e-05, :after_filters_time=>5.0e-06, :action_time=>0.000395} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:before_filters_time=>6.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.001231} + ~ {:before_filters_time=>6.8e-05, :after_filters_time=>5.0e-06, :action_time=>0.000228} + ~ {:before_filters_time=>0.000183, :after_filters_time=>6.0e-06, :action_time=>0.000383} + ~ {:before_filters_time=>0.000122, :after_filters_time=>6.0e-06, :action_time=>0.000276} + ~ {:before_filters_time=>3.2e-05, :after_filters_time=>6.0e-06, :action_time=>0.000239} + ~ {:before_filters_time=>3.9e-05, :after_filters_time=>6.0e-06, :action_time=>0.000235} + ~ {:before_filters_time=>0.000133, :after_filters_time=>6.0e-06, :action_time=>0.000335} + ~ {:before_filters_time=>8.3e-05, :after_filters_time=>6.0e-06, :action_time=>0.00026} + ~ {:before_filters_time=>7.5e-05, :after_filters_time=>5.0e-06, :action_time=>0.000269} + ~ {:before_filters_time=>7.3e-05, :after_filters_time=>5.0e-06, :action_time=>0.000271} + ~ {:before_filters_time=>8.1e-05, :after_filters_time=>5.0e-06, :action_time=>0.000243} + ~ {:before_filters_time=>9.1e-05, :after_filters_time=>6.0e-06, :action_time=>0.000381} + ~ {:before_filters_time=>0.000109, :after_filters_time=>6.0e-06, :action_time=>0.000426} + ~ {:before_filters_time=>9.2e-05, :after_filters_time=>5.0e-06, :action_time=>0.000373} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001118, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.0002, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000229, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000304, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00036, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000398, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000456, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000364, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001201, :before_filters_time=>7.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000213, :before_filters_time=>5.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000248, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000249, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000292, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000294, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000396, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000367, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000394, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001257, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000382, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000226, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000241, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00029, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000466, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000399, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000352, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000507, :before_filters_time=>0.000157} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001533, :before_filters_time=>0.000107} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000323, :before_filters_time=>0.000111} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000233, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000316, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000277, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000262, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000408, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>1.1e-05, :action_time=>0.000373, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000371, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000352, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001125, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000226, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00024, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000387, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000374, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000352, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>9.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001185, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000211, :before_filters_time=>6.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000291, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000233, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>4.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000317, :before_filters_time=>5.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000297, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>0.000105} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000422, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00038, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000344, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.003335, :before_filters_time=>0.0029} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001122, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>6.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000228, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00024, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000312, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000277, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000295, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000387, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000383, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00035, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000385, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000366, :before_filters_time=>8.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001118, :before_filters_time=>7.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000207, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000305, :before_filters_time=>0.000107} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000224, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000246, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000261, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000322, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000293, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000313, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001377, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000408, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000392, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000381, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.002472, :before_filters_time=>0.000182} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000429, :before_filters_time=>9.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001145, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000223, :before_filters_time=>6.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000279, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000222, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000288, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000394, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000377, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000357, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000348, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000348, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000349, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001161, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000209, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00028, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000226, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000233, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000251, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000414, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000408, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000347, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000338, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000344, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000341, :before_filters_time=>8.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.001163, :before_filters_time=>7.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000214, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000284, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000229, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000263, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.0003, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000255, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000266, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000398, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000367, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000381, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000374, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000407, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000347, :before_filters_time=>7.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001455, :before_filters_time=>0.000308} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001142, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000283, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000332, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000457, :before_filters_time=>0.000113} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000355, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000405, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000366, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000382, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000385, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00039, :before_filters_time=>8.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001143, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000215, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000276, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000225, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000236, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000254, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000261, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000469, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000388, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000374, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000398, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000401, :before_filters_time=>9.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00128, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000213, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000296, :before_filters_time=>0.000104} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000225, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000288, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000422, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000413, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000369, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000341, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000353, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000343, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001113, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000213, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000235, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000255, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000386, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00037, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000362, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00035, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000397, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000373, :before_filters_time=>8.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001216, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000208, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000286, :before_filters_time=>0.000107} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000231, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000287, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000315, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000385, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000373, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000447, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000343, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000362, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00035, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001104, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000208, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000287, :before_filters_time=>0.000105} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000248, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000333, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00038, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000372, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000354, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000343, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000347, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000345, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.001135, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000211, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000233, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000336, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000425, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000417, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000357, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000349, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000355, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000347, :before_filters_time=>8.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.001183, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000403, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000234, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000256, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000295, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000398, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000382, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000358, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00034, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00035, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00036, :before_filters_time=>8.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001254, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000225, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000279, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000297, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000312, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000324, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000427, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000379, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000362, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000356, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000374, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000351, :before_filters_time=>7.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.001133, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000206, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00024, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000275, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000434, :before_filters_time=>0.000218} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000393, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000389, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000351, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000344, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000439, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00036, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001131, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.0002, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00023, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000281, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000248, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000405, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00038, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000359, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000346, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000386, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000348, :before_filters_time=>7.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001129, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000201, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000285, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000287, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000411, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000354, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00036, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00036, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000352, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001168, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000214, :before_filters_time=>6.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000228, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000403, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.0004, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00038, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000351, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000351, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000375, :before_filters_time=>8.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001183, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000227, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000321, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000392, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000418, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000413, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000344, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000359, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000357, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001136, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000234, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000387, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000381, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000361, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000345, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00035, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000358, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00122, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000196, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>1.1e-05, :action_time=>0.000223, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000327, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000308, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000378, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000392, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000709, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000375, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000529, :before_filters_time=>0.000228} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000358, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001189, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000216, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000353, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.0019, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000278, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000385, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000373, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000344, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000349, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000519, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000355, :before_filters_time=>9.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001223, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000411, :before_filters_time=>0.000254} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.000392, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000927, :before_filters_time=>0.000495} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000452, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000393, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000349, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000349, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000341, :before_filters_time=>7.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>9.0e-06, :action_time=>0.001217, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000216, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00027, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000281, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>1.3e-05, :action_time=>0.000452, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000381, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000373, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000343, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000351, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000435, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000346, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.0012, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000304, :before_filters_time=>0.000105} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000248, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000372, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000376, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000343, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000346, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00037, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000339, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001169, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000207, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000265, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00025, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000289, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000249, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000373, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000375, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000374, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000363, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000351, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000342, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001129, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000524, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000316, :before_filters_time=>0.000123} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000283, :before_filters_time=>0.000105} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000274, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000327, :before_filters_time=>4.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000309, :before_filters_time=>0.000105} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000423, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000255, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000405, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000491, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000379, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000406, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000438, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000369, :before_filters_time=>9.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001207, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000216, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>2.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000288, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000283, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000302, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000376, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000384, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000344, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000339, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000357, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000378, :before_filters_time=>8.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001152, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.0002, :before_filters_time=>5.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000236, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.00027, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000266, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000455, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000485, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000417, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000427, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000401, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000392, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001127, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000275, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000459, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000479, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000397, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000463, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00041, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00416, :before_filters_time=>0.003791} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001634, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000203, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000298, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000227, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000234, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000281, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000282, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00045, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000467, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000777, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000396, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000408, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00063, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001229, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000208, :before_filters_time=>6.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000232, :before_filters_time=>2.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000294, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000459, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000474, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000379, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000439, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000435, :before_filters_time=>8.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001172, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000208, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>1.4e-05, :action_time=>0.000237, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000312, :before_filters_time=>0.000118} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000461, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000529, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000417, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000388, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000391, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000423, :before_filters_time=>8.3e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>1.7e-05, :action_time=>0.00119, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000213, :before_filters_time=>5.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000219, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>4.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000299, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000287, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000436, :before_filters_time=>0.000244} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000451, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000471, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000413, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00042, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000427, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000384, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001149, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000312, :before_filters_time=>0.00011} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000232, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000256, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00031, :before_filters_time=>0.000101} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000307, :before_filters_time=>0.00011} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000382, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000475, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000443, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.002583, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000424, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000496, :before_filters_time=>0.000175} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000386, :before_filters_time=>8.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001183, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00023, :before_filters_time=>5.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000217, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000231, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000241, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000289, :before_filters_time=>0.000112} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000448, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000623, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000378, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000378, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000378, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001126, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000278, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00022, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000249, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000287, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000258, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000461, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000441, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000394, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000393, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>0.000132, :action_time=>0.000591, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000507, :before_filters_time=>9.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00113, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000218, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>0.000104} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00022, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00036, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000293, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000294, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000337, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000303, :before_filters_time=>0.000114} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000256, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000474, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000466, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000534, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000398, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000397, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000386, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001131, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000422, :before_filters_time=>6.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000299, :before_filters_time=>0.000104} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000291, :before_filters_time=>5.1e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000259, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000522, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000524, :before_filters_time=>0.000105} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000434, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.003198, :before_filters_time=>0.001016} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00043, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>9.5e-05, :action_time=>0.000504, :before_filters_time=>9.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001114, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000212, :before_filters_time=>5.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000746, :before_filters_time=>0.000437} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>1.3e-05, :action_time=>0.000433, :before_filters_time=>0.000194} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>1.4e-05, :action_time=>0.000287, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000268, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000507, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>8.5e-05, :action_time=>0.001961, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000547, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.0004, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000392, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000414, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001132, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000214, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000223, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00026, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000497, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000462, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000461, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000413, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000396, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000394, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001286, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000212, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000275, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00022, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000463, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000466, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.004664, :before_filters_time=>0.001598} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000427, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000438, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000494, :before_filters_time=>0.0001} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001125, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000213, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000302, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000279, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000278, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000493, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000435, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00037, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000372, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000379, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.004774, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001218, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000201, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000285, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000289, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000286, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000458, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000509, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000438, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000506, :before_filters_time=>0.000142} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00047, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000398, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001147, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00021, :before_filters_time=>6.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000228, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000235, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000262, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000473, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000463, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000456, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000405, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000429, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000382, :before_filters_time=>7.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001119, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000205, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000301, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00022, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000398, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000469, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000474, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000388, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000459, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000393, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000394, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001144, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000202, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000279, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000305, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000457, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000437, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000422, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000449, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000403, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00039, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001225, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001048, :before_filters_time=>0.000869} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000229, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000281, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000316, :before_filters_time=>0.000102} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000288, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000289, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.0003, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000287, :before_filters_time=>0.000104} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000493, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000447, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000559, :before_filters_time=>0.000148} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000491, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000441, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000424, :before_filters_time=>8.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001593, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000227, :before_filters_time=>5.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000347, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000229, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000273, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00035, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000458, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000446, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000384, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000393, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.004238, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000422, :before_filters_time=>8.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001133, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00024, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00029, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000221, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000275, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001906, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00047, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000457, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000424, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000403, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000424, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000443, :before_filters_time=>8.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001259, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000419, :before_filters_time=>0.000121} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000283, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00022, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>4.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000291, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000313, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000247, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000653, :before_filters_time=>0.000108} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000444, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000467, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001269, :before_filters_time=>0.000869} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000431, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00043, :before_filters_time=>9.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001144, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000212, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000281, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00029, :before_filters_time=>0.000102} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000428, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>2.0e-05, :action_time=>0.001209, :before_filters_time=>0.000354} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000406, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000626, :before_filters_time=>0.000106} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001313, :before_filters_time=>0.000124} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000541, :before_filters_time=>9.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000455, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000621, :before_filters_time=>0.000141} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000568, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00045, :before_filters_time=>9.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.001323, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000249, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000225, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000314, :before_filters_time=>4.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00031, :before_filters_time=>0.000109} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000251, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000502, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000517, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000432, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001523, :before_filters_time=>0.00031} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001887, :before_filters_time=>0.000743} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000467, :before_filters_time=>9.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001126, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000205, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>1.1e-05, :action_time=>0.000293, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000238, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000279, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000477, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000571, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000474, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000442, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000385, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.0004, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>5.0e-06, :action_time=>0.001117, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00022, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000293, :before_filters_time=>0.000101} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000231, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000281, :before_filters_time=>4.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>3.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000469, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000554, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000416, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000391, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000388, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>8.5e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001139, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000215, :before_filters_time=>5.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000275, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000218, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00024, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000298, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00046, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00052, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00042, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000381, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001711, :before_filters_time=>0.000633} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000454, :before_filters_time=>8.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001236, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000421, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000222, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000259, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000464, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000457, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000453, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000429, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000409, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.004895, :before_filters_time=>0.000728} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001131, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000239, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000282, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000218, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000256, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000302, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000296, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000508, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00044, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00038, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000397, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000393, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000406, :before_filters_time=>8.0e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001115, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000229, :before_filters_time=>5.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00027, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000221, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000234, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000469, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00047, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000396, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000378, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000411, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000846, :before_filters_time=>8.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.0011, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000202, :before_filters_time=>6.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00028, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000225, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000268, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000554, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000466, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00046, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000388, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000383, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.003397, :before_filters_time=>0.002858} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001156, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000211, :before_filters_time=>6.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000227, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000237, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000269, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00029, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000248, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000462, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000451, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000405, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000421, :before_filters_time=>0.000115} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000402, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000401, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001223, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000209, :before_filters_time=>6.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000286, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000232, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000247, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000292, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000411, :before_filters_time=>0.000103} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000293, :before_filters_time=>0.000103} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000337, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000298, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000458, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000435, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.002253, :before_filters_time=>0.0001} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000436, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>8.3e-05, :action_time=>0.003806, :before_filters_time=>0.000844} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000416, :before_filters_time=>8.3e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001132, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000195, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000227, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000233, :before_filters_time=>2.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001011, :before_filters_time=>3.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000288, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000266, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00025, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000452, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000439, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000388, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000386, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>8.3e-05, :action_time=>0.001067, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>0.001002, :action_time=>0.004015, :before_filters_time=>0.000874} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001275, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00021, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000281, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242999999999993, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000292, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000272, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000266, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000509, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000445, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000398, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000393, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00043, :before_filters_time=>8.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001144, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.0003, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000292, :before_filters_time=>4.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>4.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000282, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000283, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000388, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000378, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000752, :before_filters_time=>0.000413} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000377, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000352, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000369, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001131, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000212, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000233, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000617, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>1.5e-05, :action_time=>0.000254, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000308, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000295, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000391, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000788, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000368, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000344, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000407, :before_filters_time=>0.000125} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000405, :before_filters_time=>0.0001} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001179, :before_filters_time=>7.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000207, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000364, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>6.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000244, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000325, :before_filters_time=>0.000133} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000272, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000387, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000484, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000355, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000346, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000347, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000354, :before_filters_time=>8.5e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001422, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000259, :before_filters_time=>5.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000221, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000308, :before_filters_time=>4.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000277, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000273, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.000372, :before_filters_time=>0.000136} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000377, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000373, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000354, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000476, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000356, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>8.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001266, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000213, :before_filters_time=>5.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000406, :before_filters_time=>0.000106} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000228, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000307, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000256, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000275, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000375, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000373, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000343, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000342, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000349, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.002406, :before_filters_time=>8.9e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001132, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000489, :before_filters_time=>0.000331} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000224, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000283, :before_filters_time=>4.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00028, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000284, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000439, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000437, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000393, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000371, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>0.000105, :action_time=>0.000668, :before_filters_time=>0.000216} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000392, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.000359, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001119, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000264, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000418, :before_filters_time=>0.000108} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000235, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>4.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000268, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000263, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000252, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000368, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000432, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00258, :before_filters_time=>0.000128} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000371, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000356, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00035, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>6.0e-06, :action_time=>0.001103, :before_filters_time=>6.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000204, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>0.000106} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000219, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000809, :before_filters_time=>4.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000248, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000292, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000278, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000382, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000374, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000356, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000339, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000378, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000367, :before_filters_time=>8.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>9.0e-06, :action_time=>0.001226, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000238, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000335, :before_filters_time=>0.000158} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000228, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000247, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000331, :before_filters_time=>0.000132} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000398, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000403, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000368, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000363, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000371, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000362, :before_filters_time=>8.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00112, :before_filters_time=>7.1e-05} + ~ {:after_filters_time=>1.4e-05, :action_time=>0.000392, :before_filters_time=>6.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000276, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000253, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000288, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000416, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00038, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000358, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>1.1e-05, :action_time=>0.000346, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000352, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000381, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001161, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000228, :before_filters_time=>6.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>9.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000234, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000243, :before_filters_time=>3.1e-05} + ~ {:after_filters_time=>1.4e-05, :action_time=>0.000275, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00031, :before_filters_time=>0.000104} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000257, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000269, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000276, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000391, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000383, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000723, :before_filters_time=>0.000187} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000555, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000394, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000367, :before_filters_time=>8.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001122, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000219, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000216, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.0003, :before_filters_time=>5.1e-05} + ~ {:after_filters_time=>1.4e-05, :action_time=>0.000259, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000292, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000293, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000265, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000385, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000385, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000417, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000363, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000344, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00035, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>1.3e-05, :action_time=>0.002708, :before_filters_time=>0.000197} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.000335, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.000461, :before_filters_time=>0.000159} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.000391, :before_filters_time=>0.000145} + ~ {:after_filters_time=>8.9e-05, :action_time=>0.000491, :before_filters_time=>5.8e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.00034, :before_filters_time=>4.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00034, :before_filters_time=>0.000107} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000338, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000315, :before_filters_time=>9.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000309, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000361, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000332, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000362, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000352, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000333, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Compiling routes... + ~ Could not load /Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb: + +undefined method `connect' for #<Merb::Router::Behavior:0x1830bfc> - (NoMethodError) + +/Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb:37 +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/dispatch/router.rb:48:in `prepare' +/Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb:23 +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:329:in `load' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:329:in `load_file' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:354:in `load_classes_with_requirements' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:351:in `each' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:351:in `load_classes_with_requirements' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:322:in `run' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:67:in `run' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/server.rb:43:in `start' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core.rb:36:in `start' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core.rb:47:in `start_environment' +./spec/views/nodes/../../spec_helper.rb:5 +/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' +/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require' +./spec/views/nodes/new.html.erb_spec.rb:1 +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:14:in `load' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:14:in `load_files' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:13:in `each' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:13:in `load_files' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/options.rb:85:in `run_examples' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/command_line.rb:19:in `run' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/bin/spec:4 +/usr/bin/spec:19:in `load' +/usr/bin/spec:19 + ~ Compiling routes... + ~ Compiling routes... + ~ Could not load /Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb: + +undefined method `connect' for #<Merb::Router::Behavior:0x183105c> - (NoMethodError) + +/Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb:37 +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/dispatch/router.rb:48:in `prepare' +/Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb:23 +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:329:in `load' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:329:in `load_file' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:354:in `load_classes_with_requirements' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:351:in `each' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:351:in `load_classes_with_requirements' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:322:in `run' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:67:in `run' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/server.rb:43:in `start' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core.rb:36:in `start' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core.rb:47:in `start_environment' +./spec/views/nodes/../../spec_helper.rb:5 +/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' +/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require' +./spec/views/nodes/new.html.erb_spec.rb:1 +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:14:in `load' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:14:in `load_files' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:13:in `each' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:13:in `load_files' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/options.rb:85:in `run_examples' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/command_line.rb:19:in `run' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/bin/spec:4 +/usr/bin/spec:19:in `load' +/usr/bin/spec:19 + ~ Compiling routes... + ~ Compiling routes... + ~ Could not load /Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb: + +undefined method `connect' for #<Merb::Router::Behavior:0x1830e7c> - (NoMethodError) + +/Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb:38 +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/dispatch/router.rb:48:in `prepare' +/Users/adam/src/sandbox/chef/packages/chef-server/config/router.rb:23 +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:329:in `load' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:329:in `load_file' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:354:in `load_classes_with_requirements' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:351:in `each' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:351:in `load_classes_with_requirements' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:322:in `run' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/bootloader.rb:67:in `run' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core/server.rb:43:in `start' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core.rb:36:in `start' +/Library/Ruby/Gems/1.8/gems/merb-core-0.9.3/lib/merb-core.rb:47:in `start_environment' +./spec/views/nodes/../../spec_helper.rb:5 +/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' +/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:27:in `require' +./spec/views/nodes/new.html.erb_spec.rb:1 +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:14:in `load' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:14:in `load_files' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:13:in `each' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/example_group_runner.rb:13:in `load_files' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/options.rb:85:in `run_examples' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/lib/spec/runner/command_line.rb:19:in `run' +/Library/Ruby/Gems/1.8/gems/rspec-1.1.3/bin/spec:4 +/usr/bin/spec:19:in `load' +/usr/bin/spec:19 + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001121, :before_filters_time=>7.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000207, :before_filters_time=>5.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000301, :before_filters_time=>0.00011} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000222, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000273, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000314, :before_filters_time=>0.0001} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>1.0e-05, :action_time=>0.000405, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000404, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000347, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00033, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000351, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000368, :before_filters_time=>9.1e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.0011, :before_filters_time=>7.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000266, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000218, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000251, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000241, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000262, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000259, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000267, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000245, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000357, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000352, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000331, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000355, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000365, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000324, :before_filters_time=>7.7e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001294, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000233, :before_filters_time=>6.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000298, :before_filters_time=>0.000101} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000213, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000256, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000236, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000284, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000246, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000274, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000271, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000254, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.00049, :before_filters_time=>0.000141} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000437, :before_filters_time=>0.000123} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000382, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000358, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000421, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>9.0e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001103, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000203, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000337, :before_filters_time=>0.000114} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>0.000101} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000249, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000283, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000256, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000277, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000252, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000242, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000363, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00036, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000331, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00033, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000348, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000356, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001273, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000198, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000302, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000252, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00023, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000265, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000244, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000259, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000243, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000588, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001921, :before_filters_time=>0.00158} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000379, :before_filters_time=>9.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000347, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00037, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000327, :before_filters_time=>7.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001182, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>6.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000319, :before_filters_time=>0.000108} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000223, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000361, :before_filters_time=>6.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.002333, :before_filters_time=>4.5e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.002026, :before_filters_time=>0.000117} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000276, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000286, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000294, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000282, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>1.2e-05, :action_time=>0.006438, :before_filters_time=>0.000105} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000429, :before_filters_time=>0.0001} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000411, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000412, :before_filters_time=>0.000103} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001645, :before_filters_time=>0.001293} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00037, :before_filters_time=>9.2e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001276, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000271, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000217, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000254, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000239, :before_filters_time=>3.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000316, :before_filters_time=>0.000139} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000262, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000255, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00024, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00037, :before_filters_time=>8.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000357, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000333, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000331, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000345, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00035, :before_filters_time=>7.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001118, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000194, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000314, :before_filters_time=>0.000118} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000234, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000239, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000241, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000255, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000263, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000381, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000365, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000331, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000326, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000341, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000336, :before_filters_time=>8.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00124, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000214, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00027, :before_filters_time=>9.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000215, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000237, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000249, :before_filters_time=>3.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000308, :before_filters_time=>0.000101} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000278, :before_filters_time=>8.1e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000259, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000254, :before_filters_time=>7.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00039, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000373, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.000373, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>9.0e-06, :action_time=>0.000377, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000335, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000322, :before_filters_time=>7.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001179, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000222, :before_filters_time=>5.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000216, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000233, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000231, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000262, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000388, :before_filters_time=>0.000185} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000294, :before_filters_time=>9.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000294, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000399, :before_filters_time=>9.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000347, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000358, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000342, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000326, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000331, :before_filters_time=>7.9e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001127, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000198, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000307, :before_filters_time=>0.000109} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00024, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000256, :before_filters_time=>3.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000234, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000274, :before_filters_time=>8.8e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000288, :before_filters_time=>8.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000306, :before_filters_time=>9.9e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000272, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000251, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000386, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000364, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00036, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000331, :before_filters_time=>8.0e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00087, :before_filters_time=>9.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000333, :before_filters_time=>7.8e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001102, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000208, :before_filters_time=>5.5e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000348, :before_filters_time=>0.000142} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000221, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000257, :before_filters_time=>3.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000235, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000253, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00026, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000256, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.00025, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000362, :before_filters_time=>8.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000353, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000327, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000326, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000335, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000326, :before_filters_time=>7.6e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>7.0e-06, :action_time=>0.001175, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000261, :before_filters_time=>5.8e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000267, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000216, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000236, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000246, :before_filters_time=>3.3e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000293, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000258, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000258, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000242, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>2.6e-05, :action_time=>0.000574, :before_filters_time=>8.2e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000371, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>8.0e-06, :action_time=>0.000369, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000491, :before_filters_time=>0.000143} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000366, :before_filters_time=>8.4e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.00039, :before_filters_time=>9.4e-05} + ~ Compiling routes... + ~ Using 'share-nothing' cookie sessions (4kb limit per client) + ~ {:after_filters_time=>8.0e-06, :action_time=>0.001161, :before_filters_time=>7.9e-05} + ~ {:after_filters_time=>7.0e-06, :action_time=>0.000201, :before_filters_time=>5.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000271, :before_filters_time=>9.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.00022, :before_filters_time=>7.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000232, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000231, :before_filters_time=>3.2e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000273, :before_filters_time=>8.6e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000245, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000257, :before_filters_time=>7.4e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000264, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000246, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000364, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000369, :before_filters_time=>8.3e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000331, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>6.0e-06, :action_time=>0.000325, :before_filters_time=>7.7e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000327, :before_filters_time=>7.5e-05} + ~ {:after_filters_time=>5.0e-06, :action_time=>0.000348, :before_filters_time=>7.8e-05} diff --git a/packages/chef-server/public/images/merb.jpg b/packages/chef-server/public/images/merb.jpg Binary files differnew file mode 100644 index 0000000000..a19dcf4048 --- /dev/null +++ b/packages/chef-server/public/images/merb.jpg diff --git a/packages/chef-server/public/merb.fcgi b/packages/chef-server/public/merb.fcgi new file mode 100644 index 0000000000..9804e0f36d --- /dev/null +++ b/packages/chef-server/public/merb.fcgi @@ -0,0 +1,22 @@ +#!/usr/bin/env ruby + +require 'rubygems' +require 'merb-core' + +# this is Merb.root, change this if you have some funky setup. +merb_root = File.expand_path(File.dirname(__FILE__) / '../') + +# If the fcgi process runs as apache, make sure +# we have an inlinedir set for Rubyinline action-args to work +unless ENV["INLINEDIR"] || ENV["HOME"] + tmpdir = merb_root / "tmp" + unless File.directory?(tmpdir) + Dir.mkdir(tmpdir) + end + ENV["INLINEDIR"] = tmpdir +end + +# start merb with the fcgi adapter, add options or change the log dir here +Merb.start(:adapter => 'fcgi', + :merb_root => merb_root, + :log_file => merb_root /'log'/'merb.log')
\ No newline at end of file diff --git a/packages/chef-server/public/stylesheets/master.css b/packages/chef-server/public/stylesheets/master.css new file mode 100644 index 0000000000..70580148a7 --- /dev/null +++ b/packages/chef-server/public/stylesheets/master.css @@ -0,0 +1,153 @@ +body { + font-family: Arial, Verdana, sans-serif; + font-size: 12px; + background-color: #fff; + margin: ; +} +html { + height: 100%; + margin-bottom: 1px; +} +#container { + width: 80%; + text-align: left; + background-color: #fff; + margin-right: auto; + margin-left: auto; +} +#header-container { + width: 100%; + padding-top: 15px; +} +#header-container h1, #header-container h2 { + margin-left: 6px; + margin-bottom: 6px; +} +.spacer { + width: 100%; + height: 15px; +} +hr { + border: 0px; + color: #ccc; + background-color: #cdcdcd; + height: 1px; + width: 100%; + text-align: left; +} +h1 { + font-size: 28px; + color: #c55; + background-color: #fff; + font-family: Arial, Verdana, sans-serif; + font-weight: 300; +} +h2 { + font-size: 15px; + color: #999; + font-family: Arial, Verdana, sans-serif; + font-weight: 300; + background-color: #fff; +} +h3 { + color: #4d9b12; + font-size: 15px; + text-align: left; + font-weight: 300; + padding: 5px; + margin-top: 5px; +} + +#left-container { + float: left; + width: 250px; + background-color: #FFFFFF; + color: black; +} + +#left-container h3 { + color: #c55; +} + +#main-container { + margin: 5px 5px 5px 260px; + padding: 15px; + border-left: 1px solid silver; + min-height: 400px; +} +p { + color: #000; + background-color: #fff; + line-height: 20px; + padding: 5px; +} +a { + color: #4d9b12; + background-color: #fff; + text-decoration: none; +} +a:hover { + color: #4d9b12; + background-color: #fff; + text-decoration: underline; +} +#footer-container { + clear: both; + font-size: 12px; + font-family: Verdana, Arial, sans-serif; +} +.right { + float: right; + font-size: 100%; + margin-top: 5px; + color: #999; + background-color: #fff; +} +.left { + float: left; + font-size: 100%; + margin-top: 5px; + color: #999; + background-color: #fff; +} +#main-container ul { + margin-left: 3.0em; +} + +div.resource_collection { + border: 1px solid #999; + float: left; + clear: both; + margin: 10px; + padding: 5px; +} + +div.resource { + border-top: 1px solid #999; + float: left; + clear: both; +} + +div.attr_group { + float: left; + clear: both; +} + +td.attr_name { + font-weight: bold; + margin-right: 10px; + border-right: 1px solid #999; +} + +td.attr_value { + padding-left: 5px; + border-top: 1px solid #999; +} + +div.node { + float: left; + clear: both; + margin: 10px; + padding: 5px; + border: 1px solid #999; +}
\ No newline at end of file diff --git a/packages/chef-server/spec/controllers/nodes_spec.rb b/packages/chef-server/spec/controllers/nodes_spec.rb new file mode 100644 index 0000000000..b28714cc40 --- /dev/null +++ b/packages/chef-server/spec/controllers/nodes_spec.rb @@ -0,0 +1,206 @@ +require File.join(File.dirname(__FILE__), "..", 'spec_helper.rb') + +describe Nodes, "index action" do + it "should get a list of all the nodes" do + Chef::FileStore.should_receive(:list).with("node").and_return(["one"]) + dispatch_to(Nodes, :index) do |c| + c.stub!(:display) + end + end + + it "should send a list of nodes to display" do + Chef::FileStore.stub!(:list).and_return(["one"]) + dispatch_to(Nodes, :index) do |c| + c.should_receive(:display).with(["one"]) + end + end +end + +describe Nodes, "show action" do + it "should load a node from the filestore based on the id" do + node = stub("Node", :null_object => true) + Chef::FileStore.should_receive(:load).with("node", "bond").once.and_return(node) + dispatch_to(Nodes, :show, { :id => "bond" }) do |c| + c.should_receive(:display).with(node).once.and_return(true) + end + end + + it "should return 200 on a well formed request" do + node = stub("Node", :null_object => true) + Chef::FileStore.should_receive(:load).with("node", "bond").once.and_return(node) + controller = dispatch_to(Nodes, :show, { :id => "bond" }) do |c| + c.stub!(:display) + end + controller.status.should eql(200) + end + + it "should raise a BadRequest if the id is not found" do + Chef::FileStore.should_receive(:load).with("node", "bond").once.and_raise(RuntimeError) + lambda { + dispatch_to(Nodes, :show, { :id => "bond" }) + }.should raise_error(Merb::ControllerExceptions::BadRequest) + end +end + +describe Nodes, "create action" do + it "should create a node from an inflated object" do + mnode = mock("Node", :null_object => true) + mnode.stub!(:name).and_return("one") + Chef::FileStore.should_receive(:store).with("node", "one", mnode).once.and_return(true) + Chef::Queue.should_receive(:send_msg).with(:queue, :node_index, mnode).once.and_return(true) + controller = dispatch_to(Nodes, :create) do |c| + c.stub!(:params).and_return({ "inflated_object" => mnode }) + c.stub!(:display) + end + controller.status.should eql(202) + end + + it "should raise an exception if it cannot inflate an object" do + lambda { dispatch_to(Nodes, :create) }.should raise_error(Merb::Controller::BadRequest) + end +end + +describe Nodes, "update action" do + it "should update a node from an inflated object" do + mnode = mock("Node", :null_object => true) + mnode.stub!(:name).and_return("one") + Chef::FileStore.should_receive(:store).with("node", "one", mnode).once.and_return(true) + Chef::Queue.should_receive(:send_msg).with(:queue, :node_index, mnode).once.and_return(true) + controller = dispatch_to(Nodes, :update) do |c| + c.stub!(:params).and_return({ "inflated_object" => mnode }) + c.stub!(:display) + end + controller.status.should eql(202) + end + + it "should raise an exception if it cannot inflate an object" do + lambda { dispatch_to(Nodes, :update) }.should raise_error(Merb::Controller::BadRequest) + end +end + +describe Nodes, "destroy action" do + def do_destroy + dispatch_to(Nodes, :destroy, { :id => "one" }) do |c| + c.stub!(:display) + end + end + + it "should load the node it's about to destroy from the filestore" do + mnode = stub("Node", :null_object => true) + Chef::FileStore.should_receive(:load).with("node", "one").once.and_return(mnode) + Chef::FileStore.stub!(:delete) + Chef::Queue.stub!(:send_msg) + do_destroy + end + + it "should raise an exception if it cannot find the node to destroy" do + Chef::FileStore.should_receive(:load).with("node", "one").once.and_raise(RuntimeError) + lambda { do_destroy }.should raise_error(Merb::Controller::BadRequest) + end + + it "should remove the node from the filestore" do + mnode = stub("Node", :null_object => true) + Chef::FileStore.stub!(:load).with("node", "one").and_return(mnode) + Chef::FileStore.should_receive(:delete).with("node", "one") + Chef::Queue.stub!(:send_msg) + do_destroy + end + + it "should remove the node from the search index" do + mnode = stub("Node", :null_object => true) + Chef::FileStore.stub!(:load).with("node", "one").and_return(mnode) + Chef::FileStore.stub!(:delete) + Chef::Queue.should_receive(:send_msg).with(:queue, :node_remove, mnode) + do_destroy + end + + it "should return the node it just deleted" do + mnode = stub("Node", :null_object => true) + Chef::FileStore.stub!(:load).with("node", "one").and_return(mnode) + Chef::FileStore.stub!(:delete) + Chef::Queue.stub!(:send_msg) + dispatch_to(Nodes, :destroy, { :id => "one" }) do |c| + c.should_receive(:display).once.with(mnode) + end + end + + it "should return a status of 202" do + mnode = stub("Node", :null_object => true) + Chef::FileStore.stub!(:load).with("node", "one").and_return(mnode) + Chef::FileStore.stub!(:delete) + Chef::Queue.stub!(:send_msg) + controller = do_destroy + controller.status.should eql(202) + end +end + +describe Nodes, "compile action" do + before(:each) do + @compile = stub("Compile", :null_object => true) + @node = stub("Node", :null_object => true) + @node.stub!(:[]).and_return(true) + @node.stub!(:[]=).and_return(true) + @node.stub!(:recipes).and_return([]) + @compile.stub!(:load_definitions).and_return(true) + @compile.stub!(:load_recipes).and_return(true) + @compile.stub!(:collection).and_return([]) + @compile.stub!(:node, @node) + @compile.stub!(:load_node).and_return(true) + @stored_node = stub("Stored Node", :null_object => true) + end + + def do_compile + Chef::FileStore.stub!(:load).and_return(@stored_node) + Chef::Compile.stub!(:new).and_return(@compile) + dispatch_to(Nodes, :compile, { :id => "one" }) do |c| + c.stub!(:display) + end + end + + it "should load the node from the node resource" do + @compile.should_receive(:load_node).with("one").and_return(true) + do_compile + end + + it "should merge the data with the currently stored node" do + node1 = Chef::Node.new + node1.name "adam" + node1.music "crowe" + node1.recipes << "monkey" + @compile.stub!(:node).and_return(node1) + @stored_node = Chef::Node.new + @stored_node.name "adam" + @stored_node.music "crown" + @stored_node.woot "woot" + @stored_node.recipes << "monkeysoup" + do_compile + node1.name.should eql("adam") + node1.music.should eql("crown") + node1.woot.should eql("woot") + node1.recipes.should eql([ "monkey", "monkeysoup" ]) + end + + it "should load definitions" do + @compile.should_receive(:load_definitions) + do_compile + end + + it "should load recipes" do + @compile.should_receive(:load_recipes) + do_compile + end + + it "should display the collection and node object" do + Chef::FileStore.stub!(:load).and_return(@stored_node) + Chef::Compile.stub!(:new).and_return(@compile) + dispatch_to(Nodes, :compile, { :id => "one" }) do |c| + c.should_receive(:display).with({ :collection => [], :node => nil }) + end + end + + it "should return 200" do + controller = do_compile + controller.status.should eql(200) + end + +end
\ No newline at end of file diff --git a/packages/chef-server/spec/helpers/nodes_helpers.rb b/packages/chef-server/spec/helpers/nodes_helpers.rb new file mode 100644 index 0000000000..fb68a5e787 --- /dev/null +++ b/packages/chef-server/spec/helpers/nodes_helpers.rb @@ -0,0 +1,5 @@ +require File.join(File.dirname(__FILE__), "..", 'spec_helper.rb') + +describe Merb::NodesHelper do + +end
\ No newline at end of file diff --git a/packages/chef-server/spec/spec.opts b/packages/chef-server/spec/spec.opts new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/chef-server/spec/spec.opts diff --git a/packages/chef-server/spec/spec_helper.rb b/packages/chef-server/spec/spec_helper.rb new file mode 100644 index 0000000000..d265d70ddf --- /dev/null +++ b/packages/chef-server/spec/spec_helper.rb @@ -0,0 +1,11 @@ +require 'rubygems' +require 'merb-core' +require 'spec' # Satiates Autotest and anyone else not using the Rake tasks + +Merb.start_environment(:testing => true, :adapter => 'runner', :environment => ENV['MERB_ENV'] || 'test') + +Spec::Runner.configure do |config| + config.include(Merb::Test::ViewHelper) + config.include(Merb::Test::RouteHelper) + config.include(Merb::Test::ControllerHelper) +end diff --git a/packages/chef-server/spec/views/nodes/delete.html.erb_spec.rb b/packages/chef-server/spec/views/nodes/delete.html.erb_spec.rb new file mode 100644 index 0000000000..33a0c3631f --- /dev/null +++ b/packages/chef-server/spec/views/nodes/delete.html.erb_spec.rb @@ -0,0 +1 @@ +require File.join(File.dirname(__FILE__), "../..", 'spec_helper.rb')
\ No newline at end of file diff --git a/packages/chef-server/spec/views/nodes/edit.html.erb_spec.rb b/packages/chef-server/spec/views/nodes/edit.html.erb_spec.rb new file mode 100644 index 0000000000..33a0c3631f --- /dev/null +++ b/packages/chef-server/spec/views/nodes/edit.html.erb_spec.rb @@ -0,0 +1 @@ +require File.join(File.dirname(__FILE__), "../..", 'spec_helper.rb')
\ No newline at end of file diff --git a/packages/chef-server/spec/views/nodes/index.html.erb_spec.rb b/packages/chef-server/spec/views/nodes/index.html.erb_spec.rb new file mode 100644 index 0000000000..33a0c3631f --- /dev/null +++ b/packages/chef-server/spec/views/nodes/index.html.erb_spec.rb @@ -0,0 +1 @@ +require File.join(File.dirname(__FILE__), "../..", 'spec_helper.rb')
\ No newline at end of file diff --git a/packages/chef-server/spec/views/nodes/new.html.erb_spec.rb b/packages/chef-server/spec/views/nodes/new.html.erb_spec.rb new file mode 100644 index 0000000000..33a0c3631f --- /dev/null +++ b/packages/chef-server/spec/views/nodes/new.html.erb_spec.rb @@ -0,0 +1 @@ +require File.join(File.dirname(__FILE__), "../..", 'spec_helper.rb')
\ No newline at end of file diff --git a/packages/chef-server/spec/views/nodes/show.html.erb_spec.rb b/packages/chef-server/spec/views/nodes/show.html.erb_spec.rb new file mode 100644 index 0000000000..33a0c3631f --- /dev/null +++ b/packages/chef-server/spec/views/nodes/show.html.erb_spec.rb @@ -0,0 +1 @@ +require File.join(File.dirname(__FILE__), "../..", 'spec_helper.rb')
\ No newline at end of file diff --git a/spec/unit/config_spec.rb b/spec/unit/config_spec.rb index 5d74e83249..543a7caa13 100644 --- a/spec/unit/config_spec.rb +++ b/spec/unit/config_spec.rb @@ -84,4 +84,10 @@ describe Chef::Config do lambda { Chef::Config[:snob_hobbery] }.should raise_error(ArgumentError) end + it "should return true or false with has_key?" do + Chef::Config.has_key?(:monkey).should eql(false) + Chef::Config[:monkey] = "gotcha" + Chef::Config.has_key?(:monkey).should eql(true) + end + end
\ No newline at end of file diff --git a/spec/unit/file_store_spec.rb b/spec/unit/file_store_spec.rb new file mode 100644 index 0000000000..f2f1070f2d --- /dev/null +++ b/spec/unit/file_store_spec.rb @@ -0,0 +1,95 @@ +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: GNU General Public License version 2 or later +# +# This program and entire repository is free software; you can +# redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software +# Foundation; either version 2 of the License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +require File.expand_path(File.join(File.dirname(__FILE__), "..", "spec_helper")) + +class Fakestore + attr_accessor :name + + def to_json(*a) + { :name => @name }.to_json(*a) + end + + def self.json_create(o) + new_fakestore = new + new_fakestore.name = o[:name] + new_fakestore + end +end + +describe Chef::FileStore do + before(:each) do + Chef::Config[:file_store_path] = "/tmp/chef-test" + @fakestore = Fakestore.new + @fakestore.name = "Landslide" + @fakestore_digest = "a56a428bddac69e505731708ba206da0bb75e8de883bb4d5ef6be9b327da556a" + end + + it "should return a path to a file given a type and key" do + Dir.stub!(:mkdir).and_return(true) + File.stub!(:directory?).and_return(true) + path = Chef::FileStore.create_store_path("fakestore", @fakestore.name) + path.should eql("/tmp/chef-test/fakestore/a/56a/Landslide") + end + + it "should create directories for the path if needed" do + File.stub!(:directory?).and_return(false) + Dir.should_receive(:mkdir).exactly(4).times.and_return(true) + Chef::FileStore.create_store_path("fakestore", @fakestore.name) + end + + it "should store an object with a type and key" do + Chef::FileStore.should_receive(:create_store_path).with("fakestore", @fakestore.name).and_return("/monkey") + File.stub!(:directory?).and_return(true) + ioobj = mock("IO", :null_object => true) + ioobj.should_receive(:puts).with(@fakestore.to_json) + ioobj.should_receive(:close).once.and_return(true) + File.should_receive(:open).with("/monkey", "w").and_return(ioobj) + Chef::FileStore.store("fakestore", @fakestore.name, @fakestore) + end + + it "should load an object from the store with type and key" do + Chef::FileStore.should_receive(:create_store_path).with("fakestore", @fakestore.name).and_return("/monkey") + File.stub!(:exists?).and_return(true) + IO.should_receive(:read).once.and_return(true) + JSON.should_receive(:parse).and_return(true) + Chef::FileStore.load("fakestore", @fakestore.name) + end + + it "should through an exception if it cannot load a file from the store" do + Chef::FileStore.should_receive(:create_store_path).and_return("/tmp") + File.stub!(:exists?).and_return(false) + lambda { Chef::FileStore.load("fakestore", @fakestore.name) }.should raise_error(RuntimeError) + end + + it "should delete a file from the store if it exists" do + Chef::FileStore.should_receive(:create_store_path).with("node", "nothing").and_return("/tmp/foolio") + File.stub!(:exists?).and_return(true) + File.should_receive(:unlink).with("/tmp/foolio").and_return(1) + Chef::FileStore.delete("node", "nothing") + end + + it "should list all the keys of a particular type" do + Dir.should_receive(:[]).with("/tmp/chef-test/node/**/*").and_return(["pool"]) + File.should_receive(:file?).with("pool").and_return(true) + Chef::FileStore.list("node").should eql(["pool"]) + end + +end
\ No newline at end of file diff --git a/spec/unit/node_spec.rb b/spec/unit/node_spec.rb index 0ea4d864d4..753d056404 100644 --- a/spec/unit/node_spec.rb +++ b/spec/unit/node_spec.rb @@ -153,14 +153,23 @@ describe Chef::Node do it "should serialize itself as json" do node = Chef::Node.find("test.example.com") - json = node.to_json - result = JSON.load(json) - result["name"].should == "test.example.com" - result["type"].should == "Chef::Node" - result["attributes"]["something"].should == "else" - result["attributes"]["sunshine"].should == "in" - result["recipes"].detect { |r| r == "operations-master" }.should == "operations-master" - result["recipes"].detect { |r| r == "operations-monitoring" }.should == "operations-monitoring" + json = node.to_json() + json.should =~ /json_class/ + json.should =~ /name/ + json.should =~ /attributes/ + json.should =~ /recipes/ + end + + it "should deserialize itself from json" do + original_node = Chef::Node.find("test.example.com") + json = original_node.to_json + serialized_node = JSON.parse(json) + serialized_node.should be_a_kind_of(Chef::Node) + serialized_node.name.should eql(original_node.name) + original_node.each_attribute do |k,v| + serialized_node[k].should eql(v) + end + serialized_node.recipes.should eql(original_node.recipes) end it "should return a list of node names based on which files are in the node_path" do diff --git a/spec/unit/queue_spec.rb b/spec/unit/queue_spec.rb new file mode 100644 index 0000000000..9a199c9852 --- /dev/null +++ b/spec/unit/queue_spec.rb @@ -0,0 +1,107 @@ +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: GNU General Public License version 2 or later +# +# This program and entire repository is free software; you can +# redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software +# Foundation; either version 2 of the License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +require File.expand_path(File.join(File.dirname(__FILE__), "..", "spec_helper")) + +describe Chef::Queue do + + it "should connect to a stomp server on localhost and 61613" do + Stomp::Connection.should_receive(:open).with("", "", "localhost", 61613, false).once + Chef::Queue.connect + end + + it "should allow config options to override defaults on connect" do + Chef::Config[:queue_user] = "monkey" + Chef::Config[:queue_password] = "password" + Chef::Config[:queue_host] = "10.10.10.10" + Chef::Config[:queue_port] = 61614 + Stomp::Connection.should_receive(:open).with("monkey", "password", "10.10.10.10", 61614, false).once + Chef::Queue.connect + end + + it "should make a url based on type and name" do + Chef::Queue.make_url("topic", "goal").should eql("/topic/chef/goal") + Chef::Queue.make_url("queue", "pool").should eql("/queue/chef/pool") + end + + it "should allow you to subscribe to a queue" do + queue = mock("Queue", :null_object => true) + queue.should_receive(:subscribe).with(Chef::Queue.make_url(:topic, :node)).once + Stomp::Connection.stub!(:open).and_return(queue) + Chef::Queue.connect + Chef::Queue.subscribe(:topic, :node) + end + + it "should allow you to send a message" do + message = mock("Message", :null_object => true) + message.should_receive(:to_json).once.and_return("some json") + connection = mock("Connection", :null_object => true) + connection.should_receive(:send).with(Chef::Queue.make_url(:queue, :node), "some json").once.and_return(true) + Stomp::Connection.stub!(:open).and_return(connection) + Chef::Queue.connect + Chef::Queue.send_msg(:queue, :node, message) + end + + it "should receive a message with receive_msg" do + raw_msg = mock("Stomp Message", :null_object => true) + raw_msg.should_receive(:body).twice.and_return("the body") + connection = mock("Connection", :null_object => true) + connection.should_receive(:receive).once.and_return(raw_msg) + JSON.should_receive(:parse).with("the body").and_return("the body") + Stomp::Connection.stub!(:open).and_return(connection) + Chef::Queue.connect + Chef::Queue.receive_msg.should eql([ "the body", raw_msg ]) + end + + it "should poll for a message with poll_msg, returning a message if there is one" do + raw_msg = mock("Stomp Message", :null_object => true) + raw_msg.should_receive(:body).once.and_return("the body") + connection = mock("Connection", :null_object => true) + connection.should_receive(:poll).once.and_return(raw_msg) + JSON.should_receive(:parse).with("the body").and_return("the body") + Stomp::Connection.stub!(:open).and_return(connection) + Chef::Queue.connect + Chef::Queue.poll_msg.should eql("the body") + end + + it "should poll for a message with poll_msg, returning nil if there is not a message" do + connection = mock("Connection", :null_object => true) + connection.should_receive(:poll).once.and_return(nil) + JSON.should_not_receive(:parse).with(nil) + Stomp::Connection.stub!(:open).and_return(connection) + Chef::Queue.connect + Chef::Queue.poll_msg.should eql(nil) + end + + it "should raise an exception if you disconnect without a connection" do + Stomp::Connection.stub!(:open).and_return(nil) + Chef::Queue.connect + lambda { Chef::Queue.disconnect }.should raise_error(ArgumentError) + end + + it "should disconnect an active connection" do + connection = mock("Connection", :null_object => true) + connection.should_receive(:disconnect).once.and_return(true) + Stomp::Connection.stub!(:open).and_return(connection) + Chef::Queue.connect + Chef::Queue.disconnect + end + +end
\ No newline at end of file diff --git a/spec/unit/resource_collection_spec.rb b/spec/unit/resource_collection_spec.rb index 10f251aaac..ac83e019c0 100644 --- a/spec/unit/resource_collection_spec.rb +++ b/spec/unit/resource_collection_spec.rb @@ -171,6 +171,20 @@ describe Chef::ResourceCollection do it "should raise an exception if you pass something other than a string or hash to resource" do lambda { @rc.resources([Array.new]) }.should raise_error(ArgumentError) end + + it "should serialize to json" do + json = @rc.to_json + json.should =~ /json_class/ + json.should =~ /instance_vars/ + end + + it "should deserialize itself from json" do + @rc << @resource + json = @rc.to_json + s_rc = JSON.parse(json) + s_rc.should be_a_kind_of(Chef::ResourceCollection) + s_rc[0].name.should eql(@resource.name) + end def check_by_names(results, *names) names.each do |res_name| diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb index be9a7cc3aa..6be2932967 100644 --- a/spec/unit/resource_spec.rb +++ b/spec/unit/resource_spec.rb @@ -130,6 +130,18 @@ describe Chef::Resource do @resource.noop.should eql(true) end + it "should serialize to json" do + json = @resource.to_json + json.should =~ /json_class/ + json.should =~ /instance_vars/ + end + + it "should deserialize itself from json" do + json = @resource.to_json + serialized_node = JSON.parse(json) + serialized_node.should be_a_kind_of(Chef::Resource) + serialized_node.name.should eql(@resource.name) + end # it "should serialize to yaml" do # yaml_output = <<-DESC diff --git a/spec/unit/search_index_spec.rb b/spec/unit/search_index_spec.rb new file mode 100644 index 0000000000..2957f9c774 --- /dev/null +++ b/spec/unit/search_index_spec.rb @@ -0,0 +1,57 @@ +# +# Author:: Adam Jacob (<adam@hjksolutions.com>) +# Copyright:: Copyright (c) 2008 HJK Solutions, LLC +# License:: GNU General Public License version 2 or later +# +# This program and entire repository is free software; you can +# redistribute it and/or modify it under the terms of the GNU +# General Public License as published by the Free Software +# Foundation; either version 2 of the License, or any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# + +require File.expand_path(File.join(File.dirname(__FILE__), "..", "spec_helper")) + +describe Chef::SearchIndex do + before(:each) do + @fake_indexer = stub("Indexer", :null_object => true) + Ferret::Index::Index.stub!(:new).and_return(@fake_indexer) + @sindex = Chef::SearchIndex.new() + @node = Chef::Node.new + @node.name "adam.foo.com" + @node.fqdn "adam.foo.com" + @node.mars "volta" + @node.recipes "one", "two" + end + + it "should index a node object with add" do + @sindex.should_receive(:_prepare_node).with(@node).and_return("my value") + @fake_indexer.should_receive(:add_document).with("my value") + @sindex.add(@node) + end + + it "should remove a node from the index with delete" do + @sindex.should_receive(:_prepare_node).with(@node).and_return({ :id => "node-my value" }) + @fake_indexer.should_receive(:delete).with(:id => "node-my value") + @sindex.delete(@node) + end + + it "should prepare a node by creating a proper hash" do + node_hash = @sindex.send(:_prepare_node, @node) + node_hash[:id].should eql("node-adam.foo.com") + node_hash[:type].should eql("node") + node_hash[:name].should eql("adam.foo.com") + node_hash[:fqdn].should eql("adam.foo.com") + node_hash[:mars].should eql("volta") + node_hash[:recipe].should eql(["one", "two"]) + end + +end
\ No newline at end of file |