class AdLint::Examination

DESCRIPTION

Base of all kinds of source code examinations.

Public Class Methods

catalog() click to toggle source
# File lib/adlint/exam.rb, line 58
def catalog
  eval "::#{self.name.sub(/(.*::).*\z/, "\\1")}Catalog"
end
new(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 80
def initialize(phase_ctxt)
  @phase_ctxt = phase_ctxt
end
registrant_phase_class() click to toggle source
# File lib/adlint/exam.rb, line 45
def registrant_phase_class
  self.ancestors.each do |klass|
    if phase_class = @@registrant_phase_classes[klass]
      return phase_class
    end
  end
  nil
end
required?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 54
def required?(phase_ctxt)
  subclass_responsibility
end

Private Class Methods

def_registrant_phase(phase_class) click to toggle source
# File lib/adlint/exam.rb, line 68
def def_registrant_phase(phase_class)
  @@registrant_phase_classes ||= {}
  @@registrant_phase_classes[self] = phase_class
end
inherited(subclass) click to toggle source
# File lib/adlint/exam.rb, line 64
def inherited(subclass)
  subclass.instance_variable_set(:@registrant_phase_class, nil)
end

Public Instance Methods

execute() click to toggle source
# File lib/adlint/exam.rb, line 84
def execute
  do_prepare(@phase_ctxt)
  do_execute(@phase_ctxt)
end

Private Instance Methods

T(name, loc_holder_idx = 0)
Alias for: targeted_method
do_execute(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 94
def do_execute(phase_ctxt)
  subclass_responsibility
end
do_prepare(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 90
def do_prepare(phase_ctxt)
  subclass_responsibility
end
suppressors() click to toggle source
# File lib/adlint/exam.rb, line 122
def suppressors
  @phase_ctxt[:suppressors]
end
targeted_method(name, loc_holder_idx = 0) click to toggle source
# File lib/adlint/exam.rb, line 98
def targeted_method(name, loc_holder_idx = 0)
  lambda do |*args|
    if args[loc_holder_idx].analysis_target?(traits)
      self.__send__(name, *args)
    end
  end
end
Also aliased as: T