dolt 0.19.0 → 0.20.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/dolt.gemspec CHANGED
@@ -11,7 +11,7 @@ end
11
11
 
12
12
  Gem::Specification.new do |s|
13
13
  s.name = "dolt"
14
- s.version = "0.19.0"
14
+ s.version = "0.20.0"
15
15
  s.authors = ["Christian Johansen"]
16
16
  s.email = ["christian@gitorious.org"]
17
17
  s.homepage = "http://gitorious.org/gitorious/dolt"
@@ -53,24 +53,24 @@ module Dolt
53
53
  HTML
54
54
  end
55
55
 
56
- def raw(repo, ref, path)
56
+ def raw(repo, ref, path, custom_data = {})
57
57
  if oid = lookup_ref_oid(repo, ref)
58
58
  redirect(raw_url(repo, oid, path)) and return
59
59
  end
60
60
 
61
- blob(repo, ref, path, {
61
+ blob(repo, ref, path, custom_data, {
62
62
  :template => :raw,
63
63
  :content_type => "text/plain",
64
64
  :template_options => { :layout => nil }
65
65
  })
66
66
  end
67
67
 
68
- def blob(repo, ref, path, options = { :template => :blob })
68
+ def blob(repo, ref, path, custom_data = {}, options = { :template => :blob })
69
69
  if oid = lookup_ref_oid(repo, ref)
70
70
  redirect(blob_url(repo, oid, path)) and return
71
71
  end
72
72
 
73
- data = actions.blob(repo, u(ref), path)
73
+ data = (custom_data || {}).merge(actions.blob(repo, u(ref), path))
74
74
  blob = data[:blob]
75
75
  return redirect(tree_url(repo, ref, path)) if blob.class.to_s !~ /\bBlob/
76
76
  add_headers(response, options.merge(:ref => ref))
@@ -80,12 +80,12 @@ module Dolt
80
80
  error(err, repo, ref)
81
81
  end
82
82
 
83
- def tree(repo, ref, path)
83
+ def tree(repo, ref, path, custom_data = {})
84
84
  if oid = lookup_ref_oid(repo, ref)
85
85
  redirect(tree_url(repo, oid, path)) and return
86
86
  end
87
87
 
88
- data = actions.tree(repo, u(ref), path)
88
+ data = (custom_data || {}).merge(actions.tree(repo, u(ref), path))
89
89
  tree = data[:tree]
90
90
  return redirect(blob_url(repo, ref, path)) if tree.class.to_s !~ /\bTree/
91
91
  add_headers(response, :ref => ref)
@@ -94,56 +94,56 @@ module Dolt
94
94
  error(err, repo, ref)
95
95
  end
96
96
 
97
- def tree_entry(repo, ref, path)
97
+ def tree_entry(repo, ref, path, custom_data = {})
98
98
  if oid = lookup_ref_oid(repo, ref)
99
99
  redirect(tree_entry_url(repo, oid, path)) and return
100
100
  end
101
101
 
102
- data = actions.tree_entry(repo, u(ref), path)
102
+ data = (custom_data || {}).merge(actions.tree_entry(repo, u(ref), path))
103
103
  add_headers(response, :ref => ref)
104
104
  body(renderer.render(data.key?(:tree) ? :tree : :blob, data))
105
105
  rescue Exception => err
106
106
  error(err, repo, ref)
107
107
  end
108
108
 
109
- def blame(repo, ref, path)
109
+ def blame(repo, ref, path, custom_data = {})
110
110
  if oid = lookup_ref_oid(repo, ref)
111
111
  redirect(blame_url(repo, oid, path)) and return
112
112
  end
113
113
 
114
- data = actions.blame(repo, u(ref), path)
114
+ data = (custom_data || {}).merge(actions.blame(repo, u(ref), path))
115
115
  add_headers(response, :ref => ref)
116
116
  body(renderer.render(:blame, data))
117
117
  rescue Exception => err
118
118
  error(err, repo, ref)
119
119
  end
120
120
 
121
- def history(repo, ref, path, count)
121
+ def history(repo, ref, path, count, custom_data = {})
122
122
  if oid = lookup_ref_oid(repo, ref)
123
123
  redirect(history_url(repo, oid, path)) and return
124
124
  end
125
125
 
126
- data = actions.history(repo, u(ref), path, count)
126
+ data = (custom_data || {}).merge(actions.history(repo, u(ref), path, count))
127
127
  add_headers(response, :ref => ref)
128
128
  body(renderer.render(:commits, data))
129
129
  rescue Exception => err
130
130
  error(err, repo, ref)
131
131
  end
132
132
 
133
- def refs(repo)
134
- data = actions.refs(repo)
133
+ def refs(repo, custom_data = {})
134
+ data = (custom_data || {}).merge(actions.refs(repo))
135
135
  add_headers(response, :content_type => "application/json")
136
136
  body(renderer.render(:refs, data, :layout => nil))
137
137
  rescue Exception => err
138
138
  error(err, repo, nil)
139
139
  end
140
140
 
141
- def tree_history(repo, ref, path, count = 1)
141
+ def tree_history(repo, ref, path, count = 1, custom_data = {})
142
142
  if oid = lookup_ref_oid(repo, ref)
143
143
  redirect(tree_history_url(repo, oid, path)) and return
144
144
  end
145
145
 
146
- data = actions.tree_history(repo, u(ref), path, count)
146
+ data = (custom_data || {}).merge(actions.tree_history(repo, u(ref), path, count))
147
147
  add_headers(response, :content_type => "application/json", :ref => ref)
148
148
  body(renderer.render(:tree_history, data, :layout => nil))
149
149
  rescue Exception => err
@@ -151,7 +151,8 @@ module Dolt
151
151
  end
152
152
 
153
153
  def resolve_repository(repo)
154
- actions.resolve_repository(repo)
154
+ @cache ||= {}
155
+ @cache[repo] ||= actions.resolve_repository(repo)
155
156
  end
156
157
 
157
158
  private
@@ -38,6 +38,14 @@ describe Dolt::Sinatra::Actions do
38
38
  assert_equal "blob:Blob", app.body
39
39
  end
40
40
 
41
+ it "renders the blob template with custom data" do
42
+ renderer = Test::Renderer.new("Blob")
43
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Blob.new), renderer)
44
+ app.blob("gitorious", "master", "app/models/repository.rb", { :who => 42 })
45
+
46
+ assert_equal 42, renderer.data[:who]
47
+ end
48
+
41
49
  it "redirects tree views to tree action" do
42
50
  app = Test::SinatraApp.new(Test::Actions.new(Stub::Tree.new), Test::Renderer.new("Tree"))
43
51
  app.blob("gitorious", "master", "app/models")
@@ -93,6 +101,14 @@ describe Dolt::Sinatra::Actions do
93
101
  assert_equal "tree:Tree", app.body
94
102
  end
95
103
 
104
+ it "renders template with custom data" do
105
+ renderer = Test::Renderer.new("Tree")
106
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Tree.new), renderer)
107
+ app.tree("gitorious", "master", "app/models", { :who => 42 })
108
+
109
+ assert_equal 42, renderer.data[:who]
110
+ end
111
+
96
112
  it "redirects blob views to blob action" do
97
113
  app = Test::SinatraApp.new(Test::Actions.new(Stub::Blob.new), Test::Renderer.new("Tree"))
98
114
  app.tree("gitorious", "master", "app/models/repository.rb")
@@ -150,6 +166,14 @@ describe Dolt::Sinatra::Actions do
150
166
  assert_equal "tree:Tree", app.body
151
167
  end
152
168
 
169
+ it "renders template with custom data" do
170
+ renderer = Test::Renderer.new("Tree")
171
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Tree.new), renderer)
172
+ app.tree_entry("gitorious", "master", "app/models", { :who => 42 })
173
+
174
+ assert_equal 42, renderer.data[:who]
175
+ end
176
+
153
177
  it "renders trees with the tree template as html" do
154
178
  app = Test::SinatraApp.new(Test::Actions.new(Stub::Blob.new), Test::Renderer.new("Blob"))
155
179
  app.tree_entry("gitorious", "master", "app/models")
@@ -193,6 +217,14 @@ describe Dolt::Sinatra::Actions do
193
217
  assert_equal "raw:Text", app.body
194
218
  end
195
219
 
220
+ it "renders template with custom data" do
221
+ renderer = Test::Renderer.new("Text")
222
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Blob.new), renderer)
223
+ app.raw("gitorious", "master", "app/models/repository.rb", { :who => 42 })
224
+
225
+ assert_equal 42, renderer.data[:who]
226
+ end
227
+
196
228
  it "redirects tree views to tree action" do
197
229
  app = Test::SinatraApp.new(Test::Actions.new(Stub::Tree.new), Test::Renderer.new("Tree"))
198
230
  app.raw("gitorious", "master", "app/models")
@@ -238,6 +270,14 @@ describe Dolt::Sinatra::Actions do
238
270
  assert_equal "blame:Text", app.body
239
271
  end
240
272
 
273
+ it "renders template with custom data" do
274
+ renderer = Test::Renderer.new("Text")
275
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Blob.new), renderer)
276
+ app.blame("gitorious", "master", "app/models/repository.rb", { :who => 42 })
277
+
278
+ assert_equal 42, renderer.data[:who]
279
+ end
280
+
241
281
  it "unescapes ref" do
242
282
  actions = Test::Actions.new(Stub::Blob.new)
243
283
  app = Test::SinatraApp.new(actions, Test::Renderer.new("Blob"))
@@ -273,6 +313,14 @@ describe Dolt::Sinatra::Actions do
273
313
  assert_equal "commits:Text", app.body
274
314
  end
275
315
 
316
+ it "renders template with custom data" do
317
+ renderer = Test::Renderer.new("Text")
318
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Blob.new), renderer)
319
+ app.history("gitorious", "master", "app/models/repository.rb", 10, { :who => 42 })
320
+
321
+ assert_equal 42, renderer.data[:who]
322
+ end
323
+
276
324
  it "unescapes ref" do
277
325
  actions = Test::Actions.new(Stub::Blob.new)
278
326
  app = Test::SinatraApp.new(actions, Test::Renderer.new("Blob"))
@@ -297,6 +345,14 @@ describe Dolt::Sinatra::Actions do
297
345
  assert_equal "application/json", app.response["Content-Type"]
298
346
  assert_equal "refs:JSON", app.body
299
347
  end
348
+
349
+ it "renders template with custom data" do
350
+ renderer = Test::Renderer.new("Text")
351
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Blob.new), renderer)
352
+ app.refs("gitorious", { :who => 42 })
353
+
354
+ assert_equal 42, renderer.data[:who]
355
+ end
300
356
  end
301
357
 
302
358
  describe "#tree_history" do
@@ -308,6 +364,14 @@ describe Dolt::Sinatra::Actions do
308
364
  assert_equal "tree_history:JSON", app.body
309
365
  end
310
366
 
367
+ it "renders template with custom data" do
368
+ renderer = Test::Renderer.new("Text")
369
+ app = Test::SinatraApp.new(Test::Actions.new(Stub::Tree.new), renderer)
370
+ app.tree_history("gitorious", "master", "app/models", 1, { :who => 42 })
371
+
372
+ assert_equal 42, renderer.data[:who]
373
+ end
374
+
311
375
  it "unescapes ref" do
312
376
  actions = Test::Actions.new(Stub::Tree.new)
313
377
  app = Test::SinatraApp.new(actions, Test::Renderer.new("Tree"))
data/test/test_helper.rb CHANGED
@@ -120,6 +120,7 @@ module Test
120
120
  end
121
121
 
122
122
  class Renderer
123
+ attr_reader :data
123
124
  def initialize(body = ""); @body = body; end
124
125
 
125
126
  def render(action, data, options = {})
metadata CHANGED
@@ -1,24 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dolt
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.20.0
4
5
  prerelease:
5
- version: 0.19.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Christian Johansen
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-25 00:00:00.000000000 Z
12
+ date: 2013-07-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- type: :runtime
15
+ name: libdolt
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0.21'
22
+ type: :runtime
22
23
  prerelease: false
23
24
  version_requirements: !ruby/object:Gem::Requirement
24
25
  none: false
@@ -26,15 +27,15 @@ dependencies:
26
27
  - - ~>
27
28
  - !ruby/object:Gem::Version
28
29
  version: '0.21'
29
- name: libdolt
30
30
  - !ruby/object:Gem::Dependency
31
- type: :runtime
31
+ name: thin
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
37
  version: '1.4'
38
+ type: :runtime
38
39
  prerelease: false
39
40
  version_requirements: !ruby/object:Gem::Requirement
40
41
  none: false
@@ -42,15 +43,15 @@ dependencies:
42
43
  - - ~>
43
44
  - !ruby/object:Gem::Version
44
45
  version: '1.4'
45
- name: thin
46
46
  - !ruby/object:Gem::Dependency
47
- type: :runtime
47
+ name: sinatra
48
48
  requirement: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
53
  version: '1.0'
54
+ type: :runtime
54
55
  prerelease: false
55
56
  version_requirements: !ruby/object:Gem::Requirement
56
57
  none: false
@@ -58,15 +59,15 @@ dependencies:
58
59
  - - ~>
59
60
  - !ruby/object:Gem::Version
60
61
  version: '1.0'
61
- name: sinatra
62
62
  - !ruby/object:Gem::Dependency
63
- type: :runtime
63
+ name: tiltout
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
69
  version: '1.4'
70
+ type: :runtime
70
71
  prerelease: false
71
72
  version_requirements: !ruby/object:Gem::Requirement
72
73
  none: false
@@ -74,15 +75,15 @@ dependencies:
74
75
  - - ~>
75
76
  - !ruby/object:Gem::Version
76
77
  version: '1.4'
77
- name: tiltout
78
78
  - !ruby/object:Gem::Dependency
79
- type: :runtime
79
+ name: json
80
80
  requirement: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
83
  - - ~>
84
84
  - !ruby/object:Gem::Version
85
85
  version: '1.5'
86
+ type: :runtime
86
87
  prerelease: false
87
88
  version_requirements: !ruby/object:Gem::Requirement
88
89
  none: false
@@ -90,15 +91,15 @@ dependencies:
90
91
  - - ~>
91
92
  - !ruby/object:Gem::Version
92
93
  version: '1.5'
93
- name: json
94
94
  - !ruby/object:Gem::Dependency
95
- type: :runtime
95
+ name: trollop
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ~>
100
100
  - !ruby/object:Gem::Version
101
101
  version: '2.0'
102
+ type: :runtime
102
103
  prerelease: false
103
104
  version_requirements: !ruby/object:Gem::Requirement
104
105
  none: false
@@ -106,15 +107,15 @@ dependencies:
106
107
  - - ~>
107
108
  - !ruby/object:Gem::Version
108
109
  version: '2.0'
109
- name: trollop
110
110
  - !ruby/object:Gem::Dependency
111
- type: :development
111
+ name: minitest
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
117
  version: '2.0'
118
+ type: :development
118
119
  prerelease: false
119
120
  version_requirements: !ruby/object:Gem::Requirement
120
121
  none: false
@@ -122,15 +123,15 @@ dependencies:
122
123
  - - ~>
123
124
  - !ruby/object:Gem::Version
124
125
  version: '2.0'
125
- name: minitest
126
126
  - !ruby/object:Gem::Dependency
127
- type: :development
127
+ name: rake
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0.9'
134
+ type: :development
134
135
  prerelease: false
135
136
  version_requirements: !ruby/object:Gem::Requirement
136
137
  none: false
@@ -138,15 +139,15 @@ dependencies:
138
139
  - - ~>
139
140
  - !ruby/object:Gem::Version
140
141
  version: '0.9'
141
- name: rake
142
142
  - !ruby/object:Gem::Dependency
143
- type: :development
143
+ name: rack-test
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
147
147
  - - ~>
148
148
  - !ruby/object:Gem::Version
149
149
  version: '0.6'
150
+ type: :development
150
151
  prerelease: false
151
152
  version_requirements: !ruby/object:Gem::Requirement
152
153
  none: false
@@ -154,7 +155,6 @@ dependencies:
154
155
  - - ~>
155
156
  - !ruby/object:Gem::Version
156
157
  version: '0.6'
157
- name: rack-test
158
158
  description: Dolt serves git trees and syntax highlighted blobs
159
159
  email:
160
160
  - christian@gitorious.org
@@ -247,8 +247,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  requirements: []
249
249
  rubyforge_project: dolt
250
- rubygems_version: 1.8.24
250
+ rubygems_version: 1.8.25
251
251
  signing_key:
252
252
  specification_version: 3
253
253
  summary: Dolt serves git trees and syntax highlighted blobs
254
254
  test_files: []
255
+ has_rdoc: