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 CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- libdolt (0.10.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.2.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.1)
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.33)
45
+ tzinfo (0.3.35)
46
46
  when (0.1.0)
47
47
  yajl-ruby (1.1.0)
48
48
 
@@ -37,11 +37,11 @@ module Dolt
37
37
  end
38
38
 
39
39
  def tree_entry(repo, ref, path, &block)
40
- repository = repo_resolver.resolve(repo)
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(repo, ref, path, { key => result, :type => key }))
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 = repo_resolver.resolve(repo)
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 = repo_resolver.resolve(repo)
86
+ repository = resolve_repository(repo)
84
87
  d = repository.send(method, *args)
85
88
  d.callback do |result|
86
- block.call(nil, tpl_data(repo, ref, path, { data => result }))
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
- :repository_slug => repo,
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
@@ -17,5 +17,5 @@
17
17
  #++
18
18
 
19
19
  module Dolt
20
- VERSION = "0.10.1"
20
+ VERSION = "0.11"
21
21
  end
@@ -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/, " " * TabWidth.tab_width)
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.2"
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
- Dolt::View::TabWidth.tab_width = 4
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
- Dolt::View::TabWidth.tab_width = 12
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.10.1
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-11-21 00:00:00.000000000 Z
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.2'
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.2'
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.23
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