Module | JavaClass::JavaNameScanner |
In: |
lib/javaclass/java_name_scanner.rb
|
Mixin with logic to scan for hard coded class names.
Author: | Peter Kofler |
TEXT_REGEX | = | / (?:^|>|"|'|=|:|!) \s* ( (?:#{JavaLanguage::IDENTIFIER_REGEX}#{JavaLanguage::SEPARATOR_REGEX})+#{JavaLanguage::TYPE_REGEX} ) \s* (?:$|<|"|'|:) /x |
# 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
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