Module: JSchema::MethodCallLogger

Defined in:
lib/jschema/method_call_logger.rb

Class Method Summary collapse

Class Method Details

.enable(log_class) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/jschema/method_call_logger.rb', line 7

def enable(log_class)
  sub_classes = [log_class]
  sub_classes.each do |klass|
    # We want to observe only the given class and all its subclasses
    observe_class klass

    klass.constants.each do |class_sym|
      sub_class = klass.const_get(class_sym)

      # FIXME: misleading condintion
      if sub_class.is_a?(Module) &&
          sub_class.name.start_with?(log_class.name)

        sub_classes << sub_class
      end
    end
  end
end

.log_method_call(klass, method, args) ⇒ Object



26
27
28
# File 'lib/jschema/method_call_logger.rb', line 26

def log_method_call(klass, method, args)
  logger.info "#{klass.name}##{method}(#{args.join(', ')})"
end