# class RubyProf::Profile::ExcludeCommonMethods

### Constants

ENUMERABLE_NAMES

### Public Class Methods

apply!(profile) click to toggle source

    # File lib/ruby-prof/profile/exclude_common_methods.rb, line 8
    def self.apply!(profile)
      new(profile).apply!
    end

new(profile) click to toggle source

    # File lib/ruby-prof/profile/exclude_common_methods.rb, line 12
    def initialize(profile)
      @profile = profile
    end

### Public Instance Methods

apply!() click to toggle source

    # File lib/ruby-prof/profile/exclude_common_methods.rb, line 16
    def apply!
      ##
      #  Kernel Methods
      ##

      exclude_methods Kernel, [
        :dup,
        :initialize_dup,
        :tap,
        :send,
        :public_send,
      ]

      ##
      #  Fundamental Types
      ##

      exclude_methods BasicObject,  :"!="
      exclude_methods Method,       :"[]"
      exclude_methods Module,       :new
      exclude_methods Class,        :new
      exclude_methods Proc,         :call, :yield
      exclude_methods Range,        :each
      exclude_methods Integer,      :times

      ##
      #  Value Types
      ##

      exclude_methods String, [
        :sub,
        :sub!,
        :gsub,
        :gsub!,
      ]

      ##
      #  Emumerables
      ##

      exclude_enumerable Enumerable
      exclude_enumerable Enumerator

      ##
      #  Collections
      ##

      exclude_enumerable Array, [
        :each_index,
        :map!,
        :select!,
        :reject!,
        :collect!,
        :sort!,
        :sort_by!,
        :index,
        :delete_if,
        :keep_if,
        :drop_while,
        :uniq,
        :uniq!,
        :"==",
        :eql?,
        :hash,
        :to_json,
        :as_json,
        :encode_json,
      ]

      exclude_enumerable Hash, [
        :dup,
        :initialize_dup,
        :fetch,
        :"[]",
        :"[]=",
        :each_key,
        :each_value,
        :each_pair,
        :map!,
        :select!,
        :reject!,
        :collect!,
        :delete_if,
        :keep_if,
        :slice,
        :slice!,
        :except,
        :except!,
        :"==",
        :eql?,
        :hash,
        :to_json,
        :as_json,
        :encode_json,
      ]

      exclude_enumerable Set, [
        :map!,
        :select!,
        :reject!,
        :collect!,
        :classify,
        :delete_if,
        :keep_if,
        :divide,
        :"==",
        :eql?,
        :hash,
        :to_json,
        :as_json,
        :encode_json,
      ]

      ##
      #  Garbage Collection
      ##

      exclude_singleton_methods GC, [
        :start
      ]

      ##
      #  Unicorn
      ##

      if defined?(Unicorn)
        exclude_methods Unicorn::HttpServer, :process_client
      end

      if defined?(Unicorn::OobGC)
        exclude_methods Unicorn::OobGC, :process_client
      end

      ##
      #  New Relic
      ##

      if defined?(NewRelic)
        exclude_methods NewRelic::Agent::Instrumentation::MiddlewareTracing, [
          :call
        ]

        exclude_methods NewRelic::Agent::MethodTracerHelpers, [
          :trace_execution_scoped,
          :log_errors,
        ]

        exclude_singleton_methods NewRelic::Agent::MethodTracerHelpers, [
          :trace_execution_scoped,
          :log_errors,
        ]

        exclude_methods NewRelic::Agent::MethodTracer, [
          :trace_execution_scoped,
          :trace_execution_unscoped,
        ]
      end

        ##
        #  Miscellaneous Methods
        ##

      if defined?(Mustache)
        exclude_methods Mustache::Context, [
          :fetch
        ]
      end
    end