Method: FastRI::RiIndex#methods_under_matching
- Defined in:
- lib/fastri/ri_index.rb
#methods_under_matching(class_entry_or_name, regexp, recursive, scope = nil) ⇒ Object
Returns array of MethodEntry objects under class_entry_or_name (either String or ClassEntry) in the hierarchy whose full_name matches the given regexp.
453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 |
# File 'lib/fastri/ri_index.rb', line 453 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 |