libdolt 0.10.1 → 0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +4 -4
- data/lib/libdolt/repo_actions.rb +28 -12
- data/lib/libdolt/version.rb +1 -1
- data/lib/libdolt/view/tab_width.rb +1 -4
- data/libdolt.gemspec +1 -1
- data/test/libdolt/repo_actions_test.rb +23 -0
- data/test/libdolt/view/tab_width_test.rb +2 -2
- metadata +5 -5
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
libdolt (0.
|
4
|
+
libdolt (0.11)
|
5
5
|
em_pessimistic (~> 0.1)
|
6
6
|
em_rugged (~> 0.3)
|
7
7
|
eventmachine (~> 1.0)
|
@@ -26,14 +26,14 @@ GEM
|
|
26
26
|
github-markup (0.7.4)
|
27
27
|
htmlentities (4.3.1)
|
28
28
|
json (1.7.5)
|
29
|
-
makeup (0.
|
29
|
+
makeup (0.3.0)
|
30
30
|
github-markup (~> 0.7)
|
31
31
|
htmlentities (~> 4.3)
|
32
32
|
pygments.rb (~> 0.2)
|
33
33
|
mime-types (1.19)
|
34
34
|
minitest (2.12.1)
|
35
35
|
posix-spawn (0.3.6)
|
36
|
-
pygments.rb (0.3.
|
36
|
+
pygments.rb (0.3.2)
|
37
37
|
posix-spawn (~> 0.3.6)
|
38
38
|
yajl-ruby (~> 1.1.0)
|
39
39
|
rake (0.9.2.2)
|
@@ -42,7 +42,7 @@ GEM
|
|
42
42
|
tilt (1.3.3)
|
43
43
|
tiltout (1.2.0)
|
44
44
|
tilt (~> 1.3)
|
45
|
-
tzinfo (0.3.
|
45
|
+
tzinfo (0.3.35)
|
46
46
|
when (0.1.0)
|
47
47
|
yajl-ruby (1.1.0)
|
48
48
|
|
data/lib/libdolt/repo_actions.rb
CHANGED
@@ -37,11 +37,11 @@ module Dolt
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def tree_entry(repo, ref, path, &block)
|
40
|
-
repository =
|
40
|
+
repository = resolve_repository(repo)
|
41
41
|
d = repository.tree_entry(ref, path)
|
42
42
|
d.callback do |result|
|
43
43
|
key = result.class.to_s.match(/Blob/) ? :blob : :tree
|
44
|
-
block.call(nil, tpl_data(
|
44
|
+
block.call(nil, tpl_data(repository, ref, path, { key => result, :type => key }))
|
45
45
|
end
|
46
46
|
d.errback { |err| block.call(err, nil) }
|
47
47
|
end
|
@@ -55,15 +55,14 @@ module Dolt
|
|
55
55
|
end
|
56
56
|
|
57
57
|
def refs(repo, &block)
|
58
|
-
repository =
|
58
|
+
repository = resolve_repository(repo)
|
59
59
|
d = repository.refs
|
60
60
|
d.callback do |refs|
|
61
61
|
names = refs.map(&:name)
|
62
62
|
block.call(nil, {
|
63
|
-
:repository_slug => repo,
|
64
63
|
:tags => expand_refs(repository, names, :tags),
|
65
64
|
:heads => expand_refs(repository, names, :heads)
|
66
|
-
})
|
65
|
+
}.merge(repository.to_hash))
|
67
66
|
end
|
68
67
|
d.errback { |err| block.call(err, nil) }
|
69
68
|
end
|
@@ -79,21 +78,22 @@ module Dolt
|
|
79
78
|
private
|
80
79
|
def repo_resolver; @repo_resolver; end
|
81
80
|
|
81
|
+
def resolve_repository(repo)
|
82
|
+
ResolvedRepository.new(repo, repo_resolver.resolve(repo))
|
83
|
+
end
|
84
|
+
|
82
85
|
def repo_action(repo, ref, path, data, method, *args, &block)
|
83
|
-
repository =
|
86
|
+
repository = resolve_repository(repo)
|
84
87
|
d = repository.send(method, *args)
|
85
88
|
d.callback do |result|
|
86
|
-
block.call(nil, tpl_data(
|
89
|
+
block.call(nil, tpl_data(repository, ref, path, { data => result }))
|
87
90
|
end
|
88
91
|
d.errback { |err| block.call(err, nil) }
|
89
92
|
end
|
90
93
|
|
91
94
|
def tpl_data(repo, ref, path, locals = {})
|
92
|
-
{
|
93
|
-
:
|
94
|
-
:path => path,
|
95
|
-
:ref => ref
|
96
|
-
}.merge(locals)
|
95
|
+
{ :path => path,
|
96
|
+
:ref => ref }.merge(repo.to_hash).merge(locals)
|
97
97
|
end
|
98
98
|
|
99
99
|
def expand_refs(repository, names, type)
|
@@ -102,4 +102,20 @@ module Dolt
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
105
|
+
|
106
|
+
class ResolvedRepository
|
107
|
+
def initialize(slug, repository)
|
108
|
+
@repository = repository
|
109
|
+
@data = { :repository_slug => slug }
|
110
|
+
@data[:repository_meta] = repository.meta if repository.respond_to?(:meta)
|
111
|
+
end
|
112
|
+
|
113
|
+
def to_hash
|
114
|
+
@data
|
115
|
+
end
|
116
|
+
|
117
|
+
def method_missing(method, *args, &block)
|
118
|
+
@repository.send(method, *args, &block)
|
119
|
+
end
|
120
|
+
end
|
105
121
|
end
|
data/lib/libdolt/version.rb
CHANGED
@@ -19,11 +19,8 @@
|
|
19
19
|
module Dolt
|
20
20
|
module View
|
21
21
|
module TabWidth
|
22
|
-
def self.tab_width; @@tab_width; end
|
23
|
-
def self.tab_width=(tab_width); @@tab_width = tab_width; end
|
24
|
-
|
25
22
|
def format_whitespace(text)
|
26
|
-
text.gsub(/\t/, " " *
|
23
|
+
text.gsub(/\t/, " " * tab_width)
|
27
24
|
end
|
28
25
|
end
|
29
26
|
end
|
data/libdolt.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency "em-minitest-spec", "~> 1.1"
|
28
28
|
s.add_development_dependency "rake", "~> 0.9"
|
29
29
|
s.add_development_dependency "redcarpet", "2.2.0"
|
30
|
-
s.add_development_dependency "tiltout", "~>1.
|
30
|
+
s.add_development_dependency "tiltout", "~>1.4"
|
31
31
|
|
32
32
|
s.files = `git ls-files`.split("\n")
|
33
33
|
s.test_files = `git ls-files -- {test}/*`.split("\n")
|
@@ -62,6 +62,16 @@ class Resolver
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
+
class MetaResolver < Resolver
|
66
|
+
def resolve(repo)
|
67
|
+
repository = super
|
68
|
+
def repository.meta
|
69
|
+
"Meta data is cool"
|
70
|
+
end
|
71
|
+
repository
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
65
75
|
class FakeBlob; end
|
66
76
|
|
67
77
|
describe Dolt::RepoActions do
|
@@ -284,4 +294,17 @@ describe Dolt::RepoActions do
|
|
284
294
|
assert_equal expected, data
|
285
295
|
end
|
286
296
|
end
|
297
|
+
|
298
|
+
describe "repository meta data" do
|
299
|
+
it "is yielded with other data to block" do
|
300
|
+
resolver = MetaResolver.new
|
301
|
+
actions = Dolt::RepoActions.new(resolver)
|
302
|
+
data = nil
|
303
|
+
actions.blob("gitorious", "babd120", "app") { |err, d| data = d }
|
304
|
+
|
305
|
+
resolver.resolved.last.resolve_promise("Blob")
|
306
|
+
|
307
|
+
assert_equal "Meta data is cool", data[:repository_meta]
|
308
|
+
end
|
309
|
+
end
|
287
310
|
end
|
@@ -24,14 +24,14 @@ describe Dolt::View::TabWidth do
|
|
24
24
|
|
25
25
|
describe "#format_whitespace" do
|
26
26
|
it "limits width of whitespace" do
|
27
|
-
|
27
|
+
def self.tab_width; 4; end
|
28
28
|
html = format_whitespace("class File\n\tattr_reader :path\nend")
|
29
29
|
|
30
30
|
assert_match(/ attr_reader/, html)
|
31
31
|
end
|
32
32
|
|
33
33
|
it "uses wide tabs in formatted blobs" do
|
34
|
-
|
34
|
+
def self.tab_width; 12; end
|
35
35
|
html = format_text_blob("file.rb", "class File\n\tattr_reader :path\nend")
|
36
36
|
|
37
37
|
assert_match(/ attr_reader/, html)
|
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.11'
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|
@@ -226,7 +226,7 @@ dependencies:
|
|
226
226
|
requirements:
|
227
227
|
- - ~>
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: '1.
|
229
|
+
version: '1.4'
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -234,7 +234,7 @@ dependencies:
|
|
234
234
|
requirements:
|
235
235
|
- - ~>
|
236
236
|
- !ruby/object:Gem::Version
|
237
|
-
version: '1.
|
237
|
+
version: '1.4'
|
238
238
|
description: Dolt API for serving git trees and syntax highlighted blobs
|
239
239
|
email:
|
240
240
|
- christian@gitorious.org
|
@@ -331,7 +331,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
331
331
|
version: '0'
|
332
332
|
requirements: []
|
333
333
|
rubyforge_project: libdolt
|
334
|
-
rubygems_version: 1.8.
|
334
|
+
rubygems_version: 1.8.24
|
335
335
|
signing_key:
|
336
336
|
specification_version: 3
|
337
337
|
summary: Dolt API for serving git trees and syntax highlighted blobs
|