libdolt 0.10.1 → 0.11
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 +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
|