Sha256: 0f2576680f5815ad59af2dbd7c11091d09c6d7b22adc3fb631496d469f50110b

Contents?: true

Size: 1.05 KB

Versions: 31

Compression:

Stored size: 1.05 KB

Contents

# frozen_string_literal: true

module ApiDebugger
  def self.prepended(receiver) # rubocop:disable Metrics/AbcSize
    exclude, print_caller = parse_options(ENV['API_DEBUG'])

    receiver_methods = receiver.instance_methods - Object.methods
    receiver_methods.each do |meth|
      ApiDebugger.class_eval do
        define_method(meth) do |*args|
          method_call = super(*args)

          unless exclude.include?(meth)
            puts '#' * 80
            puts "Method call: #{meth}"
            puts "Called with: #{args.inspect}"
            if print_caller.include?(meth)
              puts '-' * 80
              puts caller
            end
            puts '#' * 80
          end
          method_call
        end
      end
    end
  end

  def self.parse_options(options)
    exclude = []
    print_caller = []

    options.split(',').each do |option|
      if option.start_with?('-')
        exclude << option[1..-1].to_sym
      elsif option.start_with?('+')
        print_caller << option[1..-1].to_sym
      end
    end

    [exclude, print_caller]
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
facter-4.0.46 lib/facter/util/api_debugger.rb
facter-4.0.44 lib/facter/util/api_debugger.rb
facter-4.0.43 lib/facter/util/api_debugger.rb
facter-4.0.42 lib/facter/util/api_debugger.rb
facter-4.0.41 lib/facter/util/api_debugger.rb
facter-4.0.40 lib/facter/util/api_debugger.rb
facter-4.0.39 lib/facter/util/api_debugger.rb
facter-4.0.38 lib/facter/util/api_debugger.rb
facter-4.0.37 lib/facter/util/api_debugger.rb
facter-4.0.36 lib/facter/util/api_debugger.rb
facter-4.0.35 lib/facter/util/api_debugger.rb
facter-4.0.34 lib/facter/util/api_debugger.rb
facter-4.0.33 lib/facter/util/api_debugger.rb
facter-4.0.32 lib/facter/util/api_debugger.rb
facter-4.0.31 lib/facter/util/api_debugger.rb
facter-4.0.30 lib/facter/util/api_debugger.rb
facter-4.0.29 lib/util/api_debugger.rb
facter-4.0.28 lib/util/api_debugger.rb
facter-4.0.26 lib/util/api_debugger.rb
facter-4.0.25 lib/util/api_debugger.rb