Removed encoding monkey patch

This commit is contained in:
Dmitriy Zaporozhets 2012-04-11 23:03:56 +03:00
parent 52f6df7255
commit b7558a2063
6 changed files with 46 additions and 45 deletions

View file

@ -129,4 +129,8 @@ module ApplicationHelper
"ui_mars"
end
end
def string_to_utf8 str
Gitlabhq::Encode.utf8 str
end
end

View file

@ -1,5 +1,6 @@
class Commit
include ActiveModel::Conversion
include Gitlabhq::Encode
extend ActiveModel::Naming
attr_accessor :commit
@ -90,7 +91,7 @@ class Commit
end
def safe_message
message
utf8 message
end
def created_at
@ -102,11 +103,11 @@ class Commit
end
def author_name
author.name.force_encoding("UTF-8")
utf8 author.name
end
def committer_name
committer.name
utf8 committer.name
end
def committer_email

View file

@ -3,24 +3,24 @@
%li
- if diff.deleted_file
%span.removed_file
%a{:href => "##{diff.a_path}"}
= diff.a_path
%a{:href => "##{diff.old_path}"}
= diff.old_path
= image_tag "diff_file_delete.png"
- elsif diff.renamed_file
%span.moved_file
%a{:href => "##{diff.b_path}"}
= diff.a_path
%a{:href => "##{diff.new_path}"}
= diff.old_path
= "->"
= diff.b_path
= diff.new_path
= image_tag "diff_file_notice.png"
- elsif diff.new_file
%span.new_file
%a{:href => "##{diff.b_path}"}
= diff.b_path
%a{:href => "##{diff.new_path}"}
= diff.new_path
= image_tag "diff_file_add.png"
- else
%span.edit_file
%a{:href => "##{diff.b_path}"}
= diff.b_path
%a{:href => "##{diff.new_path}"}
= diff.new_path
= image_tag "diff_file_info.png"

View file

@ -17,16 +17,16 @@
- unless @suppress_diff
- diffs.each_with_index do |diff, i|
- next if diff.diff.empty?
- file = (@commit.tree / diff.b_path)
- file = (@commit.prev_commit.tree / diff.a_path) unless file
- file = (@commit.tree / diff.new_path)
- file = (@commit.prev_commit.tree / diff.old_path) unless file
- next unless file
.diff_file
.diff_file_header
- if diff.deleted_file
%strong{:id => "#{diff.a_path}"}= diff.a_path
%strong{:id => "#{diff.old_path}"}= diff.old_path
- else
= link_to tree_file_project_ref_path(@project, @commit.id, diff.b_path) do
%strong{:id => "#{diff.b_path}"}= diff.b_path
= link_to tree_file_project_ref_path(@project, @commit.id, diff.new_path) do
%strong{:id => "#{diff.new_path}"}= diff.new_path
%br/
.diff_file_content
- if file.text?

View file

@ -10,38 +10,20 @@ end
#monkey patch raw_object from string
Grit::GitRuby::Internal::RawObject.class_eval do
def content
transcoding(@content)
rescue Exception => ex
Rails.logger.error ex.message
@content
end
private
def transcoding(content)
content ||= ""
hash = CharlockHolmes::EncodingDetector.detect(content)
if hash
return content if hash[:type] == :binary
if hash[:encoding] == "UTF-8"
content = if hash[:confidence] < 100
content
else
content.force_encoding("UTF-8")
end
return content
Grit::Diff.class_eval do
def old_path
Gitlabhq::Encode.utf8 a_path
end
CharlockHolmes::Converter.convert(content, hash[:encoding], 'UTF-8') if hash[:encoding]
else
content.force_encoding("UTF-8")
def new_path
Gitlabhq::Encode.utf8 b_path
end
end
end
Grit::Git.git_timeout = GIT_OPTS["git_timeout"]
Grit::Git.git_max_size = GIT_OPTS["git_max_size"]

14
lib/gitlabhq/encode.rb Normal file
View file

@ -0,0 +1,14 @@
module Gitlabhq
module Encode
extend self
def utf8 message
hash = CharlockHolmes::EncodingDetector.detect(message)
if hash[:encoding]
CharlockHolmes::Converter.convert(message, hash[:encoding], 'UTF-8')
else
message
end.force_encoding("utf-8")
end
end
end