Module: Kernel
- Defined in:
- lib/rcdk/java.rb
Instance Method Summary collapse
-
#jrequire(qualified_class_name) ⇒ Object
Maps the packages and class name specified by
qualified_class_name
to a nested set of Ruby modules.
Instance Method Details
#jrequire(qualified_class_name) ⇒ Object
Maps the packages and class name specified by qualified_class_name
to a nested set of Ruby modules. The first letter of each module name is capitalized. For example, java.util.HashMap
would become Java::Util::HashMap
.
The first use of jrequire
will render all subsequent calls to require_jar
ineffective.
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/rcdk/java.rb', line 65 def jrequire(qualified_class_name) java_class = Rjb::import(qualified_class_name) package_names = qualified_class_name.to_s.split('.') java_class_name = package_names.delete(package_names.last) new_module = self.class package_names.each do |package_name| module_name = package_name.capitalize if !new_module.const_defined?(module_name) new_module = new_module.const_set(module_name, Module.new) else new_module = new_module.const_get(module_name) end end return false if new_module.const_defined?(java_class_name) new_module.const_set(java_class_name, java_class) return true end |