dolt 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -54,7 +54,7 @@ module Dolt
54
54
 
55
55
  private
56
56
  def entry_history(ref, entry, limit)
57
- deferred_method("log -n #{limit} #{ref} #{entry}") do |out, s|
57
+ deferred_method("log -n #{limit} #{ref} -- #{entry}") do |out, s|
58
58
  Dolt::Git::Commit.parse_log(out)
59
59
  end
60
60
  end
@@ -18,6 +18,10 @@
18
18
  require "tilt"
19
19
  require "json"
20
20
 
21
+ # Need consistent Time formatting in JSON
22
+ require "time"
23
+ class Time; def to_json(*args); "\"#{iso8601}\""; end; end
24
+
21
25
  module Dolt
22
26
  class TemplateRenderer
23
27
  def initialize(template_root, opt = {})
@@ -17,5 +17,5 @@
17
17
  #++
18
18
 
19
19
  module Dolt
20
- VERSION = "0.4.1"
20
+ VERSION = "0.4.2"
21
21
  end
@@ -28,38 +28,69 @@ module Dolt
28
28
  sort(tree.entries.select { |e| e[:type] == :blob })
29
29
  end
30
30
 
31
- def tree_context(repo, ref, path)
32
- acc = ""
33
- pieces = path.sub(/^\.?\//, "").split("/")
34
- total = 5 + pieces.length
31
+ def tree_context(repo, ref, path, maxdepth = nil)
32
+ levels = accumulate_path(partition_path(path, maxdepth))
33
+ return "" if levels.length == 1 && levels[0].length == 1
34
+ total = 4 + levels.length
35
35
  colspan = total
36
- pieces.inject("") do |html, dir|
37
- padding_td = tree_table_padding_td(acc.sub(/^\.?\//, ""))
38
- url = object_url(repo, ref, acc, { :type => :tree, :name => dir })
39
- acc << "/#{dir}"
40
- colspan -= 1
41
- <<-HTML
42
- #{html}
36
+ (levels.map do |level|
37
+ html = <<-HTML
43
38
  <tr>
44
- #{padding_td}
39
+ #{'<td></td>' * (total - colspan)}
45
40
  <td colspan="#{colspan}">
46
- <a href=\"#{url}\">
47
- <i class="icon icon-folder-open"></i> #{dir}
48
- </a>
41
+ #{tree_context_level_links(repo, ref, level)}
49
42
  </td>
50
43
  </tr>
51
44
  HTML
52
- end
45
+ colspan -= 1
46
+ html
47
+ end).join
53
48
  end
54
49
 
55
- def tree_table_padding_td(path)
56
- "<td></td>" * tree_table_padding_width(path)
50
+ def tree_context_level_links(repo, ref, level)
51
+ extra = "<i class=\"icon icon-folder-open\"></i>"
52
+
53
+ (level.map do |path|
54
+ dir = File.dirname(path)
55
+ dir = "" if dir == "."
56
+ file = path == "" ? "/" : File.basename(path)
57
+ url = object_url(repo, ref, dir, { :type => :tree, :name => file })
58
+ html = "<a href=\"#{url}\">#{extra} #{file}</a>"
59
+ extra = ""
60
+ html
61
+ end).join(" ")
62
+ end
63
+
64
+ def partition_path(path, maxdepth = nil)
65
+ path = path.sub(/^\.?\//, "")
66
+ result = [[""]]
67
+ return result if path == ""
68
+ parts = path.split("/")
69
+ maxdepth ||= parts.length
70
+ (parts.length - maxdepth + 1).times { result[0] << parts.shift }
71
+ result << [parts.shift] while parts.length > 0
72
+ result
73
+ end
74
+
75
+ def accumulate_path(pieces)
76
+ acc = []
77
+ pieces.map do |piece|
78
+ piece.map do |p|
79
+ next p if p == ""
80
+ acc << p
81
+ File.join(acc)
82
+ end
83
+ end
57
84
  end
58
85
 
59
86
  def tree_table_padding_width(path)
60
87
  path.split("/").length
61
88
  end
62
89
 
90
+ def tree_table_padding_td(path)
91
+ "<td></td>" * tree_table_padding_width(path)
92
+ end
93
+
63
94
  private
64
95
  def sort(entries)
65
96
  entries.sort_by { |e| e[:name] }
@@ -65,7 +65,7 @@ describe "tree_history template" do
65
65
  "author" => { "name" => "Christian Johansen",
66
66
  "email" => "christian@cjohansen.no" },
67
67
  "summary" => "Working Moron server for viewing blobs",
68
- "date" => "Mon Sep 10 15:07:39 +0200 2012",
68
+ "date" => "2012-09-10T15:07:39+02:00",
69
69
  "message" => ""
70
70
  }]
71
71
  }, {
@@ -78,7 +78,7 @@ describe "tree_history template" do
78
78
  "author" => { "name" => "Christian Johansen",
79
79
  "email" => "christian@cjohansen.no" },
80
80
  "summary" => "Initial commit",
81
- "date" => "Thu Aug 23 11:40:39 +0200 2012",
81
+ "date" => "2012-08-23T11:40:39+02:00",
82
82
  "message" => ""
83
83
  }]
84
84
  }]
@@ -72,6 +72,51 @@ describe Dolt::View::Tree do
72
72
  end
73
73
  end
74
74
 
75
+ describe "#partition_path" do
76
+ it "partitions root into double array" do
77
+ parts = partition_path("")
78
+ assert_equal [[""]], parts
79
+
80
+ parts = partition_path("/")
81
+ assert_equal [[""]], parts
82
+
83
+ parts = partition_path("./")
84
+ assert_equal [[""]], parts
85
+ end
86
+
87
+ it "partitions single directory" do
88
+ parts = partition_path("lib")
89
+ assert_equal [["", "lib"]], parts
90
+ end
91
+
92
+ it "partitions two directories" do
93
+ parts = partition_path("lib/dolt")
94
+ assert_equal [["", "lib"], ["dolt"]], parts
95
+ end
96
+
97
+ it "partitions multiple directories" do
98
+ parts = partition_path("lib/dolt/git/help")
99
+ assert_equal [["", "lib"], ["dolt"], ["git"], ["help"]], parts
100
+ end
101
+
102
+ it "ignore trailing slash" do
103
+ parts = partition_path("lib/dolt/")
104
+ assert_equal [["", "lib"], ["dolt"]], parts
105
+ end
106
+
107
+ it "chunks up leading path" do
108
+ parts = partition_path("lib/dolt/very/deep", 3)
109
+ assert_equal [["", "lib", "dolt"], ["very"], ["deep"]], parts
110
+ end
111
+ end
112
+
113
+ describe "#accumulate_path" do
114
+ it "accumulates partitioned path" do
115
+ parts = accumulate_path(partition_path("lib/dolt/very/deep", 3))
116
+ assert_equal [["", "lib", "lib/dolt"], ["lib/dolt/very"], ["lib/dolt/very/deep"]], parts
117
+ end
118
+ end
119
+
75
120
  describe "#tree_context" do
76
121
  def context(path)
77
122
  tree_context("gitorious", "master", path)
@@ -88,13 +133,18 @@ describe Dolt::View::Tree do
88
133
  assert_equal 1, select(context("./lib"), "tr").length
89
134
  end
90
135
 
136
+ it "includes link to root in single table row" do
137
+ assert_equal 2, select(context("lib"), "a").length
138
+ end
139
+
91
140
  it "renders single path item in cell" do
92
141
  assert_equal 1, select(context("lib"), "td").length
93
142
  end
94
143
 
95
144
  it "renders single path item as link" do
96
- assert_equal 1, select(context("lib"), "a").length
97
- assert_match /lib/, select(context("lib"), "a").first
145
+ # Two, because there's always a link to the root directory
146
+ assert_equal 2, select(context("lib"), "a").length
147
+ assert_match /lib/, select(context("lib"), "a")[1]
98
148
  end
99
149
 
100
150
  it "renders single path item with open folder icon" do
@@ -0,0 +1,17 @@
1
+ var gts = this.gts || {};
2
+
3
+ gts.abbrev = function (sentence, width, padding) {
4
+ if (sentence.length <= width) { return sentence; }
5
+ padding = padding || "";
6
+ var words = sentence.split(" ");
7
+ var result = [];
8
+ var len;
9
+
10
+ for (var i = 0, l = words.length; i < l; ++i) {
11
+ len = result.join(" ").length + words[i].length + padding.length;
12
+ if (len > width) { break; }
13
+ result.push(words[i]);
14
+ }
15
+
16
+ return result.join(" ") + padding;
17
+ };
@@ -48,7 +48,8 @@ this.gts.treeHistory = (function (c, $) {
48
48
  tds[offset + 1].innerHTML = formatDate(commit.date);
49
49
  $(tds[offset + 2]).attr("data-gts-commit-oid", commit.oid);
50
50
  tds[offset + 2].innerHTML = "#" + commit.oid.slice(0, 7);
51
- tds[offset + 3].innerHTML = commit.summary + " (" + commit.author.name + ")";
51
+ tds[offset + 3].innerHTML = gts.abbrev(commit.summary, 50, " [...]") +
52
+ " (" + commit.author.name + ")";
52
53
  };
53
54
 
54
55
  th.annotate = function (table, tree) {
@@ -0,0 +1,21 @@
1
+ buster.testCase("Abbrev", {
2
+ "returns short enough string": function () {
3
+ assert.equals("Some string", gts.abbrev("Some string", 30));
4
+ },
5
+
6
+ "slices off end of too long string": function () {
7
+ assert.equals("Some", gts.abbrev("Some string", 4));
8
+ },
9
+
10
+ "inserts padding in place of cut content": function () {
11
+ assert.equals("Some...", gts.abbrev("Some string", 7, "..."));
12
+ },
13
+
14
+ "does not insert padding if string is short enough": function () {
15
+ assert.equals("Some string", gts.abbrev("Some string", 11, "..."));
16
+ },
17
+
18
+ "does not cut words": function () {
19
+ assert.equals("Some...", gts.abbrev("Some string", 10, "..."));
20
+ }
21
+ });
@@ -256,5 +256,67 @@ buster.testCase("Tree history", {
256
256
  assert.match(cells[4].innerHTML, "Add support for async tree history");
257
257
  assert.match(cells[4].innerHTML, "Christian Johansen");
258
258
  }
259
+ },
260
+
261
+ "adding history with long commit summary": {
262
+ setUp: function () {
263
+ /*:DOC table = <table data-gts-tree-history="/tree_history/master:lib" class="table table-striped gts-tree-explorer">
264
+ <thead>
265
+ <tr>
266
+ <th colspan="2">File</th>
267
+ <th class="gts-col-changed">Changed</th>
268
+ <th colspan="2" class="gts-col-commit">Last commit</th>
269
+ </tr>
270
+ </thead>
271
+ <tbody>
272
+ <tr>
273
+ <td colspan="5">
274
+ <a href="/tree/master:lib">
275
+ <i class="icon icon-folder-open"></i> lib
276
+ </a>
277
+ </td>
278
+ </tr>
279
+ <tr>
280
+ <td></td>
281
+ <td class="gts-name">
282
+ <a href="/tree/master:lib/dolt">
283
+ <i class="icon icon-folder-close"></i>
284
+ dolt
285
+ </a>
286
+ </td>
287
+ <td></td>
288
+ <td class="gts-commit-oid"></td>
289
+ <td></td>
290
+ </tr>
291
+ </tbody>
292
+ </table>*/
293
+
294
+ this.treeData([{
295
+ history: [{
296
+ oid: "2ca8e4e51aeb7d4cff7145c1e4e2ccb9cde19181",
297
+ summary: "Aaaaaaaaa Bbbbbbbbb Ccccccccc Ddddddddd Eeeeeeeee Fffffffff ",
298
+ message: "",
299
+ author: {
300
+ email: "christian@gitorious.com",
301
+ name: "Christian Johansen"
302
+ },
303
+ date: "Tue Oct 02 14:04:22 +0200 2012"
304
+ }],
305
+ oid: "7b83452d4ca77e2e81b5a7de8cfe4c0b0430bec3",
306
+ filemode: 16384,
307
+ type: "tree",
308
+ name: "dolt"
309
+ }]);
310
+ },
311
+
312
+ "annotates correct row": function () {
313
+ gts.treeHistory(this.table, "/tree-data.json");
314
+ this.server.respond();
315
+
316
+ var row = this.table.getElementsByTagName("tr")[2];
317
+ var summary = row.getElementsByTagName("td")[4].innerHTML;
318
+
319
+ assert.match(summary, "Aaaaaaaaa Bbbbbbbbb Ccccccccc Ddddddddd [...]");
320
+ }
259
321
  }
260
322
  });
@@ -36,6 +36,7 @@
36
36
  </div>
37
37
  </div>
38
38
  <script src="/dist/gts-ui-deps.js"></script>
39
+ <script src="/js/components/abbrev.js"></script>
39
40
  <script src="/js/components/url.js"></script>
40
41
  <script src="/js/components/ref-selector.js"></script>
41
42
  <script src="/js/components/tree-history.js"></script>
@@ -17,7 +17,7 @@
17
17
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
18
18
  #++
19
19
  %>
20
- <% @title = "#{path} in #{ref}" %>
20
+ <% @title = "#{path == '' ? './' : path} in #{ref}" %>
21
21
  <div id="gts-ref-selector-ph"></div>
22
22
  <table class="table table-striped gts-tree-explorer" data-gts-tree-history="<%= tree_history_url(repository, ref, path) %>">
23
23
  <thead>
metadata CHANGED
@@ -1,317 +1,233 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: dolt
3
- version: !ruby/object:Gem::Version
4
- hash: 13
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 4
9
- - 1
10
- version: 0.4.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Christian Johansen
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-10-03 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-10-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: eventmachine
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &8310500 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 15
30
- segments:
31
- - 1
32
- - 0
33
- version: "1.0"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.0'
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: thin
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *8310500
25
+ - !ruby/object:Gem::Dependency
26
+ name: thin
27
+ requirement: &8309280 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
29
+ requirements:
42
30
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 1
47
- - 4
48
- version: "1.4"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.4'
49
33
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: sinatra
53
34
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *8309280
36
+ - !ruby/object:Gem::Dependency
37
+ name: sinatra
38
+ requirement: &8308460 !ruby/object:Gem::Requirement
55
39
  none: false
56
- requirements:
40
+ requirements:
57
41
  - - ~>
58
- - !ruby/object:Gem::Version
59
- hash: 9
60
- segments:
61
- - 1
62
- - 3
63
- version: "1.3"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.3'
64
44
  type: :runtime
65
- version_requirements: *id003
66
- - !ruby/object:Gem::Dependency
67
- name: async_sinatra
68
45
  prerelease: false
69
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *8308460
47
+ - !ruby/object:Gem::Dependency
48
+ name: async_sinatra
49
+ requirement: &8307760 !ruby/object:Gem::Requirement
70
50
  none: false
71
- requirements:
51
+ requirements:
72
52
  - - ~>
73
- - !ruby/object:Gem::Version
74
- hash: 15
75
- segments:
76
- - 1
77
- - 0
78
- version: "1.0"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
79
55
  type: :runtime
80
- version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
82
- name: tilt
83
56
  prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *8307760
58
+ - !ruby/object:Gem::Dependency
59
+ name: tilt
60
+ requirement: &8306920 !ruby/object:Gem::Requirement
85
61
  none: false
86
- requirements:
62
+ requirements:
87
63
  - - ~>
88
- - !ruby/object:Gem::Version
89
- hash: 9
90
- segments:
91
- - 1
92
- - 3
93
- version: "1.3"
64
+ - !ruby/object:Gem::Version
65
+ version: '1.3'
94
66
  type: :runtime
95
- version_requirements: *id005
96
- - !ruby/object:Gem::Dependency
97
- name: pygments.rb
98
67
  prerelease: false
99
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *8306920
69
+ - !ruby/object:Gem::Dependency
70
+ name: pygments.rb
71
+ requirement: &8306100 !ruby/object:Gem::Requirement
100
72
  none: false
101
- requirements:
73
+ requirements:
102
74
  - - ~>
103
- - !ruby/object:Gem::Version
104
- hash: 15
105
- segments:
106
- - 0
107
- - 2
108
- version: "0.2"
75
+ - !ruby/object:Gem::Version
76
+ version: '0.2'
109
77
  type: :runtime
110
- version_requirements: *id006
111
- - !ruby/object:Gem::Dependency
112
- name: em_pessimistic
113
78
  prerelease: false
114
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *8306100
80
+ - !ruby/object:Gem::Dependency
81
+ name: em_pessimistic
82
+ requirement: &8730940 !ruby/object:Gem::Requirement
115
83
  none: false
116
- requirements:
84
+ requirements:
117
85
  - - ~>
118
- - !ruby/object:Gem::Version
119
- hash: 9
120
- segments:
121
- - 0
122
- - 1
123
- version: "0.1"
86
+ - !ruby/object:Gem::Version
87
+ version: '0.1'
124
88
  type: :runtime
125
- version_requirements: *id007
126
- - !ruby/object:Gem::Dependency
127
- name: builder
128
89
  prerelease: false
129
- requirement: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *8730940
91
+ - !ruby/object:Gem::Dependency
92
+ name: builder
93
+ requirement: &8729300 !ruby/object:Gem::Requirement
130
94
  none: false
131
- requirements:
95
+ requirements:
132
96
  - - ~>
133
- - !ruby/object:Gem::Version
134
- hash: 5
135
- segments:
136
- - 3
137
- - 1
138
- version: "3.1"
97
+ - !ruby/object:Gem::Version
98
+ version: '3.1'
139
99
  type: :runtime
140
- version_requirements: *id008
141
- - !ruby/object:Gem::Dependency
142
- name: em_rugged
143
100
  prerelease: false
144
- requirement: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *8729300
102
+ - !ruby/object:Gem::Dependency
103
+ name: em_rugged
104
+ requirement: &8728260 !ruby/object:Gem::Requirement
145
105
  none: false
146
- requirements:
106
+ requirements:
147
107
  - - ~>
148
- - !ruby/object:Gem::Version
149
- hash: 31
150
- segments:
151
- - 0
152
- - 1
153
- - 2
108
+ - !ruby/object:Gem::Version
154
109
  version: 0.1.2
155
110
  type: :runtime
156
- version_requirements: *id009
157
- - !ruby/object:Gem::Dependency
158
- name: tzinfo
159
111
  prerelease: false
160
- requirement: &id010 !ruby/object:Gem::Requirement
112
+ version_requirements: *8728260
113
+ - !ruby/object:Gem::Dependency
114
+ name: tzinfo
115
+ requirement: &8727020 !ruby/object:Gem::Requirement
161
116
  none: false
162
- requirements:
117
+ requirements:
163
118
  - - ~>
164
- - !ruby/object:Gem::Version
165
- hash: 13
166
- segments:
167
- - 0
168
- - 3
169
- version: "0.3"
119
+ - !ruby/object:Gem::Version
120
+ version: '0.3'
170
121
  type: :runtime
171
- version_requirements: *id010
172
- - !ruby/object:Gem::Dependency
173
- name: github-markup
174
122
  prerelease: false
175
- requirement: &id011 !ruby/object:Gem::Requirement
123
+ version_requirements: *8727020
124
+ - !ruby/object:Gem::Dependency
125
+ name: github-markup
126
+ requirement: &8725820 !ruby/object:Gem::Requirement
176
127
  none: false
177
- requirements:
128
+ requirements:
178
129
  - - ~>
179
- - !ruby/object:Gem::Version
180
- hash: 5
181
- segments:
182
- - 0
183
- - 7
184
- version: "0.7"
130
+ - !ruby/object:Gem::Version
131
+ version: '0.7'
185
132
  type: :runtime
186
- version_requirements: *id011
187
- - !ruby/object:Gem::Dependency
188
- name: htmlentities
189
133
  prerelease: false
190
- requirement: &id012 !ruby/object:Gem::Requirement
134
+ version_requirements: *8725820
135
+ - !ruby/object:Gem::Dependency
136
+ name: htmlentities
137
+ requirement: &8724700 !ruby/object:Gem::Requirement
191
138
  none: false
192
- requirements:
139
+ requirements:
193
140
  - - ~>
194
- - !ruby/object:Gem::Version
195
- hash: 29
196
- segments:
197
- - 4
198
- - 3
199
- version: "4.3"
141
+ - !ruby/object:Gem::Version
142
+ version: '4.3'
200
143
  type: :runtime
201
- version_requirements: *id012
202
- - !ruby/object:Gem::Dependency
203
- name: json
204
144
  prerelease: false
205
- requirement: &id013 !ruby/object:Gem::Requirement
145
+ version_requirements: *8724700
146
+ - !ruby/object:Gem::Dependency
147
+ name: json
148
+ requirement: &8723460 !ruby/object:Gem::Requirement
206
149
  none: false
207
- requirements:
150
+ requirements:
208
151
  - - ~>
209
- - !ruby/object:Gem::Version
210
- hash: 1
211
- segments:
212
- - 1
213
- - 7
214
- version: "1.7"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.7'
215
154
  type: :runtime
216
- version_requirements: *id013
217
- - !ruby/object:Gem::Dependency
218
- name: mime-types
219
155
  prerelease: false
220
- requirement: &id014 !ruby/object:Gem::Requirement
156
+ version_requirements: *8723460
157
+ - !ruby/object:Gem::Dependency
158
+ name: mime-types
159
+ requirement: &8718680 !ruby/object:Gem::Requirement
221
160
  none: false
222
- requirements:
161
+ requirements:
223
162
  - - ~>
224
- - !ruby/object:Gem::Version
225
- hash: 41
226
- segments:
227
- - 1
228
- - 19
229
- version: "1.19"
163
+ - !ruby/object:Gem::Version
164
+ version: '1.19'
230
165
  type: :runtime
231
- version_requirements: *id014
232
- - !ruby/object:Gem::Dependency
233
- name: minitest
234
166
  prerelease: false
235
- requirement: &id015 !ruby/object:Gem::Requirement
167
+ version_requirements: *8718680
168
+ - !ruby/object:Gem::Dependency
169
+ name: minitest
170
+ requirement: &8717000 !ruby/object:Gem::Requirement
236
171
  none: false
237
- requirements:
172
+ requirements:
238
173
  - - ~>
239
- - !ruby/object:Gem::Version
240
- hash: 3
241
- segments:
242
- - 2
243
- - 0
244
- version: "2.0"
174
+ - !ruby/object:Gem::Version
175
+ version: '2.0'
245
176
  type: :development
246
- version_requirements: *id015
247
- - !ruby/object:Gem::Dependency
248
- name: em-minitest-spec
249
177
  prerelease: false
250
- requirement: &id016 !ruby/object:Gem::Requirement
178
+ version_requirements: *8717000
179
+ - !ruby/object:Gem::Dependency
180
+ name: em-minitest-spec
181
+ requirement: &8715020 !ruby/object:Gem::Requirement
251
182
  none: false
252
- requirements:
183
+ requirements:
253
184
  - - ~>
254
- - !ruby/object:Gem::Version
255
- hash: 13
256
- segments:
257
- - 1
258
- - 1
259
- version: "1.1"
185
+ - !ruby/object:Gem::Version
186
+ version: '1.1'
260
187
  type: :development
261
- version_requirements: *id016
262
- - !ruby/object:Gem::Dependency
263
- name: rake
264
188
  prerelease: false
265
- requirement: &id017 !ruby/object:Gem::Requirement
189
+ version_requirements: *8715020
190
+ - !ruby/object:Gem::Dependency
191
+ name: rake
192
+ requirement: &8713460 !ruby/object:Gem::Requirement
266
193
  none: false
267
- requirements:
194
+ requirements:
268
195
  - - ~>
269
- - !ruby/object:Gem::Version
270
- hash: 25
271
- segments:
272
- - 0
273
- - 9
274
- version: "0.9"
196
+ - !ruby/object:Gem::Version
197
+ version: '0.9'
275
198
  type: :development
276
- version_requirements: *id017
277
- - !ruby/object:Gem::Dependency
278
- name: mocha
279
199
  prerelease: false
280
- requirement: &id018 !ruby/object:Gem::Requirement
200
+ version_requirements: *8713460
201
+ - !ruby/object:Gem::Dependency
202
+ name: mocha
203
+ requirement: &8711900 !ruby/object:Gem::Requirement
281
204
  none: false
282
- requirements:
283
- - - ">="
284
- - !ruby/object:Gem::Version
285
- hash: 3
286
- segments:
287
- - 0
288
- version: "0"
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
289
209
  type: :development
290
- version_requirements: *id018
291
- - !ruby/object:Gem::Dependency
292
- name: redcarpet
293
210
  prerelease: false
294
- requirement: &id019 !ruby/object:Gem::Requirement
211
+ version_requirements: *8711900
212
+ - !ruby/object:Gem::Dependency
213
+ name: redcarpet
214
+ requirement: &8707280 !ruby/object:Gem::Requirement
295
215
  none: false
296
- requirements:
297
- - - ">="
298
- - !ruby/object:Gem::Version
299
- hash: 3
300
- segments:
301
- - 0
302
- version: "0"
216
+ requirements:
217
+ - - ! '>='
218
+ - !ruby/object:Gem::Version
219
+ version: '0'
303
220
  type: :development
304
- version_requirements: *id019
221
+ prerelease: false
222
+ version_requirements: *8707280
305
223
  description: Dolt serves git trees and syntax highlighted blobs
306
- email:
224
+ email:
307
225
  - christian@gitorious.org
308
- executables:
226
+ executables:
309
227
  - dolt
310
228
  extensions: []
311
-
312
229
  extra_rdoc_files: []
313
-
314
- files:
230
+ files:
315
231
  - ./.gitmodules
316
232
  - ./Gemfile
317
233
  - ./Gemfile.lock
@@ -397,56 +313,44 @@ files:
397
313
  - vendor/ui/images/gitorious.png
398
314
  - vendor/ui/images/powered-by.png
399
315
  - vendor/ui/images/white-980x1.png
316
+ - vendor/ui/js/components/abbrev.js
400
317
  - vendor/ui/js/components/ref-selector.js
401
318
  - vendor/ui/js/components/tree-history.js
402
319
  - vendor/ui/js/components/url.js
403
320
  - vendor/ui/js/gitorious.js
404
- - vendor/ui/js/libs/cullquery.js
405
- - vendor/ui/js/libs/ext-libs.js
406
- - vendor/ui/js/libs/jquery.js
407
321
  - vendor/ui/lib/bootstrap/css/bootstrap-responsive.min.css
408
322
  - vendor/ui/lib/bootstrap/css/bootstrap.min.css
409
323
  - vendor/ui/lib/bootstrap/img/glyphicons-halflings-white.png
410
324
  - vendor/ui/lib/bootstrap/img/glyphicons-halflings.png
411
325
  - vendor/ui/lib/bootstrap/js/bootstrap.min.js
412
326
  - vendor/ui/package.json
327
+ - vendor/ui/test/abbrev-test.js
413
328
  - vendor/ui/test/ref-selector-test.js
414
329
  - vendor/ui/test/tree-history-test.js
415
330
  - vendor/ui/test/url-template-test.js
416
331
  - bin/dolt
417
- has_rdoc: true
418
332
  homepage: http://gitorious.org/gitorious/dolt
419
333
  licenses: []
420
-
421
334
  post_install_message:
422
335
  rdoc_options: []
423
-
424
- require_paths:
336
+ require_paths:
425
337
  - lib
426
- required_ruby_version: !ruby/object:Gem::Requirement
338
+ required_ruby_version: !ruby/object:Gem::Requirement
427
339
  none: false
428
- requirements:
429
- - - ">="
430
- - !ruby/object:Gem::Version
431
- hash: 3
432
- segments:
433
- - 0
434
- version: "0"
435
- required_rubygems_version: !ruby/object:Gem::Requirement
340
+ requirements:
341
+ - - ! '>='
342
+ - !ruby/object:Gem::Version
343
+ version: '0'
344
+ required_rubygems_version: !ruby/object:Gem::Requirement
436
345
  none: false
437
- requirements:
438
- - - ">="
439
- - !ruby/object:Gem::Version
440
- hash: 3
441
- segments:
442
- - 0
443
- version: "0"
346
+ requirements:
347
+ - - ! '>='
348
+ - !ruby/object:Gem::Version
349
+ version: '0'
444
350
  requirements: []
445
-
446
351
  rubyforge_project: dolt
447
- rubygems_version: 1.4.2
352
+ rubygems_version: 1.8.11
448
353
  signing_key:
449
354
  specification_version: 3
450
355
  summary: Dolt serves git trees and syntax highlighted blobs
451
356
  test_files: []
452
-