Sha256: d554f694d14e3b63bbe755a3e8ae27dbab109c36846eb4bb5b6f92146987b96e

Contents?: true

Size: 1.56 KB

Versions: 5

Compression:

Stored size: 1.56 KB

Contents

module Rack
  class MiniProfiler
    class Config

    def self.attr_accessor(*vars)
      @attributes ||= []
      @attributes.concat vars
      super(*vars)
    end
    
    def self.attributes
      @attributes
    end

    attr_accessor :auto_inject, :base_url_path, :pre_authorize_cb, :position,
        :backtrace_remove, :backtrace_filter, :skip_schema_queries, 
        :storage, :user_provider, :storage_instance, :storage_options, :skip_paths, :authorization_mode
      
      def self.default
        new.instance_eval {
          @auto_inject = true # automatically inject on every html page
          @base_url_path = "/mini-profiler-resources/"
          
          # called prior to rack chain, to ensure we are allowed to profile
          @pre_authorize_cb = lambda {|env| true} 
                                                  
          # called after rack chain, to ensure we are REALLY allowed to profile
          @position = 'left'  # Where it is displayed
          @skip_schema_queries = false
          @storage = MiniProfiler::MemoryStore
          @user_provider = Proc.new{|env| Rack::Request.new(env).ip}
          @authorization_mode = :allow_all
          self
        }
      end

      def merge!(config)
        return unless config
        if Hash === config 
          config.each{|k,v| instance_variable_set "@#{k}",v}
        else 
          self.class.attributes.each{ |k|  
            v = config.send k
            instance_variable_set "@#{k}", v if v
          }
        end
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rack-mini-profiler-0.1.7 lib/mini_profiler/config.rb
rack-mini-profiler-0.1.6 lib/mini_profiler/config.rb
rack-mini-profiler-0.1.5 lib/mini_profiler/config.rb
rack-mini-profiler-0.1.4 lib/mini_profiler/config.rb
rack-mini-profiler-0.1.3 lib/mini_profiler/config.rb