Author: boisvert
Date: Sun Aug 29 05:15:51 2010
New Revision: 990492

URL: http://svn.apache.org/viewvc?rev=990492&view=rev
Log:
BUILDR-499 Java package caching through constants
e.g. (Java.java.lang.String cached as Java::Lang::String)
can shadow Ruby modules.

Modified:
    buildr/trunk/CHANGELOG
    buildr/trunk/lib/buildr/java/rjb.rb

Modified: buildr/trunk/CHANGELOG
URL: 
http://svn.apache.org/viewvc/buildr/trunk/CHANGELOG?rev=990492&r1=990491&r2=990492&view=diff
==============================================================================
--- buildr/trunk/CHANGELOG (original)
+++ buildr/trunk/CHANGELOG Sun Aug 29 05:15:51 2010
@@ -36,6 +36,9 @@
 * Fixed:  BUILDR-491 sftp download goes into infinite loop
 * Fixed:  BUILDR-498 Artifact download fails with "negative argument" if 
           terminal capabilities are undefined
+* Fixed:  BUILDR-499 Java package caching through constants 
+          e.g. (Java.java.lang.String cached as Java::Lang::String) 
+          can shadow Ruby modules
 
 1.4.1 (2010-07-07)
 * Added:  BUILDR-420 Support external compiler

Modified: buildr/trunk/lib/buildr/java/rjb.rb
URL: 
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/java/rjb.rb?rev=990492&r1=990491&r2=990492&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/java/rjb.rb (original)
+++ buildr/trunk/lib/buildr/java/rjb.rb Sun Aug 29 05:15:51 2010
@@ -134,12 +134,10 @@ module Java
   private
 
     def __package__(name) #:nodoc:
-      const = name.split('.').map { |part| part.gsub(/^./) { |char| 
char.upcase } }.join
-      return const_get(const) if constants.include?(const) || 
constants.include?(const.to_sym)
-      package = Module.new
-      package.extend Package
-      package.instance_variable_set :@name, name
-      const_set(const, package)
+      Module.new.tap do |m|
+        m.extend Package
+        m.instance_variable_set :@name, name
+      end
     end
 
   end


Reply via email to