class AdLint::MessageSuppressionSpecifier

Public Class Methods

new(loc, msg_id_ary) click to toggle source
Calls superclass method AdLint::Annotation::new
# File lib/adlint/annot.rb, line 52
def initialize(loc, msg_id_ary)
  super(loc)
  @message_ids = msg_id_ary.to_set
end

Public Instance Methods

create_suppressor() click to toggle source
# File lib/adlint/annot.rb, line 69
def create_suppressor
  subclass_responsibility
end
file_wise?() click to toggle source
# File lib/adlint/annot.rb, line 61
def file_wise?
  subclass_responsibility
end
line_wise?() click to toggle source
# File lib/adlint/annot.rb, line 65
def line_wise?
  subclass_responsibility
end
message_suppression_specifier?() click to toggle source
# File lib/adlint/annot.rb, line 57
def message_suppression_specifier?
  true
end

Private Instance Methods

parse_message_name_list(msg_names) click to toggle source
# File lib/adlint/annot.rb, line 98
def parse_message_name_list(msg_names)
  msg_names.slice(/\[(.*)\]/m, 1).split(",").map do |msg_name_str|
    msg_name_str.strip.to_sym
  end
end
parse_message_specifiers(trailer) click to toggle source
# File lib/adlint/annot.rb, line 74
def parse_message_specifiers(trailer)
  msg_specs = []
  scanner = StringScanner.new(trailer)

  loop do
    case
    when scanned = scanner.scan(/:[a-z][a-z_0-9]*:\[.*?\]/m)
      *, pkg_name, msg_names = scanned.split(":")
      msg_specs.concat(parse_message_name_list(msg_names).map { |msg_name|
        MessageId.new(pkg_name, msg_name)
      })
    when scanned = scanner.scan(/:\[.*?\]/m)
      *, msg_names = scanned.split(":")
      msg_specs.concat(parse_message_name_list(msg_names).map { |msg_name|
        MessageId.new(nil, msg_name)
      })
    else
      break
    end
  end

  msg_specs
end