gitable 0.1.0 → 0.1.1
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/gitable.gemspec +1 -1
- data/lib/gitable/scp_uri.rb +8 -1
- data/lib/gitable/uri.rb +14 -1
- data/spec/gitable_spec.rb +97 -67
- metadata +4 -4
data/gitable.gemspec
CHANGED
data/lib/gitable/scp_uri.rb
CHANGED
@@ -8,7 +8,7 @@ module Gitable
|
|
8
8
|
# git@github.com:martinemde/gitable.git
|
9
9
|
#
|
10
10
|
# Without breaking URIs like these:
|
11
|
-
#
|
11
|
+
#
|
12
12
|
# git@host.com:/home/martinemde/gitable.git
|
13
13
|
#
|
14
14
|
# @param [String] new_path The new path to be set.
|
@@ -35,6 +35,13 @@ module Gitable
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
# Return the actual scheme even though we don't show it
|
39
|
+
#
|
40
|
+
# @return [String] always 'ssh' for scp style URIs
|
41
|
+
def normalized_scheme
|
42
|
+
'ssh'
|
43
|
+
end
|
44
|
+
|
38
45
|
protected
|
39
46
|
|
40
47
|
def validate
|
data/lib/gitable/uri.rb
CHANGED
@@ -59,7 +59,6 @@ module Gitable
|
|
59
59
|
add
|
60
60
|
end
|
61
61
|
|
62
|
-
##
|
63
62
|
# Tries to guess the project name of the repository.
|
64
63
|
#
|
65
64
|
# @return [String] Project name without .git
|
@@ -67,6 +66,20 @@ module Gitable
|
|
67
66
|
basename.sub(/\.git$/,'')
|
68
67
|
end
|
69
68
|
|
69
|
+
# Detect local filesystem URIs.
|
70
|
+
#
|
71
|
+
# @return [Boolean] Is the URI local
|
72
|
+
def local?
|
73
|
+
scheme == 'file' || host.nil?
|
74
|
+
end
|
75
|
+
|
76
|
+
# Detect URIs that connect over ssh
|
77
|
+
#
|
78
|
+
# @return [Boolean] true if the URI uses ssh?
|
79
|
+
def ssh?
|
80
|
+
!!(normalized_scheme =~ /ssh/)
|
81
|
+
end
|
82
|
+
|
70
83
|
# Set an extension name, replacing one if it exists.
|
71
84
|
#
|
72
85
|
# If there is no basename (i.e. no words in the path) this method call will
|
data/spec/gitable_spec.rb
CHANGED
@@ -100,15 +100,17 @@ describe Gitable::URI do
|
|
100
100
|
end
|
101
101
|
|
102
102
|
expected = {
|
103
|
-
:user
|
104
|
-
:password
|
105
|
-
:host
|
106
|
-
:port
|
107
|
-
:path
|
108
|
-
:basename
|
109
|
-
:query
|
110
|
-
:fragment
|
111
|
-
:project_name
|
103
|
+
:user => nil,
|
104
|
+
:password => nil,
|
105
|
+
:host => "host.xz",
|
106
|
+
:port => nil,
|
107
|
+
:path => "/path/to/repo.git/",
|
108
|
+
:basename => "repo.git",
|
109
|
+
:query => nil,
|
110
|
+
:fragment => nil,
|
111
|
+
:project_name => "repo",
|
112
|
+
:local? => false,
|
113
|
+
:ssh? => false,
|
112
114
|
}
|
113
115
|
|
114
116
|
describe_uri "rsync://host.xz/path/to/repo.git/" do
|
@@ -168,7 +170,8 @@ describe Gitable::URI do
|
|
168
170
|
describe_uri "git+ssh://host.xz/path/to/repo.git/" do
|
169
171
|
it { subject.to_s.should == @uri }
|
170
172
|
it_sets expected.merge({
|
171
|
-
:scheme
|
173
|
+
:scheme => "git+ssh",
|
174
|
+
:ssh? => true,
|
172
175
|
})
|
173
176
|
end
|
174
177
|
|
@@ -207,136 +210,158 @@ describe Gitable::URI do
|
|
207
210
|
describe_uri "ssh://host.xz/path/to/repo.git/" do
|
208
211
|
it { subject.to_s.should == @uri }
|
209
212
|
it_sets expected.merge({
|
210
|
-
:scheme
|
213
|
+
:scheme => "ssh",
|
214
|
+
:ssh? => true,
|
211
215
|
})
|
212
216
|
end
|
213
217
|
|
214
218
|
describe_uri "ssh://user@host.xz/path/to/repo.git/" do
|
215
219
|
it { subject.to_s.should == @uri }
|
216
220
|
it_sets expected.merge({
|
217
|
-
:scheme
|
218
|
-
:user
|
221
|
+
:scheme => "ssh",
|
222
|
+
:user => "user",
|
223
|
+
:ssh? => true,
|
219
224
|
})
|
220
225
|
end
|
221
226
|
|
222
227
|
describe_uri "ssh://host.xz/path/to/repo.git/" do
|
223
228
|
it { subject.to_s.should == @uri }
|
224
229
|
it_sets expected.merge({
|
225
|
-
:scheme
|
230
|
+
:scheme => "ssh",
|
231
|
+
:ssh? => true,
|
226
232
|
})
|
227
233
|
end
|
228
234
|
|
229
235
|
describe_uri "ssh://host.xz:8888/path/to/repo.git/" do
|
230
236
|
it { subject.to_s.should == @uri }
|
231
237
|
it_sets expected.merge({
|
232
|
-
:scheme
|
233
|
-
:port
|
238
|
+
:scheme => "ssh",
|
239
|
+
:port => 8888,
|
240
|
+
:ssh? => true,
|
234
241
|
})
|
235
242
|
end
|
236
243
|
|
237
244
|
describe_uri "ssh://user@host.xz/path/to/repo.git/" do
|
238
245
|
it { subject.to_s.should == @uri }
|
239
246
|
it_sets expected.merge({
|
240
|
-
:user
|
241
|
-
:scheme
|
247
|
+
:user => "user",
|
248
|
+
:scheme => "ssh",
|
249
|
+
:ssh? => true,
|
242
250
|
})
|
243
251
|
end
|
244
252
|
|
245
253
|
describe_uri "ssh://user@host.xz:8888/path/to/repo.git/" do
|
246
254
|
it { subject.to_s.should == @uri }
|
247
255
|
it_sets expected.merge({
|
248
|
-
:scheme
|
249
|
-
:user
|
250
|
-
:port
|
256
|
+
:scheme => "ssh",
|
257
|
+
:user => "user",
|
258
|
+
:port => 8888,
|
259
|
+
:ssh? => true,
|
251
260
|
})
|
252
261
|
end
|
253
262
|
|
254
263
|
describe_uri "ssh://host.xz/~user/path/to/repo.git/" do
|
255
264
|
it { subject.to_s.should == @uri }
|
256
265
|
it_sets expected.merge({
|
257
|
-
:scheme
|
258
|
-
:user
|
259
|
-
:path
|
266
|
+
:scheme => "ssh",
|
267
|
+
:user => nil,
|
268
|
+
:path => "/~user/path/to/repo.git/",
|
269
|
+
:ssh? => true,
|
260
270
|
})
|
261
271
|
end
|
262
272
|
|
263
273
|
describe_uri "ssh://user@host.xz/~user/path/to/repo.git/" do
|
264
274
|
it { subject.to_s.should == @uri }
|
265
275
|
it_sets expected.merge({
|
266
|
-
:scheme
|
267
|
-
:user
|
268
|
-
:path
|
276
|
+
:scheme => "ssh",
|
277
|
+
:user => "user",
|
278
|
+
:path => "/~user/path/to/repo.git/",
|
279
|
+
:ssh? => true,
|
269
280
|
})
|
270
281
|
end
|
271
282
|
|
272
283
|
describe_uri "ssh://host.xz/~/path/to/repo.git" do
|
273
284
|
it { subject.to_s.should == @uri }
|
274
285
|
it_sets expected.merge({
|
275
|
-
:scheme
|
276
|
-
:path
|
286
|
+
:scheme => "ssh",
|
287
|
+
:path => "/~/path/to/repo.git",
|
288
|
+
:ssh? => true,
|
277
289
|
})
|
278
290
|
end
|
279
291
|
|
280
292
|
describe_uri "ssh://user@host.xz/~/path/to/repo.git" do
|
281
293
|
it { subject.to_s.should == @uri }
|
282
294
|
it_sets expected.merge({
|
283
|
-
:scheme
|
284
|
-
:user
|
285
|
-
:path
|
295
|
+
:scheme => "ssh",
|
296
|
+
:user => "user",
|
297
|
+
:path => "/~/path/to/repo.git",
|
298
|
+
:ssh? => true,
|
286
299
|
})
|
287
300
|
end
|
288
301
|
|
289
302
|
describe_uri "host.xz:/path/to/repo.git/" do
|
290
303
|
it { subject.to_s.should == @uri }
|
291
304
|
it_sets expected.merge({
|
292
|
-
:scheme
|
293
|
-
:
|
294
|
-
:
|
305
|
+
:scheme => nil,
|
306
|
+
:normalized_scheme => 'ssh',
|
307
|
+
:user => nil,
|
308
|
+
:path => "/path/to/repo.git/",
|
309
|
+
:ssh? => true,
|
295
310
|
})
|
296
311
|
end
|
297
312
|
|
298
313
|
describe_uri "user@host.xz:/path/to/repo.git/" do
|
299
314
|
it { subject.to_s.should == @uri }
|
300
315
|
it_sets expected.merge({
|
301
|
-
:scheme
|
302
|
-
:
|
303
|
-
:
|
316
|
+
:scheme => nil,
|
317
|
+
:normalized_scheme => 'ssh',
|
318
|
+
:user => "user",
|
319
|
+
:path => "/path/to/repo.git/",
|
320
|
+
:ssh? => true,
|
304
321
|
})
|
305
322
|
end
|
306
323
|
|
307
324
|
describe_uri "host.xz:~user/path/to/repo.git/" do
|
308
325
|
it { subject.to_s.should == @uri }
|
309
326
|
it_sets expected.merge({
|
310
|
-
:scheme
|
311
|
-
:
|
312
|
-
:
|
327
|
+
:scheme => nil,
|
328
|
+
:normalized_scheme => 'ssh',
|
329
|
+
:user => nil,
|
330
|
+
:path => "~user/path/to/repo.git/",
|
331
|
+
:ssh? => true,
|
313
332
|
})
|
314
333
|
end
|
315
334
|
|
316
335
|
describe_uri "user@host.xz:~user/path/to/repo.git/" do
|
317
336
|
it { subject.to_s.should == @uri }
|
318
337
|
it_sets expected.merge({
|
319
|
-
:scheme
|
320
|
-
:
|
321
|
-
:
|
338
|
+
:scheme => nil,
|
339
|
+
:normalized_scheme => 'ssh',
|
340
|
+
:user => "user",
|
341
|
+
:path => "~user/path/to/repo.git/",
|
342
|
+
:ssh? => true,
|
322
343
|
})
|
323
344
|
end
|
324
345
|
|
325
346
|
describe_uri "host.xz:path/to/repo.git" do
|
326
347
|
it { subject.to_s.should == @uri }
|
327
348
|
it_sets expected.merge({
|
328
|
-
:scheme
|
329
|
-
:
|
330
|
-
:
|
349
|
+
:scheme => nil,
|
350
|
+
:normalized_scheme => 'ssh',
|
351
|
+
:user => nil,
|
352
|
+
:path => "path/to/repo.git",
|
353
|
+
:ssh? => true,
|
331
354
|
})
|
332
355
|
end
|
333
356
|
|
334
357
|
describe_uri "user@host.xz:path/to/repo.git" do
|
335
358
|
it { subject.to_s.should == @uri }
|
336
359
|
it_sets expected.merge({
|
337
|
-
:scheme
|
338
|
-
:
|
339
|
-
:
|
360
|
+
:scheme => nil,
|
361
|
+
:normalized_scheme => 'ssh',
|
362
|
+
:user => "user",
|
363
|
+
:path => "path/to/repo.git",
|
364
|
+
:ssh? => true,
|
340
365
|
})
|
341
366
|
end
|
342
367
|
|
@@ -346,6 +371,7 @@ describe Gitable::URI do
|
|
346
371
|
:scheme => nil,
|
347
372
|
:host => nil,
|
348
373
|
:path => "/path/to/repo.git/",
|
374
|
+
:local? => true,
|
349
375
|
})
|
350
376
|
end
|
351
377
|
|
@@ -355,20 +381,22 @@ describe Gitable::URI do
|
|
355
381
|
:scheme => "file",
|
356
382
|
:host => "", # I don't really like this but it doesn't hurt anything.
|
357
383
|
:path => "/path/to/repo.git/",
|
384
|
+
:local? => true,
|
358
385
|
})
|
359
386
|
end
|
360
387
|
|
361
388
|
describe_uri "ssh://git@github.com/martinemde/gitable.git" do
|
362
389
|
it { subject.to_s.should == @uri }
|
363
390
|
it_sets({
|
364
|
-
:scheme
|
365
|
-
:user
|
366
|
-
:password
|
367
|
-
:host
|
368
|
-
:port
|
369
|
-
:path
|
370
|
-
:fragment
|
371
|
-
:basename
|
391
|
+
:scheme => "ssh",
|
392
|
+
:user => "git",
|
393
|
+
:password => nil,
|
394
|
+
:host => "github.com",
|
395
|
+
:port => nil,
|
396
|
+
:path => "/martinemde/gitable.git",
|
397
|
+
:fragment => nil,
|
398
|
+
:basename => "gitable.git",
|
399
|
+
:ssh? => true,
|
372
400
|
})
|
373
401
|
end
|
374
402
|
|
@@ -403,15 +431,17 @@ describe Gitable::URI do
|
|
403
431
|
describe_uri "git@github.com:martinemde/gitable.git" do
|
404
432
|
it { subject.to_s.should == @uri }
|
405
433
|
it_sets({
|
406
|
-
:scheme
|
407
|
-
:
|
408
|
-
:
|
409
|
-
:
|
410
|
-
:
|
411
|
-
:
|
412
|
-
:
|
413
|
-
:
|
414
|
-
:
|
434
|
+
:scheme => nil,
|
435
|
+
:normalized_scheme => 'ssh',
|
436
|
+
:user => "git",
|
437
|
+
:password => nil,
|
438
|
+
:host => "github.com",
|
439
|
+
:port => nil,
|
440
|
+
:path => "martinemde/gitable.git",
|
441
|
+
:fragment => nil,
|
442
|
+
:basename => "gitable.git",
|
443
|
+
:project_name => "gitable",
|
444
|
+
:ssh? => true,
|
415
445
|
})
|
416
446
|
end
|
417
447
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Martin Emde
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-05 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|