Module: JavaClass::Utils

Defined in:
lib/javaclass/base.rb

Overview

ユーティリティ

Class Method Summary collapse

Class Method Details

.each_class(*paths, &block) ⇒ Object

配列で指定されたパスをすべて探索して配下のjar,classを解析し通知する

*paths

探索するパスの配列。ファイルの場合、jarまたはclassであれば解析。

ディレクトリであれば再帰的に探索。


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/javaclass/base.rb', line 10

def self.each_class( *paths, &block )
  paths.each {|path|
    if File.directory?( path )
      JavaClass::Utils.each_class( *Dir.glob("#{path}/*"), &block )
    elsif File.file?( path )
      if path =~ /\.class$/
        open( path, "r" ) {|f|
          block.call(JavaClass.from( f ))
        }
      elsif path =~ /\.jar$/
        JavaClass::ZipUtils.each_class( path, &block )
      end
    end
  }
end