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 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