class Delfos::MethodLogging::MethodParameters

Attributes

block[R]

Public Class Methods

new(args=[], keyword_args=nil, block=nil) click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 9
def initialize(args=[], keyword_args=nil, block=nil)
  @raw_args         = args
  @raw_keyword_args = keyword_args
  @block            = block
end

Public Instance Methods

args() click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 15
def args
  @args ||= calculate_args(@raw_args)
end
argument_classes() click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 19
def argument_classes
  (args + keyword_args).uniq
end
as_json(*params) click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 27
def as_json(*params)
  {arguments: args, keyword_arguments: keyword_args}
end
keyword_args() click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 23
def keyword_args
  @keyword_args ||= calculate_args(@raw_keyword_args.values)
end

Private Instance Methods

calculate_args(arguments) click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 33
def calculate_args(arguments)
  arguments.
    map { |o| o.is_a?(Class) ? o : o.class }.
    select { |k| keep?(k) }
end
files_for(klass) click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 44
def files_for(klass)
  Patching::MethodCache.files_for(klass)
end
keep?(klass) click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 39
def keep?(klass)
  files_for(klass).
    any? { |f| record?(f) }
end
record?(f) click to toggle source
# File lib/delfos/method_logging/method_parameters.rb, line 48
def record?(f)
  Delfos::MethodLogging.include_file?(f)
end