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