module JavaClass::JavaNameScanner
Mixin with logic to scan for hard coded class names.
- Author
-
Peter Kofler
Constants
- TEXT_REGEX
Public Instance Methods
scan_config_for_3rd_party_class_names(path, ignorepattern=/^\./)
click to toggle source
# File lib/javaclass/java_name_scanner.rb, line 20 def scan_config_for_3rd_party_class_names(path, ignorepattern=/^\./) scan_config_for_class_names(path, ignorepattern).reject { |name| name.in_jdk? } # need abstraction for - .reject { |name| name.in_jdk? } - have it three times # maybe a mixin for enumerables containing JavaTypes #JavaNameEnumerable with - .reject { |name| name.in_jdk? } - und anderen? reject_in_jdk = 3rd Party # and find_all { |n| n.same_or_subpackage_of?(x) } -- also very often = in_package() end
scan_config_for_class_names(path, ignorepattern=/^\./)
click to toggle source
Find all possible class names in all XML and property files under path and optionally ignore ignorepattern
# File lib/javaclass/java_name_scanner.rb, line 29 def scan_config_for_class_names(path, ignorepattern=/^\./) return [] unless File.exist? path if File.file?(path) if path =~ /\.xml$|\.properties$|MANIFEST.MF$/ scan_text_for_class_names(IO.readlines(path).join) else [] end else Dir.entries(path).reject { |n| n =~ /^\./ or n=~ ignorepattern }. map { |n| scan_config_for_class_names(File.join(path, n), ignorepattern) }. flatten.sort end end
scan_text_for_class_names(string)
click to toggle source
Extract the list of possible class names from the given string . This will only find names with at least one package name.
# File lib/javaclass/java_name_scanner.rb, line 54 def scan_text_for_class_names(string) string.scan(TEXT_REGEX).flatten.map { |match| JavaQualifiedName.new(match) } end