def methods_under_matching(class_entry_or_name, regexp, recursive, scope = nil)
case class_entry_or_name
when ClassEntry
full_name = class_entry_or_name.full_name
else
full_name = class_entry_or_name
end
method_entry = get_entry(@method_array, full_name, MethodEntry)
return [] unless method_entry
ret = []
re1, re2 = matching_regexps_method(full_name)
(method_entry.index...@method_array.size).each do |i|
entry = @method_array[i]
break unless re1 =~ entry
next if !recursive && re2 !~ entry
full_name = entry[/\S+/]
next unless regexp =~ full_name
if scope
sources = method_sources(i)
if sources.include?(sindex = scope_to_sindex(scope))
ret << MethodEntry.new(self, full_name, i, sindex)
end
else
ret << MethodEntry.new(self, full_name, i, nil)
end
end
ret
end