libdolt 0.8.0 → 0.9.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 CHANGED
@@ -3,7 +3,7 @@ PATH
3
3
  specs:
4
4
  libdolt (0.8.0)
5
5
  em_pessimistic (~> 0.1)
6
- em_rugged (~> 0.1.2)
6
+ em_rugged (~> 0.3)
7
7
  eventmachine (~> 1.0)
8
8
  htmlentities (~> 4.3)
9
9
  json (~> 1.7)
@@ -19,7 +19,7 @@ GEM
19
19
  eventmachine
20
20
  em_pessimistic (0.1.2)
21
21
  eventmachine (~> 1.0)
22
- em_rugged (0.1.5)
22
+ em_rugged (0.3.0)
23
23
  eventmachine (~> 1.0)
24
24
  rugged (= 0.17.0.b6)
25
25
  eventmachine (1.0.0)
@@ -37,10 +37,10 @@ GEM
37
37
  posix-spawn (~> 0.3.6)
38
38
  yajl-ruby (~> 1.1.0)
39
39
  rake (0.9.2.2)
40
- redcarpet (2.1.1)
40
+ redcarpet (2.2.0)
41
41
  rugged (0.17.0.b6)
42
42
  tilt (1.3.3)
43
- tiltout (1.1.0)
43
+ tiltout (1.2.0)
44
44
  tilt (~> 1.3)
45
45
  tzinfo (0.3.33)
46
46
  when (0.1.0)
@@ -54,5 +54,5 @@ DEPENDENCIES
54
54
  libdolt!
55
55
  minitest (~> 2.0)
56
56
  rake (~> 0.9)
57
- redcarpet
58
- tiltout (~> 1)
57
+ redcarpet (= 2.2.0)
58
+ tiltout (~> 1.2)
@@ -69,20 +69,32 @@ module Dolt
69
69
  end
70
70
 
71
71
  def tree_history(ref, path, limit = 1)
72
- d = When.defer
73
- rp = rev_parse("#{ref}:#{path}")
74
- rp.errback { |err| d.reject(err) }
75
- rp.callback do |tree|
76
- if tree.class != Rugged::Tree
77
- message = "#{ref}:#{path} is not a tree (#{tree.class.to_s})"
78
- break d.reject(Exception.new(message))
72
+ When.defer do |d|
73
+ rp = rev_parse("#{ref}:#{path}")
74
+ rp.errback { |err| d.reject(err) }
75
+ rp.callback do |tree|
76
+ if tree.class != Rugged::Tree
77
+ message = "#{ref}:#{path} is not a tree (#{tree.class.to_s})"
78
+ break d.reject(Exception.new(message))
79
+ end
80
+
81
+ building = build_history(path || "./", ref, tree, limit)
82
+ building.callback { |history| d.resolve(history) }
83
+ building.errback { |err| d.reject(err) }
79
84
  end
85
+ end
86
+ end
80
87
 
81
- building = build_history(path || "./", ref, tree, limit)
82
- building.callback { |history| d.resolve(history) }
83
- building.errback { |err| d.reject(err) }
88
+ def readme(ref)
89
+ When.defer do |d|
90
+ t = self.tree(ref, "")
91
+ t.callback do |tree|
92
+ d.resolve(tree.entries.select do |e|
93
+ e[:type] == :blob && e[:name].match(/readme/i)
94
+ end)
95
+ end
96
+ t.errback { |err| d.resolve([]) }
84
97
  end
85
- d
86
98
  end
87
99
 
88
100
  private
@@ -22,7 +22,7 @@ module Dolt
22
22
  @repository = repository
23
23
  end
24
24
 
25
- def resolve(repo)
25
+ def resolve(repo = nil)
26
26
  Dolt::Git::Repository.new(@repository.full_repository_path)
27
27
  end
28
28
  end
@@ -17,5 +17,5 @@
17
17
  #++
18
18
 
19
19
  module Dolt
20
- VERSION = "0.8.0"
20
+ VERSION = "0.9.0"
21
21
  end
data/libdolt.gemspec CHANGED
@@ -16,9 +16,9 @@ Gem::Specification.new do |s|
16
16
  s.add_dependency "eventmachine", "~>1.0"
17
17
  s.add_dependency "when", "~>0"
18
18
  s.add_dependency "em_pessimistic", "~>0.1"
19
- s.add_dependency "em_rugged", "~> 0.1.2"
19
+ s.add_dependency "em_rugged", "~> 0.3"
20
20
  s.add_dependency "tzinfo", "~> 0.3"
21
- s.add_dependency "makeup", "~>0"
21
+ s.add_dependency "makeup", "~>0.2"
22
22
  s.add_dependency "htmlentities", "~> 4.3"
23
23
  s.add_dependency "json", "~> 1.7"
24
24
  s.add_dependency "mime-types", "~> 1.19"
@@ -26,8 +26,8 @@ Gem::Specification.new do |s|
26
26
  s.add_development_dependency "minitest", "~> 2.0"
27
27
  s.add_development_dependency "em-minitest-spec", "~> 1.1"
28
28
  s.add_development_dependency "rake", "~> 0.9"
29
- s.add_development_dependency "redcarpet"
30
- s.add_development_dependency "tiltout", "~>1"
29
+ s.add_development_dependency "redcarpet", "2.2.0"
30
+ s.add_development_dependency "tiltout", "~>1.2"
31
31
 
32
32
  s.files = `git ls-files`.split("\n")
33
33
  s.test_files = `git ls-files -- {test}/*`.split("\n")
@@ -18,6 +18,7 @@
18
18
  require "test_helper"
19
19
  require "libdolt/git/repository"
20
20
  require "time"
21
+ require "ostruct"
21
22
 
22
23
  describe Dolt::Git::Repository do
23
24
  include EM::MiniTest::Spec
@@ -216,4 +217,78 @@ describe Dolt::Git::Repository do
216
217
  wait!
217
218
  end
218
219
  end
220
+
221
+ describe "#readme" do
222
+ it "returns deferrable" do
223
+ deferrable = @repository.readme("master")
224
+ assert deferrable.respond_to?(:callback)
225
+ assert deferrable.respond_to?(:errback)
226
+ end
227
+
228
+ it "yields single readme" do
229
+ def @repository.tree(ref, path)
230
+ entries = [{ :type => :blob, :name => "Readme" },
231
+ { :type => :blob, :name => "file.txt" },
232
+ { :type => :tree, :name => "dir" }]
233
+ if ref == "master" && path == ""
234
+ When.resolve(OpenStruct.new(:entries => entries))
235
+ else
236
+ When.reject("Wrong ref/path")
237
+ end
238
+ end
239
+
240
+ @repository.readme("master").callback do |readmes|
241
+ assert_equal 1, readmes.length
242
+ assert_equal "Readme", readmes.first[:name]
243
+ done!
244
+ end
245
+
246
+ wait!
247
+ end
248
+
249
+ it "does not yield trees" do
250
+ def @repository.tree(ref, path)
251
+ entries = [{ :type => :tree, :name => "Readme" },
252
+ { :type => :blob, :name => "file.txt" },
253
+ { :type => :tree, :name => "dir" }]
254
+ When.resolve(OpenStruct.new(:entries => entries))
255
+ end
256
+
257
+ @repository.readme("master").callback do |readmes|
258
+ assert_equal 0, readmes.length
259
+ done!
260
+ end
261
+
262
+ wait!
263
+ end
264
+
265
+ it "yields all readmes" do
266
+ def @repository.tree(ref, path)
267
+ entries = [{ :type => :blob, :name => "Readme.rdoc" },
268
+ { :type => :blob, :name => "readme" },
269
+ { :type => :blob, :name => "Readme.md" }]
270
+ When.resolve(OpenStruct.new(:entries => entries))
271
+ end
272
+
273
+ @repository.readme("master").callback do |readmes|
274
+ assert_equal 3, readmes.length
275
+ done!
276
+ end
277
+
278
+ wait!
279
+ end
280
+
281
+ it "yields empty array of readmes when promise rejects" do
282
+ def @repository.tree(ref, path)
283
+ When.reject(OpenStruct.new({ :message => "Unknown reason" }))
284
+ end
285
+
286
+ @repository.readme("master").callback do |readmes|
287
+ assert_equal 0, readmes.length
288
+ done!
289
+ end
290
+
291
+ wait!
292
+ end
293
+ end
219
294
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libdolt
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
4
+ hash: 59
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 8
8
+ - 9
9
9
  - 0
10
- version: 0.8.0
10
+ version: 0.9.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Christian Johansen
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-10-12 00:00:00 +02:00
18
+ date: 2012-10-15 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -70,12 +70,11 @@ dependencies:
70
70
  requirements:
71
71
  - - ~>
72
72
  - !ruby/object:Gem::Version
73
- hash: 31
73
+ hash: 13
74
74
  segments:
75
75
  - 0
76
- - 1
77
- - 2
78
- version: 0.1.2
76
+ - 3
77
+ version: "0.3"
79
78
  type: :runtime
80
79
  version_requirements: *id004
81
80
  - !ruby/object:Gem::Dependency
@@ -101,10 +100,11 @@ dependencies:
101
100
  requirements:
102
101
  - - ~>
103
102
  - !ruby/object:Gem::Version
104
- hash: 3
103
+ hash: 15
105
104
  segments:
106
105
  - 0
107
- version: "0"
106
+ - 2
107
+ version: "0.2"
108
108
  type: :runtime
109
109
  version_requirements: *id006
110
110
  - !ruby/object:Gem::Dependency
@@ -203,12 +203,14 @@ dependencies:
203
203
  requirement: &id013 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
- - - ">="
206
+ - - "="
207
207
  - !ruby/object:Gem::Version
208
- hash: 3
208
+ hash: 7
209
209
  segments:
210
+ - 2
211
+ - 2
210
212
  - 0
211
- version: "0"
213
+ version: 2.2.0
212
214
  type: :development
213
215
  version_requirements: *id013
214
216
  - !ruby/object:Gem::Dependency
@@ -219,10 +221,11 @@ dependencies:
219
221
  requirements:
220
222
  - - ~>
221
223
  - !ruby/object:Gem::Version
222
- hash: 1
224
+ hash: 11
223
225
  segments:
224
226
  - 1
225
- version: "1"
227
+ - 2
228
+ version: "1.2"
226
229
  type: :development
227
230
  version_requirements: *id014
228
231
  description: Dolt API for serving git trees and syntax highlighted blobs