gitlab_git 5.1.0 → 5.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/gitlab_git.rb +2 -0
- data/lib/gitlab_git/blob.rb +9 -0
- data/lib/gitlab_git/encoding_herlper.rb +34 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68bd2b8cece23ce9a6c60c5303bb084ffc2bdeb4
|
4
|
+
data.tar.gz: dd31b1e48b9bcb854c3405025299f0799185d309
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 068c5c67a558a81f61af31b35e2a9534c633a9b28c2ff2d60e9823909ed2a2fe176d298c5a1bf23969345410a1f20b2b23c388d659c3f197677533974da786a1
|
7
|
+
data.tar.gz: fc020e342e8df55bb3ca3458b92e6f7a56b332862e17f6600b9a5ec82fa93d1afbf491a8fec7f38867218981c3ea18709d110c109e4ed78ad69fce6d1466fa0d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
5.
|
1
|
+
5.2.0
|
data/lib/gitlab_git.rb
CHANGED
@@ -7,6 +7,7 @@ require 'active_support/core_ext/hash/keys'
|
|
7
7
|
require 'grit'
|
8
8
|
require 'grit_ext'
|
9
9
|
require 'rugged'
|
10
|
+
require "charlock_holmes"
|
10
11
|
|
11
12
|
Grit::Blob.class_eval do
|
12
13
|
include Linguist::BlobHelper
|
@@ -14,6 +15,7 @@ end
|
|
14
15
|
|
15
16
|
# Gitlab::Git
|
16
17
|
require_relative "gitlab_git/popen"
|
18
|
+
require_relative "gitlab_git/encoding_herlper"
|
17
19
|
require_relative "gitlab_git/blame"
|
18
20
|
require_relative "gitlab_git/blob"
|
19
21
|
require_relative "gitlab_git/commit"
|
data/lib/gitlab_git/blob.rb
CHANGED
@@ -2,6 +2,7 @@ module Gitlab
|
|
2
2
|
module Git
|
3
3
|
class Blob
|
4
4
|
include Linguist::BlobHelper
|
5
|
+
include EncodingHelper
|
5
6
|
|
6
7
|
attr_accessor :name, :path, :size, :data, :mode, :id, :commit_id
|
7
8
|
|
@@ -84,6 +85,14 @@ module Gitlab
|
|
84
85
|
def empty?
|
85
86
|
!data || data == ''
|
86
87
|
end
|
88
|
+
|
89
|
+
def data
|
90
|
+
encode! @data
|
91
|
+
end
|
92
|
+
|
93
|
+
def name
|
94
|
+
encode! @name
|
95
|
+
end
|
87
96
|
end
|
88
97
|
end
|
89
98
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module EncodingHelper
|
2
|
+
extend self
|
3
|
+
|
4
|
+
def encode!(message)
|
5
|
+
return nil unless message.respond_to? :force_encoding
|
6
|
+
|
7
|
+
# if message is utf-8 encoding, just return it
|
8
|
+
message.force_encoding("UTF-8")
|
9
|
+
return message if message.valid_encoding?
|
10
|
+
|
11
|
+
# return message if message type is binary
|
12
|
+
detect = CharlockHolmes::EncodingDetector.detect(message)
|
13
|
+
return message.force_encoding("BINARY") if detect && detect[:type] == :binary
|
14
|
+
|
15
|
+
# encoding message to detect encoding
|
16
|
+
if detect && detect[:encoding]
|
17
|
+
message.force_encoding(detect[:encoding])
|
18
|
+
end
|
19
|
+
|
20
|
+
# encode and clean the bad chars
|
21
|
+
message.replace clean(message)
|
22
|
+
rescue
|
23
|
+
encoding = detect ? detect[:encoding] : "unknown"
|
24
|
+
"--broken encoding: #{encoding}"
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def clean(message)
|
30
|
+
message.encode("UTF-16BE", :undef => :replace, :invalid => :replace, :replace => "")
|
31
|
+
.encode("UTF-8")
|
32
|
+
.gsub("\0".encode("UTF-8"), "")
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitlab_git
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dmitriy Zaporozhets
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gitlab-linguist
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.19.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: charlock_holmes
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.6.9
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.6.9
|
69
83
|
description: GitLab wrapper around git objects
|
70
84
|
email: dmitriy.zaporozhets@gmail.com
|
71
85
|
executables: []
|
@@ -80,6 +94,7 @@ files:
|
|
80
94
|
- lib/gitlab_git/commit.rb
|
81
95
|
- lib/gitlab_git/compare.rb
|
82
96
|
- lib/gitlab_git/diff.rb
|
97
|
+
- lib/gitlab_git/encoding_herlper.rb
|
83
98
|
- lib/gitlab_git/git_stats.rb
|
84
99
|
- lib/gitlab_git/log_parser.rb
|
85
100
|
- lib/gitlab_git/popen.rb
|