Sha256: 6a80c239f7b4b74337ebbd0e77d0a127a27ab4c072b0ee435353946116cd54b1

Contents?: true

Size: 953 Bytes

Versions: 4

Compression:

Stored size: 953 Bytes

Contents

# frozen_string_literal: true

module RailsMiniProfiler
  class Guard
    def initialize(request_context, configuration: RailsMiniProfiler.configuration)
      @request_context = request_context
      @request = request_context.request
      @configuration = configuration
    end

    def profile?
      return false unless enabled?

      return false if ignored_path?

      true
    end

    def store?
      return false unless @request_context.user

      true
    end

    private

    def ignored_path?
      return true if /#{Engine.routes.find_script_name({})}/.match?(@request.path)

      return true if /assets/.match?(@request.path)

      ignored_paths = @configuration.skip_paths

      return true if Regexp.union(ignored_paths).match?(@request.path)

      false
    end

    def enabled?
      enabled = @configuration.enabled
      return enabled unless enabled.respond_to?(:call)

      enabled.call(@request.env)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rails_mini_profiler-0.1.3 lib/rails_mini_profiler/guard.rb
rails_mini_profiler-0.1.2 lib/rails_mini_profiler/guard.rb
rails_mini_profiler-0.1.1 lib/rails_mini_profiler/guard.rb
rails_mini_profiler-0.1.0 lib/rails_mini_profiler/guard.rb