class Regexr
def initialize(verbose = false, case_insensitive = true)
@verbose = verbose
@case_insensitive = case_insensitive
end
def verify_start_and_end(data, the_start, the_end)
return false unless data
data_lines = data.split("\n")
regex_start = Regexp.new(the_start, @case_insensitive)
regex_end = Regexp.new(the_end, @case_insensitive)
if regex_start =~ data_lines.first
return regex_end =~ data_lines.last
end
return false
end
def find_strings_that_dont_exist_in_data(data, regexes = [])
return false unless data
data_lines = data.split("\n")
return nil unless regexes
if regexes
target_successes = regexes.size
success_count = 0
regexes.each { |condition|
found = false
re = Regexp.new(condition, @case_insensitive)
data_lines.each { |line|
if line =~ re
found = true
break
end
}
if !found
return condition
end
}
end
nil
end
def find_strings_that_exist_in_data_except(data, regexes = [], exceptions = [])
return false unless data
data_lines = data.split("\n")
return nil unless regexes
regexes.each { |condition|
re = Regexp.new(condition, @case_insensitive)
found = false
data_lines.each { |line|
if re =~ line
found = true
exceptions.map { |exception|
reg_exception = Regexp.new(exception, @case_insensitive)
if reg_exception =~ line
found = false
break
end
}
return condition if found
end
}
}
nil
end
end