class AdLint::CodeCheck

DESCRIPTION

Base of code checking classes.

Public Class Methods

message_id() click to toggle source
# File lib/adlint/exam.rb, line 191
def message_id
  MessageId.new(catalog.name, message_name)
end
message_name() click to toggle source
# File lib/adlint/exam.rb, line 186
def message_name
  self.name.sub(/.*::(W\d{4}).*\z/, "\\1").to_sym
end
must_be_deferred?() click to toggle source
# File lib/adlint/exam.rb, line 203
def must_be_deferred?
  @must_be_deferred
end
must_be_unique?() click to toggle source
# File lib/adlint/exam.rb, line 199
def must_be_unique?
  @must_be_unique
end
required?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 195
def required?(phase_ctxt)
  excluded?(phase_ctxt) ? included?(phase_ctxt) : true
end

Private Class Methods

excluded?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 221
def excluded?(phase_ctxt)
  excluded_by_category?(phase_ctxt) ||
    excluded_by_severity?(phase_ctxt) || excluded_by_id?(phase_ctxt)
end
excluded_by_category?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 230
def excluded_by_category?(phase_ctxt)
  exclusion = phase_ctxt.traits.of_message.exclusion
  if exclusion.categories.empty?
    false
  else
    if tmpl = phase_ctxt.message_catalog.lookup(message_id)
      exclusion.categories.any? { |cat| tmpl.categories.include?(cat) }
    else
      false
    end
  end
end
excluded_by_id?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 256
def excluded_by_id?(phase_ctxt)
  exclusion = phase_ctxt.traits.of_message.exclusion
  exclusion.messages.include?(message_id)
end
excluded_by_severity?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 243
def excluded_by_severity?(phase_ctxt)
  exclusion = phase_ctxt.traits.of_message.exclusion
  if exclusion.severities
    false
  else
    if tmpl = phase_ctxt.message_catalog.lookup(message_id)
      tmpl.severities.any? { |sev| sev =~ exclusion.severities }
    else
      false
    end
  end
end
included?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 226
def included?(phase_ctxt)
  included_by_id?(phase_ctxt)
end
included_by_id?(phase_ctxt) click to toggle source
# File lib/adlint/exam.rb, line 261
def included_by_id?(phase_ctxt)
  inclusion = phase_ctxt.traits.of_message.inclusion
  inclusion.messages.include?(message_id)
end
inherited(subclass) click to toggle source
# File lib/adlint/exam.rb, line 208
def inherited(subclass)
  subclass.instance_variable_set(:@must_be_unique,   false)
  subclass.instance_variable_set(:@must_be_deferred, false)
end
mark_as_deferred() click to toggle source
# File lib/adlint/exam.rb, line 217
def mark_as_deferred
  @must_be_deferred = true
end
mark_as_unique() click to toggle source
# File lib/adlint/exam.rb, line 213
def mark_as_unique
  @must_be_unique = true
end

Public Instance Methods

message_name() click to toggle source
# File lib/adlint/exam.rb, line 267
def message_name
  self.class.message_name
end