libdolt 0.9.0 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,13 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- libdolt (0.8.0)
4
+ libdolt (0.9.0)
5
5
  em_pessimistic (~> 0.1)
6
6
  em_rugged (~> 0.3)
7
7
  eventmachine (~> 1.0)
8
8
  htmlentities (~> 4.3)
9
9
  json (~> 1.7)
10
- makeup (~> 0)
10
+ makeup (~> 0.2)
11
11
  mime-types (~> 1.19)
12
12
  tzinfo (~> 0.3)
13
13
  when (~> 0)
@@ -26,7 +26,7 @@ GEM
26
26
  github-markup (0.7.4)
27
27
  htmlentities (4.3.1)
28
28
  json (1.7.5)
29
- makeup (0.1.1)
29
+ makeup (0.2.0)
30
30
  github-markup (~> 0.7)
31
31
  htmlentities (~> 4.3)
32
32
  pygments.rb (~> 0.2)
@@ -61,8 +61,8 @@ module Dolt
61
61
  names = refs.map(&:name)
62
62
  block.call(nil, {
63
63
  :repository_slug => repo,
64
- :tags => stripped_ref_names(names, :tags),
65
- :heads => stripped_ref_names(names, :heads)
64
+ :tags => expand_refs(repository, names, :tags),
65
+ :heads => expand_refs(repository, names, :heads)
66
66
  })
67
67
  end
68
68
  d.errback { |err| block.call(err, nil) }
@@ -96,9 +96,9 @@ module Dolt
96
96
  }.merge(locals)
97
97
  end
98
98
 
99
- def stripped_ref_names(names, type)
99
+ def expand_refs(repository, names, type)
100
100
  names.select { |n| n =~ /#{type}/ }.map do |n|
101
- n.sub(/^refs\/#{type}\//, "")
101
+ [n.sub(/^refs\/#{type}\//, ""), repository.rev_parse_oid_sync(n)]
102
102
  end
103
103
  end
104
104
  end
@@ -17,5 +17,5 @@
17
17
  #++
18
18
 
19
19
  module Dolt
20
- VERSION = "0.9.0"
20
+ VERSION = "0.10.0"
21
21
  end
@@ -22,10 +22,15 @@ require "ostruct"
22
22
 
23
23
  class Repository
24
24
  attr_reader :name
25
- def initialize(name); @name = name; end
25
+ def initialize(name)
26
+ @name = name
27
+ @refs = {}
28
+ end
29
+
26
30
  def tree(ref, path); stub; end
27
31
  def tree_entry(ref, path); stub; end
28
32
  def rev_parse(rev); stub; end
33
+ def rev_parse_oid_sync(ref); @refs[ref] || nil; end
29
34
  def blame(ref, path); stub; end
30
35
  def log(ref, path, limit); stub; end
31
36
  def refs; stub; end
@@ -35,6 +40,10 @@ class Repository
35
40
  @deferred.resolve(blob)
36
41
  end
37
42
 
43
+ def stub_ref(name, ref)
44
+ @refs[name] = ref
45
+ end
46
+
38
47
  private
39
48
  def stub
40
49
  @deferred = When.defer
@@ -213,12 +222,16 @@ describe Dolt::RepoActions do
213
222
  @actions.refs("gitorious") { |err, d| data = d }
214
223
 
215
224
  repo = @resolver.resolved.last
225
+ repo.stub_ref("refs/tags/v0.2.0", "a" * 40)
226
+ repo.stub_ref("refs/tags/v0.2.1", "b" * 40)
227
+ repo.stub_ref("refs/heads/libgit2", "c" * 40)
228
+ repo.stub_ref("refs/heads/master", "d" * 40)
216
229
  repo.resolve_promise(@refs)
217
230
 
218
231
  expected = {
219
232
  :repository_slug => "gitorious",
220
- :heads => ["libgit2", "master"],
221
- :tags => ["v0.2.1", "v0.2.0"]
233
+ :heads => [["libgit2", "c" * 40], ["master", "d" * 40]],
234
+ :tags => [["v0.2.1", "b" * 40], ["v0.2.0", "a" * 40]]
222
235
  }
223
236
  assert_equal expected, data
224
237
  end
@@ -28,7 +28,10 @@ describe "refs template" do
28
28
  end
29
29
 
30
30
  it "renders JSON" do
31
- data = { "heads" => ["libgit2", "master"], "tags" => ["v2.1.0"] }
31
+ data = {
32
+ "heads" => [["libgit2", "0123456"], ["master", "1234567"]],
33
+ "tags" => [["v2.1.0", "2345678"]]
34
+ }
32
35
  html = @renderer.render(:refs, data)
33
36
 
34
37
  assert_equal data, JSON.parse(html)
data/views/refs.erb CHANGED
@@ -17,6 +17,6 @@
17
17
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
18
18
  #++
19
19
  %>{
20
- "heads": [<%= heads.map { |n| "\"#{n}\"" }.join(",") %>],
21
- "tags": [<%= tags.map { |n| "\"#{n}\"" }.join(",") %>]
20
+ "heads": [<%= heads.map { |head| "[\"#{head.first}\", \"#{head.last}\"]" }.join(",") %>],
21
+ "tags": [<%= tags.map { |tag| "[\"#{tag.first}\", \"#{tag.last}\"]" }.join(",") %>]
22
22
  }
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: 59
4
+ hash: 55
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 9
8
+ - 10
9
9
  - 0
10
- version: 0.9.0
10
+ version: 0.10.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Christian Johansen