Module: Rjb

Defined in:
lib/rjb/require.rb

Class Method Summary collapse

Class Method Details

.load_from(path) ⇒ Object



2
3
4
5
# File 'lib/rjb/require.rb', line 2

def self.load_from(path)
  paths = Dir["#{Steam.config[:html_unit][:java_path]}/*.jar"]
  load(paths.join(':')) unless paths.empty?
end

.require(qualified_class_name) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rjb/require.rb', line 7

def self.require(qualified_class_name)
  java_class    = Rjb::import(qualified_class_name)
  package_names = qualified_class_name.to_s.split('.')
  class_name    = package_names.delete(package_names.last)
  target_module = Object

  package_names.each do |package_name|
    module_name = package_name.capitalize

    if !target_module.const_defined?(module_name)
      target_module = target_module.const_set(module_name, Module.new)
    else
      target_module = target_module.const_get(module_name)
    end
  end

  if target_module.const_defined?(class_name)
    false
  else
    target_module.const_set(class_name, java_class)
  end
end