Removed encoding monkey patch
This commit is contained in:
parent
52f6df7255
commit
b7558a2063
6 changed files with 46 additions and 45 deletions
|
@ -129,4 +129,8 @@ module ApplicationHelper
|
||||||
"ui_mars"
|
"ui_mars"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def string_to_utf8 str
|
||||||
|
Gitlabhq::Encode.utf8 str
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
class Commit
|
class Commit
|
||||||
include ActiveModel::Conversion
|
include ActiveModel::Conversion
|
||||||
|
include Gitlabhq::Encode
|
||||||
extend ActiveModel::Naming
|
extend ActiveModel::Naming
|
||||||
|
|
||||||
attr_accessor :commit
|
attr_accessor :commit
|
||||||
|
@ -90,7 +91,7 @@ class Commit
|
||||||
end
|
end
|
||||||
|
|
||||||
def safe_message
|
def safe_message
|
||||||
message
|
utf8 message
|
||||||
end
|
end
|
||||||
|
|
||||||
def created_at
|
def created_at
|
||||||
|
@ -102,11 +103,11 @@ class Commit
|
||||||
end
|
end
|
||||||
|
|
||||||
def author_name
|
def author_name
|
||||||
author.name.force_encoding("UTF-8")
|
utf8 author.name
|
||||||
end
|
end
|
||||||
|
|
||||||
def committer_name
|
def committer_name
|
||||||
committer.name
|
utf8 committer.name
|
||||||
end
|
end
|
||||||
|
|
||||||
def committer_email
|
def committer_email
|
||||||
|
|
|
@ -3,24 +3,24 @@
|
||||||
%li
|
%li
|
||||||
- if diff.deleted_file
|
- if diff.deleted_file
|
||||||
%span.removed_file
|
%span.removed_file
|
||||||
%a{:href => "##{diff.a_path}"}
|
%a{:href => "##{diff.old_path}"}
|
||||||
= diff.a_path
|
= diff.old_path
|
||||||
= image_tag "diff_file_delete.png"
|
= image_tag "diff_file_delete.png"
|
||||||
- elsif diff.renamed_file
|
- elsif diff.renamed_file
|
||||||
%span.moved_file
|
%span.moved_file
|
||||||
%a{:href => "##{diff.b_path}"}
|
%a{:href => "##{diff.new_path}"}
|
||||||
= diff.a_path
|
= diff.old_path
|
||||||
= "->"
|
= "->"
|
||||||
= diff.b_path
|
= diff.new_path
|
||||||
= image_tag "diff_file_notice.png"
|
= image_tag "diff_file_notice.png"
|
||||||
- elsif diff.new_file
|
- elsif diff.new_file
|
||||||
%span.new_file
|
%span.new_file
|
||||||
%a{:href => "##{diff.b_path}"}
|
%a{:href => "##{diff.new_path}"}
|
||||||
= diff.b_path
|
= diff.new_path
|
||||||
= image_tag "diff_file_add.png"
|
= image_tag "diff_file_add.png"
|
||||||
- else
|
- else
|
||||||
%span.edit_file
|
%span.edit_file
|
||||||
%a{:href => "##{diff.b_path}"}
|
%a{:href => "##{diff.new_path}"}
|
||||||
= diff.b_path
|
= diff.new_path
|
||||||
= image_tag "diff_file_info.png"
|
= image_tag "diff_file_info.png"
|
||||||
|
|
||||||
|
|
|
@ -17,16 +17,16 @@
|
||||||
- unless @suppress_diff
|
- unless @suppress_diff
|
||||||
- diffs.each_with_index do |diff, i|
|
- diffs.each_with_index do |diff, i|
|
||||||
- next if diff.diff.empty?
|
- next if diff.diff.empty?
|
||||||
- file = (@commit.tree / diff.b_path)
|
- file = (@commit.tree / diff.new_path)
|
||||||
- file = (@commit.prev_commit.tree / diff.a_path) unless file
|
- file = (@commit.prev_commit.tree / diff.old_path) unless file
|
||||||
- next unless file
|
- next unless file
|
||||||
.diff_file
|
.diff_file
|
||||||
.diff_file_header
|
.diff_file_header
|
||||||
- if diff.deleted_file
|
- if diff.deleted_file
|
||||||
%strong{:id => "#{diff.a_path}"}= diff.a_path
|
%strong{:id => "#{diff.old_path}"}= diff.old_path
|
||||||
- else
|
- else
|
||||||
= link_to tree_file_project_ref_path(@project, @commit.id, diff.b_path) do
|
= link_to tree_file_project_ref_path(@project, @commit.id, diff.new_path) do
|
||||||
%strong{:id => "#{diff.b_path}"}= diff.b_path
|
%strong{:id => "#{diff.new_path}"}= diff.new_path
|
||||||
%br/
|
%br/
|
||||||
.diff_file_content
|
.diff_file_content
|
||||||
- if file.text?
|
- if file.text?
|
||||||
|
|
|
@ -10,38 +10,20 @@ end
|
||||||
#monkey patch raw_object from string
|
#monkey patch raw_object from string
|
||||||
Grit::GitRuby::Internal::RawObject.class_eval do
|
Grit::GitRuby::Internal::RawObject.class_eval do
|
||||||
def content
|
def content
|
||||||
transcoding(@content)
|
|
||||||
rescue Exception => ex
|
|
||||||
Rails.logger.error ex.message
|
|
||||||
@content
|
@content
|
||||||
end
|
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
|
|
||||||
end
|
|
||||||
|
|
||||||
CharlockHolmes::Converter.convert(content, hash[:encoding], 'UTF-8') if hash[:encoding]
|
|
||||||
else
|
|
||||||
content.force_encoding("UTF-8")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
Grit::Diff.class_eval do
|
||||||
|
def old_path
|
||||||
|
Gitlabhq::Encode.utf8 a_path
|
||||||
|
end
|
||||||
|
|
||||||
|
def new_path
|
||||||
|
Gitlabhq::Encode.utf8 b_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
Grit::Git.git_timeout = GIT_OPTS["git_timeout"]
|
Grit::Git.git_timeout = GIT_OPTS["git_timeout"]
|
||||||
Grit::Git.git_max_size = GIT_OPTS["git_max_size"]
|
Grit::Git.git_max_size = GIT_OPTS["git_max_size"]
|
||||||
|
|
14
lib/gitlabhq/encode.rb
Normal file
14
lib/gitlabhq/encode.rb
Normal 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
|
Loading…
Reference in a new issue