gitlab_git 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|