OSDN Git Service

use monkey patch to trancoding content
authorSaito <saitowu@gmail.com>
Fri, 30 Dec 2011 14:26:13 +0000 (22:26 +0800)
committerSaito <saitowu@gmail.com>
Fri, 30 Dec 2011 14:26:13 +0000 (22:26 +0800)
config/initializers/gitlabhq/20_grit_ext.rb

index 3568445..d9f2c00 100644 (file)
@@ -7,5 +7,23 @@ Grit::Blob.class_eval do
   include Utils::Colorize
 end
 
+#monkey patch raw_object from string
+Grit::GitRuby::Internal::RawObject.class_eval do
+  def content
+    transcoding(@content)
+  end
+
+  private
+  def transcoding(content)
+    content ||= ""
+    detection = CharlockHolmes::EncodingDetector.detect(content)
+    if hash = detection
+     content = CharlockHolmes::Converter.convert(content, hash[:encoding], 'UTF-8') if hash[:encoding]
+    end
+    content
+  end
+end
+
+
 Grit::Git.git_timeout = GIT_OPTS["git_timeout"]
 Grit::Git.git_max_size = GIT_OPTS["git_max_size"]