]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/load-gettext.rb
RubyGems obsoleted *and* b0rked all_load_path, try to work around it
[user/henk/code/ruby/rbot.git] / lib / rbot / load-gettext.rb
index 5e2ec1860450306b4e8311ec37038449f271b4d9..ba9b09babb8687fd4ecddf669ffdc372e0dcac9d 100644 (file)
@@ -18,7 +18,9 @@ end
   require 'gettext/version'
 
   gettext_version = GetText::VERSION.split('.').map {|n| n.to_i}
-  include Comparable # for Array#>=
+  class ::Array
+    include Comparable # for Array#>=
+  end
   unless gettext_version >= [1, 8, 0]
     raise GetTextVersionError, "Unsupported ruby-gettext version installed: #{gettext_version.join '.'}; supported versions are 1.8.0 and above"
   end
@@ -41,7 +43,29 @@ end
   else
     warning 'This version of ruby-gettext does not support non-cached mode; mo files are not reloaded when setting language'
   end
-  bindtextdomain 'rbot'
+
+  begin
+    bindtextdomain 'rbot'
+  rescue NoMethodError => e
+    error e
+    warning 'Trying to work around RubyGems/GetText incompatibility'
+    module ::Gem
+      def self.all_load_paths
+        result = []
+
+        Gem.path.each do |gemdir|
+          each_load_path all_partials(gemdir) do |load_path|
+            result << load_path
+          end
+        end
+
+        result
+      end
+    end
+    retry
+  end
+
+
 
   module GetText
     # patch for ruby-gettext 1.x to cope with anonymous modules used by rbot.