libdolt 0.25.0 → 0.26.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.
- data/Gemfile.lock +13 -5
- data/lib/libdolt/repository_lookup.rb +12 -2
- data/lib/libdolt/version.rb +1 -1
- data/lib/libdolt/view/smart_blob_renderer.rb +8 -1
- data/libdolt.gemspec +1 -1
- data/test/libdolt/repository_lookup_test.rb +6 -3
- data/test/libdolt/view/syntax_highlight_test.rb +0 -8
- data/views/tree.erb +12 -5
- metadata +3 -3
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
libdolt (0.
|
4
|
+
libdolt (0.26.0)
|
5
5
|
htmlentities (~> 4.3)
|
6
6
|
json (~> 1.7)
|
7
|
-
makeup (~> 0.
|
7
|
+
makeup (~> 0.4)
|
8
8
|
mime-types (~> 1.19)
|
9
9
|
rugged (= 0.18.0.gh.de28323)
|
10
10
|
tzinfo (~> 0.3)
|
@@ -13,15 +13,23 @@ GEM
|
|
13
13
|
remote: http://rubygems.org/
|
14
14
|
specs:
|
15
15
|
builder (3.2.2)
|
16
|
+
charlock_holmes (0.6.9.4)
|
16
17
|
ci_reporter (1.9.0)
|
17
18
|
builder (>= 2.1.2)
|
19
|
+
escape_utils (0.3.2)
|
20
|
+
github-linguist (2.8.5)
|
21
|
+
charlock_holmes (~> 0.6.6)
|
22
|
+
escape_utils (~> 0.3.1)
|
23
|
+
mime-types (~> 1.19)
|
24
|
+
pygments.rb (~> 0.4.2)
|
18
25
|
github-markup (0.7.5)
|
19
26
|
htmlentities (4.3.1)
|
20
27
|
json (1.8.0)
|
21
|
-
makeup (0.
|
28
|
+
makeup (0.4.0)
|
29
|
+
github-linguist (~> 2.8)
|
22
30
|
github-markup (~> 0.7)
|
23
31
|
htmlentities (~> 4.3)
|
24
|
-
pygments.rb (~> 0.
|
32
|
+
pygments.rb (~> 0.4)
|
25
33
|
metaclass (0.0.1)
|
26
34
|
mime-types (1.23)
|
27
35
|
minitest (2.12.1)
|
@@ -29,7 +37,7 @@ GEM
|
|
29
37
|
metaclass (~> 0.0.1)
|
30
38
|
multi_json (1.7.7)
|
31
39
|
posix-spawn (0.3.6)
|
32
|
-
pygments.rb (0.
|
40
|
+
pygments.rb (0.4.2)
|
33
41
|
posix-spawn (~> 0.3.6)
|
34
42
|
yajl-ruby (~> 1.1.0)
|
35
43
|
rake (0.9.6)
|
@@ -30,7 +30,8 @@ module Dolt
|
|
30
30
|
def blob(repo, ref, path)
|
31
31
|
repository = resolve_repository(repo)
|
32
32
|
tpl_data(repository, ref, path, {
|
33
|
-
:blob => repository.rev_parse("#{ref}:#{path}")
|
33
|
+
:blob => repository.rev_parse("#{ref}:#{path}"),
|
34
|
+
:filemode => filemode(repository, ref, path)
|
34
35
|
})
|
35
36
|
end
|
36
37
|
|
@@ -47,13 +48,15 @@ module Dolt
|
|
47
48
|
key = result.class.to_s.match(/Blob/) ? :blob : :tree
|
48
49
|
hash = tpl_data(repository, ref, path, { key => result, :type => key })
|
49
50
|
hash[:readme] = readme(repo, ref, path) if key == :tree
|
51
|
+
hash[:filemode] = filemode(repository, ref, path) if key == :blob
|
50
52
|
hash
|
51
53
|
end
|
52
54
|
|
53
55
|
def blame(repo, ref, path)
|
54
56
|
repository = resolve_repository(repo)
|
55
57
|
tpl_data(repository, ref, path, {
|
56
|
-
:blame => repository.blame(ref, path)
|
58
|
+
:blame => repository.blame(ref, path),
|
59
|
+
:filemode => filemode(repository, ref, path)
|
57
60
|
})
|
58
61
|
end
|
59
62
|
|
@@ -120,6 +123,13 @@ module Dolt
|
|
120
123
|
blob = repository.blob(ref, blob_path)
|
121
124
|
{:blob => blob, :path => blob_path}
|
122
125
|
end
|
126
|
+
|
127
|
+
def filemode(repo, ref, path)
|
128
|
+
file = File.basename(path)
|
129
|
+
refspec = "#{ref}:#{File.dirname(path).sub(/^\.$/, '')}"
|
130
|
+
entry = repo.rev_parse(refspec).find { |e| e[:name] == file }
|
131
|
+
entry.nil? ? nil : entry[:filemode].to_s(8)
|
132
|
+
end
|
123
133
|
end
|
124
134
|
|
125
135
|
class ResolvedRepository
|
data/lib/libdolt/version.rb
CHANGED
@@ -25,7 +25,14 @@ module Dolt
|
|
25
25
|
include Dolt::View::SyntaxHighlight
|
26
26
|
|
27
27
|
def format_text_blob(path, content, repo = nil, ref = nil, options = {})
|
28
|
-
|
28
|
+
begin
|
29
|
+
return render_markup(path, content) if supported_markup_format?(path)
|
30
|
+
rescue StandardError => err
|
31
|
+
$stderr.puts("Failed rendering markup in #{path}, render syntax highlighted insted")
|
32
|
+
$stderr.puts("Original error was: #{err.name}")
|
33
|
+
$stderr.puts(err.backtrace)
|
34
|
+
end
|
35
|
+
|
29
36
|
highlight_multiline(path, content, options)
|
30
37
|
end
|
31
38
|
end
|
data/libdolt.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
|
16
16
|
s.add_dependency "rugged", "0.18.0.gh.de28323"
|
17
17
|
s.add_dependency "tzinfo", "~> 0.3"
|
18
|
-
s.add_dependency "makeup", "~>0.
|
18
|
+
s.add_dependency "makeup", "~>0.4"
|
19
19
|
s.add_dependency "htmlentities", "~> 4.3"
|
20
20
|
s.add_dependency "json", "~> 1.7"
|
21
21
|
s.add_dependency "mime-types", "~> 1.19"
|
@@ -48,11 +48,12 @@ describe Dolt::RepositoryLookup do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
describe "#blob" do
|
51
|
-
it "returns path, blob, repo, ref and base_tree_url" do
|
51
|
+
it "returns path, blob, repo, ref, filemode and base_tree_url" do
|
52
52
|
data = @lookup.blob("gitorious", "fc5f5fb50b435e18", "lib/foo.rb")
|
53
53
|
assert_equal "gitorious", data[:repository_slug]
|
54
54
|
assert_equal "fc5f5fb50b435e18", data[:ref]
|
55
55
|
assert Rugged::Blob === data[:blob]
|
56
|
+
assert_equal "100644", data[:filemode]
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
@@ -83,12 +84,13 @@ describe Dolt::RepositoryLookup do
|
|
83
84
|
assert_equal :tree, data[:type]
|
84
85
|
end
|
85
86
|
|
86
|
-
it "returns blob, repo and ref" do
|
87
|
+
it "returns blob, filemode, repo and ref" do
|
87
88
|
data = @lookup.tree_entry("gitorious", "fc5f5fb50b435e18", "lib/foo.rb")
|
88
89
|
|
89
90
|
assert_equal "lib/foo.rb", data[:path]
|
90
91
|
assert_equal "fc5f5fb50b435e18", data[:ref]
|
91
92
|
assert_equal :blob, data[:type]
|
93
|
+
assert_equal "100644", data[:filemode]
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
@@ -98,12 +100,13 @@ describe Dolt::RepositoryLookup do
|
|
98
100
|
assert_equal 1, @resolver.resolved.size
|
99
101
|
end
|
100
102
|
|
101
|
-
it "returns blame, repo and ref" do
|
103
|
+
it "returns blame, filemode, repo and ref" do
|
102
104
|
data = @lookup.blame("gitorious", "fc5f5fb50b435e18", "lib")
|
103
105
|
assert Dolt::Git::Blame === data[:blame]
|
104
106
|
assert_equal "gitorious", data[:repository_slug]
|
105
107
|
assert_equal "fc5f5fb50b435e18", data[:ref]
|
106
108
|
assert_equal "lib", data[:path]
|
109
|
+
assert_equal "40000", data[:filemode]
|
107
110
|
end
|
108
111
|
end
|
109
112
|
|
@@ -48,14 +48,6 @@ describe Dolt::View::Blob do
|
|
48
48
|
assert_match "Hey<span class=\"nt\"></h1></span>", html
|
49
49
|
end
|
50
50
|
|
51
|
-
it "highlights file with custom suffix" do
|
52
|
-
Makeup::SyntaxHighlighter.add_lexer_alias("derp", "rb")
|
53
|
-
html = highlight("file.derp", "class File")
|
54
|
-
|
55
|
-
assert_match "<span class=\"k\">class</span>", html
|
56
|
-
assert_match "<span class=\"nc\">File</span>", html
|
57
|
-
end
|
58
|
-
|
59
51
|
it "skips highlighting if lexer is missing" do
|
60
52
|
html = highlight("file.trololol", "Yeah yeah yeah")
|
61
53
|
|
data/views/tree.erb
CHANGED
@@ -50,11 +50,18 @@
|
|
50
50
|
</tbody>
|
51
51
|
</table>
|
52
52
|
<% if readme %>
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
<div class="gts-readme" id="readme">
|
54
|
+
<div class="gts-page-header">
|
55
|
+
<h4><%= readme[:path] %></h4>
|
56
|
+
</div>
|
57
|
+
<% begin %>
|
58
|
+
<%= format_blob(readme[:path], readme[:blob].text(nil, defined?(Encoding) ? Encoding.default_external : nil), repository_slug, ref) %>
|
59
|
+
<% rescue StandardError => err %>
|
60
|
+
<p>
|
61
|
+
<em>Failed to render <%= readme[:path] %></em>
|
62
|
+
<!-- <%= err.message %> -->
|
63
|
+
</p>
|
64
|
+
<% end %>
|
56
65
|
</div>
|
57
|
-
<%= format_blob(readme[:path], readme[:blob].text(nil, defined?(Encoding) ? Encoding.default_external : nil), repository_slug, ref) %>
|
58
|
-
</div>
|
59
66
|
<% end %>
|
60
67
|
</div>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libdolt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.26.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: '0.
|
53
|
+
version: '0.4'
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
61
|
+
version: '0.4'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: htmlentities
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|