gitable 0.2.4 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/Rakefile +18 -0
- data/gitable.gemspec +4 -3
- data/lib/gitable/scp_uri.rb +11 -28
- data/lib/gitable/uri.rb +43 -6
- data/spec/describe_uri.rb +1 -1
- data/spec/gitable_spec.rb +174 -178
- data/spec/heuristic_parse_spec.rb +4 -4
- data/spec/spec_helper.rb +3 -0
- metadata +11 -20
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MzE0ZTY2Yjc1ZTI4MmU0N2VkMmZkNTQ3ODBlM2UzYWE5NjY3ZDhlOQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
OGY2ZDZjZTk3OTNiMDU2MDdkNjNiZTgwNDY3MjVkY2M5MzVjNjg2ZA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NzI3MmM5ZjkyNGRkZDA1N2YwMGE5OThjZmE1MDBlN2E3MDVkM2Q0MjJjNWI1
|
10
|
+
MWUzY2U5YTI4OTUyYWMzY2UzNjM2NTQxN2RmNDg0MTUzNWQ5M2NiMzc4M2I2
|
11
|
+
YmE4YWZhODRiNjVkOGZjNzBjZmFkNWJjOTc1ODk0MDVkMTRiODU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
Y2ZmNjhiZDllODY0NjZmM2E4NjM5ZGMwYWVjYWQxMmM2NmI0MmMwNDRkMjA0
|
14
|
+
ODBhYzljNmJiZjBhZGE3ZGNkZGMyNTA5YTNmNzU0NWJmZjFlZGEwNmM5OTQ4
|
15
|
+
YWU1MTJjZGJkZDIyODg2YjA1NzFlMWYxMzZmZjQ2OThmYTRmNjY=
|
data/Rakefile
CHANGED
@@ -11,3 +11,21 @@ task :coverage => [:coverage_env, :spec]
|
|
11
11
|
task :coverage_env do
|
12
12
|
ENV['COVERAGE'] = '1'
|
13
13
|
end
|
14
|
+
|
15
|
+
task :benchmark do
|
16
|
+
require 'benchmark'
|
17
|
+
require 'uri'
|
18
|
+
require File.expand_path('lib/gitable/uri', File.dirname(__FILE__))
|
19
|
+
|
20
|
+
n = 10000
|
21
|
+
scp = "git@github.com:martinemde/gitable.git"
|
22
|
+
uri = "git://github.com/martinemde/gitable.git"
|
23
|
+
dup = Gitable::URI.parse(uri)
|
24
|
+
Benchmark.bmbm do |x|
|
25
|
+
x.report('dup') { n.times { Gitable::URI.parse(dup) } }
|
26
|
+
x.report(uri) { n.times { Gitable::URI.parse(uri) } }
|
27
|
+
x.report(scp) { n.times { Gitable::URI.parse(scp) } }
|
28
|
+
x.report("addressable") { n.times { Addressable::URI.parse(uri) } }
|
29
|
+
x.report("uri") { n.times { URI.parse(uri) } }
|
30
|
+
end
|
31
|
+
end
|
data/gitable.gemspec
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |s|
|
3
3
|
s.name = "gitable"
|
4
|
-
s.version = "0.
|
4
|
+
s.version = "0.3.0"
|
5
5
|
s.authors = ["Martin Emde"]
|
6
6
|
s.email = ["martin.emde@gmail.com"]
|
7
7
|
s.homepage = "http://github.org/martinemde/gitable"
|
8
8
|
s.summary = %q{Addressable::URI for Git. Gitable::URI.}
|
9
9
|
s.description = %q{Addressable::URI for Git URIs with special handling for scp-style URIs that Addressable doesn't like.}
|
10
|
+
s.license = 'MIT'
|
10
11
|
|
11
|
-
s.add_dependency "addressable"
|
12
|
-
s.add_development_dependency "rspec", "~>2.
|
12
|
+
s.add_dependency "addressable", ">= 2.2.7"
|
13
|
+
s.add_development_dependency "rspec", "~>2.11"
|
13
14
|
s.add_development_dependency "rake"
|
14
15
|
s.add_development_dependency "simplecov"
|
15
16
|
|
data/lib/gitable/scp_uri.rb
CHANGED
@@ -3,36 +3,19 @@ require 'gitable/uri'
|
|
3
3
|
|
4
4
|
module Gitable
|
5
5
|
class ScpURI < Gitable::URI
|
6
|
-
REGEXP = %r|^([^:/?#]+):([^:?#]*)$|
|
7
6
|
|
8
7
|
##
|
9
|
-
#
|
10
|
-
# it matches our scp regexp
|
11
|
-
#
|
12
|
-
# nil host is an Addressable misunderstanding (therefore it might be scp style)
|
8
|
+
# Deprecated: This serves no purpose. You might as well just parse the URI.
|
13
9
|
def self.scp?(uri)
|
14
|
-
|
10
|
+
$stderr.puts "DEPRECATED: Gitable::ScpURI.scp?. You're better off parsing the URI and checking #scp?."
|
11
|
+
parse(uri).scp?
|
15
12
|
end
|
16
13
|
|
17
14
|
##
|
18
|
-
#
|
19
|
-
#
|
20
|
-
# @param [Addressable::URI, #to_str] uri URI of a git repository.
|
21
|
-
#
|
22
|
-
# @return [Gitable::URI, nil] the URI object or nil if nil was passed in.
|
23
|
-
#
|
24
|
-
# @raise [TypeError] The uri must respond to #to_str.
|
25
|
-
# @raise [Gitable::URI::InvalidURIError] When the uri is *total* rubbish.
|
26
|
-
#
|
15
|
+
# Deprecated: This serves no purpose. Just use Gitable::URI.parse.
|
27
16
|
def self.parse(uri)
|
28
|
-
|
29
|
-
|
30
|
-
if scp?(uri)
|
31
|
-
authority, path = uri.scan(REGEXP).flatten
|
32
|
-
Gitable::ScpURI.new(:authority => authority, :path => path)
|
33
|
-
else
|
34
|
-
raise InvalidURIError, "Unable to parse scp style URI: #{uri}"
|
35
|
-
end
|
17
|
+
$stderr.puts "DEPRECATED: Gitable::ScpURI.parse just runs Gitable::URI.parse. Please use this directly."
|
18
|
+
Gitable::URI.parse(uri)
|
36
19
|
end
|
37
20
|
|
38
21
|
|
@@ -50,7 +33,7 @@ module Gitable
|
|
50
33
|
super
|
51
34
|
if new_path[0..0] != '/' # addressable adds a / but scp-style uris are altered by this behavior
|
52
35
|
@path = path.sub(%r|^/+|,'')
|
53
|
-
@normalized_path =
|
36
|
+
@normalized_path = nil
|
54
37
|
validate
|
55
38
|
end
|
56
39
|
path
|
@@ -99,19 +82,19 @@ module Gitable
|
|
99
82
|
def validate
|
100
83
|
return if @validation_deferred
|
101
84
|
|
102
|
-
if
|
85
|
+
if host.to_s.empty?
|
103
86
|
raise InvalidURIError, "Hostname segment missing: '#{to_s}'"
|
104
87
|
end
|
105
88
|
|
106
|
-
unless
|
89
|
+
unless scheme.to_s.empty?
|
107
90
|
raise InvalidURIError, "Scp style URI must not have a scheme: '#{to_s}'"
|
108
91
|
end
|
109
92
|
|
110
|
-
if !
|
93
|
+
if !port.to_s.empty?
|
111
94
|
raise InvalidURIError, "Scp style URI cannot have a port: '#{to_s}'"
|
112
95
|
end
|
113
96
|
|
114
|
-
if
|
97
|
+
if path.to_s.empty?
|
115
98
|
raise InvalidURIError, "Absolute URI missing hierarchical segment: '#{to_s}'"
|
116
99
|
end
|
117
100
|
|
data/lib/gitable/uri.rb
CHANGED
@@ -2,6 +2,8 @@ require 'addressable/uri'
|
|
2
2
|
|
3
3
|
module Gitable
|
4
4
|
class URI < Addressable::URI
|
5
|
+
SCP_REGEXP = %r|^([^:/?#]+):([^:?#]*)$|
|
6
|
+
URIREGEX = %r|^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$|
|
5
7
|
|
6
8
|
##
|
7
9
|
# Parse a git repository URI into a URI object.
|
@@ -14,15 +16,50 @@ module Gitable
|
|
14
16
|
# @raise [Gitable::URI::InvalidURIError] When the uri is *total* rubbish.
|
15
17
|
#
|
16
18
|
def self.parse(uri)
|
17
|
-
return
|
19
|
+
return nil if uri.nil?
|
20
|
+
return uri.dup if uri.kind_of?(self)
|
21
|
+
|
22
|
+
# Copied from Addressable to speed up our parsing.
|
23
|
+
#
|
24
|
+
# If a URI object of the Ruby standard library variety is passed,
|
25
|
+
# convert it to a string, then parse the string.
|
26
|
+
# We do the check this way because we don't want to accidentally
|
27
|
+
# cause a missing constant exception to be thrown.
|
28
|
+
if uri.class.name =~ /^URI\b/
|
29
|
+
uri = uri.to_s
|
30
|
+
end
|
18
31
|
|
19
|
-
#
|
20
|
-
|
32
|
+
# Otherwise, convert to a String
|
33
|
+
begin
|
34
|
+
uri = uri.to_str
|
35
|
+
rescue TypeError, NoMethodError
|
36
|
+
raise TypeError, "Can't convert #{uri.class} into String."
|
37
|
+
end if not uri.is_a? String
|
38
|
+
|
39
|
+
# This Regexp supplied as an example in RFC 3986, and it works great.
|
40
|
+
fragments = uri.scan(URIREGEX)[0]
|
41
|
+
scheme = fragments[1]
|
42
|
+
authority = fragments[3]
|
43
|
+
path = fragments[4]
|
44
|
+
query = fragments[6]
|
45
|
+
fragment = fragments[8]
|
46
|
+
host = nil
|
47
|
+
if authority
|
48
|
+
host = authority.gsub(/^([^\[\]]*)@/, '').gsub(/:([^:@\[\]]*?)$/, '')
|
49
|
+
else
|
50
|
+
authority = scheme
|
51
|
+
end
|
21
52
|
|
22
|
-
if
|
23
|
-
Gitable::ScpURI.
|
53
|
+
if host.nil? && (parts = uri.scan(SCP_REGEXP)) && parts.any?
|
54
|
+
Gitable::ScpURI.new(:authority => parts.first[0], :path => parts.first[1])
|
24
55
|
else
|
25
|
-
new(
|
56
|
+
new(
|
57
|
+
:scheme => scheme,
|
58
|
+
:authority => authority,
|
59
|
+
:path => path,
|
60
|
+
:query => query,
|
61
|
+
:fragment => fragment
|
62
|
+
)
|
26
63
|
end
|
27
64
|
end
|
28
65
|
|
data/spec/describe_uri.rb
CHANGED
data/spec/gitable_spec.rb
CHANGED
@@ -3,41 +3,41 @@ require 'spec_helper'
|
|
3
3
|
describe Gitable::URI do
|
4
4
|
describe_uri "git://github.com/martinemde/gitable" do
|
5
5
|
it "sets the .git extname" do
|
6
|
-
subject.extname.
|
6
|
+
expect(subject.extname).to eq("")
|
7
7
|
subject.set_git_extname
|
8
|
-
subject.extname.
|
9
|
-
subject.to_s.
|
8
|
+
expect(subject.extname).to eq(".git")
|
9
|
+
expect(subject.to_s).to eq(@uri + ".git")
|
10
10
|
end
|
11
11
|
|
12
12
|
it "does not duplicate the extname" do
|
13
13
|
subject.extname = "git"
|
14
|
-
subject.to_s.
|
14
|
+
expect(subject.to_s).to eq(@uri + ".git")
|
15
15
|
subject.set_git_extname
|
16
|
-
subject.to_s.
|
16
|
+
expect(subject.to_s).to eq(@uri + ".git")
|
17
17
|
end
|
18
18
|
|
19
19
|
it "sets a new basename" do
|
20
|
-
subject.basename.
|
20
|
+
expect(subject.basename).to eq("gitable")
|
21
21
|
subject.basename = "gitable.git"
|
22
|
-
subject.basename.
|
23
|
-
subject.extname.
|
22
|
+
expect(subject.basename).to eq("gitable.git")
|
23
|
+
expect(subject.extname).to eq(".git")
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
describe_uri "git://github.com/" do
|
28
28
|
it "does not set a new extname" do
|
29
|
-
subject.extname.
|
29
|
+
expect(subject.extname).to eq("")
|
30
30
|
subject.set_git_extname
|
31
|
-
subject.extname.
|
32
|
-
subject.to_s.
|
31
|
+
expect(subject.extname).to eq("")
|
32
|
+
expect(subject.to_s).to eq(@uri)
|
33
33
|
end
|
34
34
|
|
35
35
|
it "sets a new basename" do
|
36
|
-
subject.basename.
|
36
|
+
expect(subject.basename).to eq("")
|
37
37
|
subject.basename = "gitable.git"
|
38
|
-
subject.basename.
|
39
|
-
subject.extname.
|
40
|
-
subject.to_s.
|
38
|
+
expect(subject.basename).to eq("gitable.git")
|
39
|
+
expect(subject.extname).to eq(".git")
|
40
|
+
expect(subject.to_s).to eq(@uri + "gitable.git")
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -72,26 +72,26 @@ describe Gitable::URI do
|
|
72
72
|
before { @uri = "ssh://git@github.com/martinemde/gitable.git" }
|
73
73
|
|
74
74
|
it "returns a Gitable::URI" do
|
75
|
-
Gitable::URI.parse(@uri).
|
75
|
+
expect(Gitable::URI.parse(@uri)).to be_a_kind_of(Gitable::URI)
|
76
76
|
end
|
77
77
|
|
78
78
|
it "returns nil when passed a nil uri" do
|
79
|
-
Gitable::URI.parse(nil).
|
79
|
+
expect(Gitable::URI.parse(nil)).to be_nil
|
80
80
|
end
|
81
81
|
|
82
82
|
it "returns the same uri when passed a Gitable::URI" do
|
83
83
|
gitable = Gitable::URI.parse(@uri)
|
84
|
-
Gitable::URI.parse(gitable).
|
84
|
+
expect(Gitable::URI.parse(gitable)).to eq(gitable)
|
85
85
|
end
|
86
86
|
|
87
87
|
it "raises a TypeError on bad type" do
|
88
|
-
|
88
|
+
expect {
|
89
89
|
Gitable::URI.parse(5)
|
90
|
-
}.
|
90
|
+
}.to raise_error(TypeError)
|
91
91
|
end
|
92
92
|
|
93
93
|
it "returns nil with bad type on parse_when_valid" do
|
94
|
-
Gitable::URI.parse_when_valid(42).
|
94
|
+
expect(Gitable::URI.parse_when_valid(42)).to be_nil
|
95
95
|
end
|
96
96
|
|
97
97
|
context "(bad uris)" do
|
@@ -101,46 +101,42 @@ describe Gitable::URI do
|
|
101
101
|
"user@:path.git", # no host
|
102
102
|
"user@host:", # no path
|
103
103
|
].each do |uri|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
104
|
+
context uri.inspect do
|
105
|
+
it "raises an Gitable::URI::InvalidURIError" do
|
106
|
+
expect {
|
107
|
+
puts Gitable::URI.parse(uri).to_hash.inspect
|
108
|
+
}.to raise_error(Gitable::URI::InvalidURIError)
|
109
|
+
end
|
110
|
+
|
111
|
+
it "returns nil on parse_when_valid" do
|
112
|
+
expect(Gitable::URI.parse_when_valid(uri)).to be_nil
|
113
|
+
end
|
112
114
|
end
|
113
115
|
end
|
114
116
|
|
115
117
|
context "scp uris" do
|
116
118
|
it "raises without path" do
|
117
|
-
|
118
|
-
Gitable::ScpURI.parse("http://github.com/path.git")
|
119
|
-
}.should raise_error(Gitable::URI::InvalidURIError)
|
120
|
-
end
|
121
|
-
|
122
|
-
it "raises without path" do
|
123
|
-
lambda {
|
119
|
+
expect {
|
124
120
|
Gitable::ScpURI.new(:user => 'git', :host => 'github.com')
|
125
|
-
}.
|
121
|
+
}.to raise_error(Gitable::URI::InvalidURIError)
|
126
122
|
end
|
127
123
|
|
128
124
|
it "raises without host" do
|
129
|
-
|
125
|
+
expect {
|
130
126
|
Gitable::ScpURI.new(:user => 'git', :path => 'path')
|
131
|
-
}.
|
127
|
+
}.to raise_error(Gitable::URI::InvalidURIError)
|
132
128
|
end
|
133
129
|
|
134
130
|
it "raises with any scheme" do
|
135
|
-
|
131
|
+
expect {
|
136
132
|
Gitable::ScpURI.new(:scheme => 'ssh', :host => 'github.com', :path => 'path')
|
137
|
-
}.
|
133
|
+
}.to raise_error(Gitable::URI::InvalidURIError)
|
138
134
|
end
|
139
135
|
|
140
136
|
it "raises with any port" do
|
141
|
-
|
137
|
+
expect {
|
142
138
|
Gitable::ScpURI.new(:port => 88, :host => 'github.com', :path => 'path')
|
143
|
-
}.
|
139
|
+
}.to raise_error(Gitable::URI::InvalidURIError)
|
144
140
|
end
|
145
141
|
end
|
146
142
|
end
|
@@ -163,8 +159,8 @@ describe Gitable::URI do
|
|
163
159
|
}
|
164
160
|
|
165
161
|
describe_uri "rsync://host.xz/path/to/repo.git/" do
|
166
|
-
it { subject.to_s.
|
167
|
-
it { "#{subject}".
|
162
|
+
it { expect(subject.to_s).to eq(@uri) }
|
163
|
+
it { expect("#{subject}").to eq(@uri) }
|
168
164
|
it_sets expected.merge({
|
169
165
|
:scheme => "rsync",
|
170
166
|
:project_name => "repo"
|
@@ -172,24 +168,24 @@ describe Gitable::URI do
|
|
172
168
|
end
|
173
169
|
|
174
170
|
describe_uri "rsync://host.xz/path/to/repo.git/" do
|
175
|
-
it { subject.to_s.
|
176
|
-
it { "#{subject}".
|
171
|
+
it { expect(subject.to_s).to eq(@uri) }
|
172
|
+
it { expect("#{subject}").to eq(@uri) }
|
177
173
|
it_sets expected.merge({
|
178
174
|
:scheme => "rsync",
|
179
175
|
})
|
180
176
|
end
|
181
177
|
|
182
178
|
describe_uri "http://host.xz/path/to/repo.git/" do
|
183
|
-
it { subject.to_s.
|
184
|
-
it { "#{subject}".
|
179
|
+
it { expect(subject.to_s).to eq(@uri) }
|
180
|
+
it { expect("#{subject}").to eq(@uri) }
|
185
181
|
it_sets expected.merge({
|
186
182
|
:scheme => "http",
|
187
183
|
})
|
188
184
|
end
|
189
185
|
|
190
186
|
describe_uri "http://host.xz:8888/path/to/repo.git/" do
|
191
|
-
it { subject.to_s.
|
192
|
-
it { "#{subject}".
|
187
|
+
it { expect(subject.to_s).to eq(@uri) }
|
188
|
+
it { expect("#{subject}").to eq(@uri) }
|
193
189
|
it_sets expected.merge({
|
194
190
|
:scheme => "http",
|
195
191
|
:port => 8888,
|
@@ -198,8 +194,8 @@ describe Gitable::URI do
|
|
198
194
|
end
|
199
195
|
|
200
196
|
describe_uri "http://12.34.56.78:8888/path/to/repo.git/" do
|
201
|
-
it { subject.to_s.
|
202
|
-
it { "#{subject}".
|
197
|
+
it { expect(subject.to_s).to eq(@uri) }
|
198
|
+
it { expect("#{subject}").to eq(@uri) }
|
203
199
|
it_sets expected.merge({
|
204
200
|
:scheme => "http",
|
205
201
|
:host => "12.34.56.78",
|
@@ -209,16 +205,16 @@ describe Gitable::URI do
|
|
209
205
|
end
|
210
206
|
|
211
207
|
describe_uri "https://host.xz/path/to/repo.git/" do
|
212
|
-
it { subject.to_s.
|
213
|
-
it { "#{subject}".
|
208
|
+
it { expect(subject.to_s).to eq(@uri) }
|
209
|
+
it { expect("#{subject}").to eq(@uri) }
|
214
210
|
it_sets expected.merge({
|
215
211
|
:scheme => "https",
|
216
212
|
})
|
217
213
|
end
|
218
214
|
|
219
215
|
describe_uri "https://user@host.xz/path/to/repo.git/" do
|
220
|
-
it { subject.to_s.
|
221
|
-
it { "#{subject}".
|
216
|
+
it { expect(subject.to_s).to eq(@uri) }
|
217
|
+
it { expect("#{subject}").to eq(@uri) }
|
222
218
|
it_sets expected.merge({
|
223
219
|
:scheme => "https",
|
224
220
|
:user => "user",
|
@@ -228,8 +224,8 @@ describe Gitable::URI do
|
|
228
224
|
end
|
229
225
|
|
230
226
|
describe_uri "https://host.xz:8888/path/to/repo.git/" do
|
231
|
-
it { subject.to_s.
|
232
|
-
it { "#{subject}".
|
227
|
+
it { expect(subject.to_s).to eq(@uri) }
|
228
|
+
it { expect("#{subject}").to eq(@uri) }
|
233
229
|
it_sets expected.merge({
|
234
230
|
:scheme => "https",
|
235
231
|
:port => 8888,
|
@@ -238,8 +234,8 @@ describe Gitable::URI do
|
|
238
234
|
end
|
239
235
|
|
240
236
|
describe_uri "git+ssh://host.xz/path/to/repo.git/" do
|
241
|
-
it { subject.to_s.
|
242
|
-
it { "#{subject}".
|
237
|
+
it { expect(subject.to_s).to eq(@uri) }
|
238
|
+
it { expect("#{subject}").to eq(@uri) }
|
243
239
|
it_sets expected.merge({
|
244
240
|
:scheme => "git+ssh",
|
245
241
|
:ssh? => true,
|
@@ -248,16 +244,16 @@ describe Gitable::URI do
|
|
248
244
|
end
|
249
245
|
|
250
246
|
describe_uri "git://host.xz/path/to/repo.git/" do
|
251
|
-
it { subject.to_s.
|
252
|
-
it { "#{subject}".
|
247
|
+
it { expect(subject.to_s).to eq(@uri) }
|
248
|
+
it { expect("#{subject}").to eq(@uri) }
|
253
249
|
it_sets expected.merge({
|
254
250
|
:scheme => "git",
|
255
251
|
})
|
256
252
|
end
|
257
253
|
|
258
254
|
describe_uri "git://host.xz:8888/path/to/repo.git/" do
|
259
|
-
it { subject.to_s.
|
260
|
-
it { "#{subject}".
|
255
|
+
it { expect(subject.to_s).to eq(@uri) }
|
256
|
+
it { expect("#{subject}").to eq(@uri) }
|
261
257
|
it_sets expected.merge({
|
262
258
|
:scheme => "git",
|
263
259
|
:port => 8888,
|
@@ -266,8 +262,8 @@ describe Gitable::URI do
|
|
266
262
|
end
|
267
263
|
|
268
264
|
describe_uri "git://host.xz/~user/path/to/repo.git/" do
|
269
|
-
it { subject.to_s.
|
270
|
-
it { "#{subject}".
|
265
|
+
it { expect(subject.to_s).to eq(@uri) }
|
266
|
+
it { expect("#{subject}").to eq(@uri) }
|
271
267
|
it_sets expected.merge({
|
272
268
|
:scheme => "git",
|
273
269
|
:path => "/~user/path/to/repo.git/",
|
@@ -276,8 +272,8 @@ describe Gitable::URI do
|
|
276
272
|
end
|
277
273
|
|
278
274
|
describe_uri "git://host.xz:8888/~user/path/to/repo.git/" do
|
279
|
-
it { subject.to_s.
|
280
|
-
it { "#{subject}".
|
275
|
+
it { expect(subject.to_s).to eq(@uri) }
|
276
|
+
it { expect("#{subject}").to eq(@uri) }
|
281
277
|
it_sets expected.merge({
|
282
278
|
:scheme => "git",
|
283
279
|
:path => "/~user/path/to/repo.git/",
|
@@ -287,8 +283,8 @@ describe Gitable::URI do
|
|
287
283
|
end
|
288
284
|
|
289
285
|
describe_uri "ssh://host.xz/path/to/repo.git/" do
|
290
|
-
it { subject.to_s.
|
291
|
-
it { "#{subject}".
|
286
|
+
it { expect(subject.to_s).to eq(@uri) }
|
287
|
+
it { expect("#{subject}").to eq(@uri) }
|
292
288
|
it_sets expected.merge({
|
293
289
|
:scheme => "ssh",
|
294
290
|
:ssh? => true,
|
@@ -297,8 +293,8 @@ describe Gitable::URI do
|
|
297
293
|
end
|
298
294
|
|
299
295
|
describe_uri "ssh://user@host.xz/path/to/repo.git/" do
|
300
|
-
it { subject.to_s.
|
301
|
-
it { "#{subject}".
|
296
|
+
it { expect(subject.to_s).to eq(@uri) }
|
297
|
+
it { expect("#{subject}").to eq(@uri) }
|
302
298
|
it_sets expected.merge({
|
303
299
|
:scheme => "ssh",
|
304
300
|
:user => "user",
|
@@ -308,8 +304,8 @@ describe Gitable::URI do
|
|
308
304
|
end
|
309
305
|
|
310
306
|
describe_uri "ssh://host.xz/path/to/repo.git/" do
|
311
|
-
it { subject.to_s.
|
312
|
-
it { "#{subject}".
|
307
|
+
it { expect(subject.to_s).to eq(@uri) }
|
308
|
+
it { expect("#{subject}").to eq(@uri) }
|
313
309
|
it_sets expected.merge({
|
314
310
|
:scheme => "ssh",
|
315
311
|
:ssh? => true,
|
@@ -318,8 +314,8 @@ describe Gitable::URI do
|
|
318
314
|
end
|
319
315
|
|
320
316
|
describe_uri "ssh://host.xz:8888/path/to/repo.git/" do
|
321
|
-
it { subject.to_s.
|
322
|
-
it { "#{subject}".
|
317
|
+
it { expect(subject.to_s).to eq(@uri) }
|
318
|
+
it { expect("#{subject}").to eq(@uri) }
|
323
319
|
it_sets expected.merge({
|
324
320
|
:scheme => "ssh",
|
325
321
|
:port => 8888,
|
@@ -330,8 +326,8 @@ describe Gitable::URI do
|
|
330
326
|
end
|
331
327
|
|
332
328
|
describe_uri "ssh://user@host.xz/path/to/repo.git/" do
|
333
|
-
it { subject.to_s.
|
334
|
-
it { "#{subject}".
|
329
|
+
it { expect(subject.to_s).to eq(@uri) }
|
330
|
+
it { expect("#{subject}").to eq(@uri) }
|
335
331
|
it_sets expected.merge({
|
336
332
|
:user => "user",
|
337
333
|
:scheme => "ssh",
|
@@ -341,8 +337,8 @@ describe Gitable::URI do
|
|
341
337
|
end
|
342
338
|
|
343
339
|
describe_uri "ssh://user@host.xz:8888/path/to/repo.git/" do
|
344
|
-
it { subject.to_s.
|
345
|
-
it { "#{subject}".
|
340
|
+
it { expect(subject.to_s).to eq(@uri) }
|
341
|
+
it { expect("#{subject}").to eq(@uri) }
|
346
342
|
it_sets expected.merge({
|
347
343
|
:scheme => "ssh",
|
348
344
|
:user => "user",
|
@@ -354,8 +350,8 @@ describe Gitable::URI do
|
|
354
350
|
end
|
355
351
|
|
356
352
|
describe_uri "ssh://host.xz/~user/path/to/repo.git/" do
|
357
|
-
it { subject.to_s.
|
358
|
-
it { "#{subject}".
|
353
|
+
it { expect(subject.to_s).to eq(@uri) }
|
354
|
+
it { expect("#{subject}").to eq(@uri) }
|
359
355
|
it_sets expected.merge({
|
360
356
|
:scheme => "ssh",
|
361
357
|
:user => nil,
|
@@ -367,8 +363,8 @@ describe Gitable::URI do
|
|
367
363
|
end
|
368
364
|
|
369
365
|
describe_uri "ssh://user@host.xz/~user/path/to/repo.git/" do
|
370
|
-
it { subject.to_s.
|
371
|
-
it { "#{subject}".
|
366
|
+
it { expect(subject.to_s).to eq(@uri) }
|
367
|
+
it { expect("#{subject}").to eq(@uri) }
|
372
368
|
it_sets expected.merge({
|
373
369
|
:scheme => "ssh",
|
374
370
|
:user => "user",
|
@@ -380,8 +376,8 @@ describe Gitable::URI do
|
|
380
376
|
end
|
381
377
|
|
382
378
|
describe_uri "ssh://host.xz/~/path/to/repo.git" do
|
383
|
-
it { subject.to_s.
|
384
|
-
it { "#{subject}".
|
379
|
+
it { expect(subject.to_s).to eq(@uri) }
|
380
|
+
it { expect("#{subject}").to eq(@uri) }
|
385
381
|
it_sets expected.merge({
|
386
382
|
:scheme => "ssh",
|
387
383
|
:path => "/~/path/to/repo.git",
|
@@ -392,8 +388,8 @@ describe Gitable::URI do
|
|
392
388
|
end
|
393
389
|
|
394
390
|
describe_uri "ssh://user@host.xz/~/path/to/repo.git" do
|
395
|
-
it { subject.to_s.
|
396
|
-
it { "#{subject}".
|
391
|
+
it { expect(subject.to_s).to eq(@uri) }
|
392
|
+
it { expect("#{subject}").to eq(@uri) }
|
397
393
|
it_sets expected.merge({
|
398
394
|
:scheme => "ssh",
|
399
395
|
:user => "user",
|
@@ -405,8 +401,8 @@ describe Gitable::URI do
|
|
405
401
|
end
|
406
402
|
|
407
403
|
describe_uri "host.xz:/path/to/repo.git/" do
|
408
|
-
it { subject.to_s.
|
409
|
-
it { "#{subject}".
|
404
|
+
it { expect(subject.to_s).to eq(@uri) }
|
405
|
+
it { expect("#{subject}").to eq(@uri) }
|
410
406
|
it_sets expected.merge({
|
411
407
|
:scheme => nil,
|
412
408
|
:inferred_scheme => 'ssh',
|
@@ -418,13 +414,13 @@ describe Gitable::URI do
|
|
418
414
|
end
|
419
415
|
|
420
416
|
describe_uri "user@host.xz:/path/to/repo.git/" do
|
421
|
-
it { subject.to_s.
|
422
|
-
it { "#{subject}".
|
423
|
-
it { subject.
|
424
|
-
it { subject.
|
425
|
-
it { subject.
|
426
|
-
it { subject.
|
427
|
-
it { subject.
|
417
|
+
it { expect(subject.to_s).to eq(@uri) }
|
418
|
+
it { expect("#{subject}").to eq(@uri) }
|
419
|
+
it { expect(subject).to be_equivalent('ssh://user@host.xz/path/to/repo.git') }
|
420
|
+
it { expect(subject).to be_equivalent('user@host.xz:/path/to/repo.git') }
|
421
|
+
it { expect(subject).to_not be_equivalent('user@host.xz:path/to/repo.git') } # not absolute
|
422
|
+
it { expect(subject).to_not be_equivalent('/path/to/repo.git') }
|
423
|
+
it { expect(subject).to_not be_equivalent('host.xz:path/to/repo.git') }
|
428
424
|
it_sets expected.merge({
|
429
425
|
:scheme => nil,
|
430
426
|
:inferred_scheme => 'ssh',
|
@@ -436,8 +432,8 @@ describe Gitable::URI do
|
|
436
432
|
end
|
437
433
|
|
438
434
|
describe_uri "host.xz:~user/path/to/repo.git/" do
|
439
|
-
it { subject.to_s.
|
440
|
-
it { "#{subject}".
|
435
|
+
it { expect(subject.to_s).to eq(@uri) }
|
436
|
+
it { expect("#{subject}").to eq(@uri) }
|
441
437
|
it_sets expected.merge({
|
442
438
|
:scheme => nil,
|
443
439
|
:inferred_scheme => 'ssh',
|
@@ -450,8 +446,8 @@ describe Gitable::URI do
|
|
450
446
|
end
|
451
447
|
|
452
448
|
describe_uri "user@host.xz:~user/path/to/repo.git/" do
|
453
|
-
it { subject.to_s.
|
454
|
-
it { "#{subject}".
|
449
|
+
it { expect(subject.to_s).to eq(@uri) }
|
450
|
+
it { expect("#{subject}").to eq(@uri) }
|
455
451
|
it_sets expected.merge({
|
456
452
|
:scheme => nil,
|
457
453
|
:inferred_scheme => 'ssh',
|
@@ -464,8 +460,8 @@ describe Gitable::URI do
|
|
464
460
|
end
|
465
461
|
|
466
462
|
describe_uri "host.xz:path/to/repo.git" do
|
467
|
-
it { subject.to_s.
|
468
|
-
it { "#{subject}".
|
463
|
+
it { expect(subject.to_s).to eq(@uri) }
|
464
|
+
it { expect("#{subject}").to eq(@uri) }
|
469
465
|
it_sets expected.merge({
|
470
466
|
:scheme => nil,
|
471
467
|
:inferred_scheme => 'ssh',
|
@@ -477,12 +473,12 @@ describe Gitable::URI do
|
|
477
473
|
end
|
478
474
|
|
479
475
|
describe_uri "user@host.xz:path/to/repo.git" do
|
480
|
-
it { subject.to_s.
|
481
|
-
it { "#{subject}".
|
482
|
-
it { subject.
|
483
|
-
it { subject.
|
484
|
-
it { subject.
|
485
|
-
it { subject.
|
476
|
+
it { expect(subject.to_s).to eq(@uri) }
|
477
|
+
it { expect("#{subject}").to eq(@uri) }
|
478
|
+
it { expect(subject).to_not be_equivalent('ssh://user@host.xz/path/to/repo.git') } # not absolute
|
479
|
+
it { expect(subject).to_not be_equivalent('path/to/repo.git') }
|
480
|
+
it { expect(subject).to_not be_equivalent('host.xz:path/to/repo.git') }
|
481
|
+
it { expect(subject).to_not be_equivalent('user@host.xz:/path/to/repo.git') }
|
486
482
|
it_sets expected.merge({
|
487
483
|
:scheme => nil,
|
488
484
|
:inferred_scheme => "ssh",
|
@@ -494,15 +490,15 @@ describe Gitable::URI do
|
|
494
490
|
end
|
495
491
|
|
496
492
|
describe_uri "/path/to/repo.git/" do
|
497
|
-
it { subject.to_s.
|
498
|
-
it { "#{subject}".
|
499
|
-
it { subject.inspect.
|
500
|
-
it { subject.
|
501
|
-
it { subject.
|
502
|
-
it { subject.
|
503
|
-
it { subject.
|
504
|
-
it { subject.
|
505
|
-
it { subject.
|
493
|
+
it { expect(subject.to_s).to eq(@uri) }
|
494
|
+
it { expect("#{subject}").to eq(@uri) }
|
495
|
+
it { expect(subject.inspect).to match(%r|^#<Gitable::URI #{@uri}>$|) }
|
496
|
+
it { expect(subject).to be_equivalent(@uri) }
|
497
|
+
it { expect(subject).to be_equivalent('/path/to/repo.git') }
|
498
|
+
it { expect(subject).to be_equivalent('file:///path/to/repo.git') }
|
499
|
+
it { expect(subject).to be_equivalent('file:///path/to/repo.git/') }
|
500
|
+
it { expect(subject).to_not be_equivalent('/path/to/repo/.git') }
|
501
|
+
it { expect(subject).to_not be_equivalent('file:///not/path/repo.git') }
|
506
502
|
it_sets expected.merge({
|
507
503
|
:scheme => nil,
|
508
504
|
:inferred_scheme => "file",
|
@@ -514,15 +510,15 @@ describe Gitable::URI do
|
|
514
510
|
end
|
515
511
|
|
516
512
|
describe_uri "file:///path/to/repo.git/" do
|
517
|
-
it { subject.to_s.
|
518
|
-
it { "#{subject}".
|
519
|
-
it { subject.inspect.
|
520
|
-
it { subject.
|
521
|
-
it { subject.
|
522
|
-
it { subject.
|
523
|
-
it { subject.
|
524
|
-
it { subject.
|
525
|
-
it { subject.
|
513
|
+
it { expect(subject.to_s).to eq(@uri) }
|
514
|
+
it { expect("#{subject}").to eq(@uri) }
|
515
|
+
it { expect(subject.inspect).to match(%r|^#<Gitable::URI #{@uri}>$|) }
|
516
|
+
it { expect(subject).to be_equivalent(@uri) }
|
517
|
+
it { expect(subject).to be_equivalent('/path/to/repo.git') }
|
518
|
+
it { expect(subject).to be_equivalent('file:///path/to/repo.git') }
|
519
|
+
it { expect(subject).to be_equivalent('/path/to/repo.git/') }
|
520
|
+
it { expect(subject).to_not be_equivalent('/path/to/repo/.git') }
|
521
|
+
it { expect(subject).to_not be_equivalent('file:///not/path/repo.git') }
|
526
522
|
it_sets expected.merge({
|
527
523
|
:scheme => "file",
|
528
524
|
:inferred_scheme => "file",
|
@@ -534,16 +530,16 @@ describe Gitable::URI do
|
|
534
530
|
end
|
535
531
|
|
536
532
|
describe_uri "ssh://git@github.com/martinemde/gitable.git" do
|
537
|
-
it { subject.to_s.
|
538
|
-
it { "#{subject}".
|
539
|
-
it { subject.inspect.
|
540
|
-
it { subject.
|
541
|
-
it { subject.
|
542
|
-
it { subject.
|
543
|
-
it { subject.
|
544
|
-
it { subject.
|
545
|
-
it { subject.
|
546
|
-
it { subject.
|
533
|
+
it { expect(subject.to_s).to eq(@uri) }
|
534
|
+
it { expect("#{subject}").to eq(@uri) }
|
535
|
+
it { expect(subject.inspect).to match(%r|^#<Gitable::URI #{@uri}>$|) }
|
536
|
+
it { expect(subject).to be_equivalent(@uri) }
|
537
|
+
it { expect(subject).to be_equivalent('git://github.com/martinemde/gitable.git') }
|
538
|
+
it { expect(subject).to be_equivalent('git@github.com:martinemde/gitable.git') }
|
539
|
+
it { expect(subject).to be_equivalent('git@github.com:/martinemde/gitable.git') }
|
540
|
+
it { expect(subject).to be_equivalent('https://martinemde@github.com/martinemde/gitable.git') }
|
541
|
+
it { expect(subject).to_not be_equivalent('git@othergit.com:martinemde/gitable.git') }
|
542
|
+
it { expect(subject).to_not be_equivalent('git@github.com:martinemde/not_gitable.git') }
|
547
543
|
it_sets({
|
548
544
|
:scheme => "ssh",
|
549
545
|
:user => "git",
|
@@ -563,16 +559,16 @@ describe Gitable::URI do
|
|
563
559
|
end
|
564
560
|
|
565
561
|
describe_uri "https://github.com/martinemde/gitable.git" do
|
566
|
-
it { subject.to_s.
|
567
|
-
it { "#{subject}".
|
568
|
-
it { subject.inspect.
|
569
|
-
it { subject.
|
570
|
-
it { subject.
|
571
|
-
it { subject.
|
572
|
-
it { subject.
|
573
|
-
it { subject.
|
574
|
-
it { subject.
|
575
|
-
it { subject.
|
562
|
+
it { expect(subject.to_s).to eq(@uri) }
|
563
|
+
it { expect("#{subject}").to eq(@uri) }
|
564
|
+
it { expect(subject.inspect).to match(%r|^#<Gitable::URI #{@uri}>$|) }
|
565
|
+
it { expect(subject).to be_equivalent(@uri) }
|
566
|
+
it { expect(subject).to be_equivalent('ssh://git@github.com/martinemde/gitable.git') }
|
567
|
+
it { expect(subject).to be_equivalent('git://github.com/martinemde/gitable.git') }
|
568
|
+
it { expect(subject).to be_equivalent('git@github.com:martinemde/gitable.git') }
|
569
|
+
it { expect(subject).to be_equivalent('git@github.com:/martinemde/gitable.git') }
|
570
|
+
it { expect(subject).to_not be_equivalent('git@othergit.com:martinemde/gitable.git') }
|
571
|
+
it { expect(subject).to_not be_equivalent('git@github.com:martinemde/not_gitable.git') }
|
576
572
|
it_sets({
|
577
573
|
:scheme => "https",
|
578
574
|
:user => nil,
|
@@ -590,17 +586,17 @@ describe Gitable::URI do
|
|
590
586
|
end
|
591
587
|
|
592
588
|
describe_uri "https://martinemde@github.com/martinemde/gitable.git" do
|
593
|
-
it { subject.to_s.
|
594
|
-
it { "#{subject}".
|
595
|
-
it { subject.inspect.
|
596
|
-
it { subject.
|
597
|
-
it { subject.
|
598
|
-
it { subject.
|
599
|
-
it { subject.
|
600
|
-
it { subject.
|
601
|
-
it { subject.
|
602
|
-
it { subject.
|
603
|
-
it { subject.
|
589
|
+
it { expect(subject.to_s).to eq(@uri) }
|
590
|
+
it { expect("#{subject}").to eq(@uri) }
|
591
|
+
it { expect(subject.inspect).to match(%r|^#<Gitable::URI #{@uri}>$|) }
|
592
|
+
it { expect(subject).to be_equivalent(@uri) }
|
593
|
+
it { expect(subject).to be_equivalent('ssh://git@github.com/martinemde/gitable.git') }
|
594
|
+
it { expect(subject).to be_equivalent('git://github.com/martinemde/gitable.git') }
|
595
|
+
it { expect(subject).to be_equivalent('git@github.com:martinemde/gitable.git') }
|
596
|
+
it { expect(subject).to be_equivalent('git@github.com:/martinemde/gitable.git') }
|
597
|
+
it { expect(subject).to be_equivalent('https://github.com/martinemde/gitable.git') }
|
598
|
+
it { expect(subject).to_not be_equivalent('git@othergit.com:martinemde/gitable.git') }
|
599
|
+
it { expect(subject).to_not be_equivalent('git@github.com:martinemde/not_gitable.git') }
|
604
600
|
it_sets({
|
605
601
|
:scheme => "https",
|
606
602
|
:user => "martinemde",
|
@@ -620,16 +616,16 @@ describe Gitable::URI do
|
|
620
616
|
end
|
621
617
|
|
622
618
|
describe_uri "git://github.com/martinemde/gitable.git" do
|
623
|
-
it { subject.to_s.
|
624
|
-
it { "#{subject}".
|
625
|
-
it { subject.inspect.
|
626
|
-
it { subject.
|
627
|
-
it { subject.
|
628
|
-
it { subject.
|
629
|
-
it { subject.
|
630
|
-
it { subject.
|
631
|
-
it { subject.
|
632
|
-
it { subject.
|
619
|
+
it { expect(subject.to_s).to eq(@uri) }
|
620
|
+
it { expect("#{subject}").to eq(@uri) }
|
621
|
+
it { expect(subject.inspect).to match(%r|^#<Gitable::URI #{@uri}>$|) }
|
622
|
+
it { expect(subject).to be_equivalent(@uri) }
|
623
|
+
it { expect(subject).to be_equivalent('ssh://git@github.com/martinemde/gitable.git') }
|
624
|
+
it { expect(subject).to be_equivalent('git@github.com:martinemde/gitable.git') }
|
625
|
+
it { expect(subject).to be_equivalent('git@github.com:/martinemde/gitable.git') }
|
626
|
+
it { expect(subject).to be_equivalent('https://martinemde@github.com/martinemde/gitable.git') }
|
627
|
+
it { expect(subject).to_not be_equivalent('git@othergit.com:martinemde/gitable.git') }
|
628
|
+
it { expect(subject).to_not be_equivalent('git@github.com:martinemde/not_gitable.git') }
|
633
629
|
it_sets({
|
634
630
|
:scheme => "git",
|
635
631
|
:user => nil,
|
@@ -649,15 +645,15 @@ describe Gitable::URI do
|
|
649
645
|
end
|
650
646
|
|
651
647
|
describe_uri "git@github.com:martinemde/gitable.git" do
|
652
|
-
it { subject.to_s.
|
653
|
-
it { "#{subject}".
|
654
|
-
it { subject.inspect.
|
655
|
-
it { subject.
|
656
|
-
it { subject.
|
657
|
-
it { subject.
|
658
|
-
it { subject.
|
659
|
-
it { subject.
|
660
|
-
it { subject.
|
648
|
+
it { expect(subject.to_s).to eq(@uri) }
|
649
|
+
it { expect("#{subject}").to eq(@uri) }
|
650
|
+
it { expect(subject.inspect).to match(%r|^#<Gitable::ScpURI #{@uri}>$|) }
|
651
|
+
it { expect(subject).to be_equivalent(@uri) }
|
652
|
+
it { expect(subject).to be_equivalent('ssh://git@github.com/martinemde/gitable.git') }
|
653
|
+
it { expect(subject).to be_equivalent('git://github.com/martinemde/gitable.git') }
|
654
|
+
it { expect(subject).to be_equivalent('https://martinemde@github.com/martinemde/gitable.git') }
|
655
|
+
it { expect(subject).to_not be_equivalent('git@othergit.com:martinemde/gitable.git') }
|
656
|
+
it { expect(subject).to_not be_equivalent('git@github.com:martinemde/not_gitable.git') }
|
661
657
|
it_sets({
|
662
658
|
:scheme => nil,
|
663
659
|
:inferred_scheme => 'ssh',
|
@@ -3,7 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Gitable::URI, ".heuristic_parse" do
|
4
4
|
it "returns a Gitable::URI" do
|
5
5
|
uri = "http://github.com/martinemde/gitable"
|
6
|
-
Gitable::URI.heuristic_parse(uri).
|
6
|
+
expect(Gitable::URI.heuristic_parse(uri)).to be_a_kind_of(Gitable::URI)
|
7
7
|
end
|
8
8
|
|
9
9
|
[
|
@@ -16,19 +16,19 @@ describe Gitable::URI, ".heuristic_parse" do
|
|
16
16
|
"git@github.com:martinemde/gitable.git",
|
17
17
|
].each do |uri|
|
18
18
|
it "doesn't break the already valid URI: #{uri.inspect}" do
|
19
|
-
Gitable::URI.heuristic_parse(uri).to_s.
|
19
|
+
expect(Gitable::URI.heuristic_parse(uri).to_s).to eq(uri)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
it "guesses https://github.com/martinemde/gitable.git if I pass in the url bar" do
|
24
24
|
uri = "https://github.com/martinemde/gitable"
|
25
25
|
gitable = Gitable::URI.heuristic_parse(uri)
|
26
|
-
gitable.to_s.
|
26
|
+
expect(gitable.to_s).to eq("https://github.com/martinemde/gitable.git")
|
27
27
|
end
|
28
28
|
|
29
29
|
it "isn't upset by trailing slashes" do
|
30
30
|
uri = "https://github.com/martinemde/gitable/"
|
31
31
|
gitable = Gitable::URI.heuristic_parse(uri)
|
32
|
-
gitable.to_s.
|
32
|
+
expect(gitable.to_s).to eq("https://github.com/martinemde/gitable.git/")
|
33
33
|
end
|
34
34
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,52 +1,46 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Martin Emde
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-08-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: addressable
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 2.2.7
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: 2.2.7
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rspec
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: '2.
|
33
|
+
version: '2.11'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: '2.
|
40
|
+
version: '2.11'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: simplecov
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -101,28 +92,28 @@ files:
|
|
101
92
|
- spec/heuristic_parse_spec.rb
|
102
93
|
- spec/spec_helper.rb
|
103
94
|
homepage: http://github.org/martinemde/gitable
|
104
|
-
licenses:
|
95
|
+
licenses:
|
96
|
+
- MIT
|
97
|
+
metadata: {}
|
105
98
|
post_install_message:
|
106
99
|
rdoc_options: []
|
107
100
|
require_paths:
|
108
101
|
- lib
|
109
102
|
required_ruby_version: !ruby/object:Gem::Requirement
|
110
|
-
none: false
|
111
103
|
requirements:
|
112
104
|
- - ! '>='
|
113
105
|
- !ruby/object:Gem::Version
|
114
106
|
version: '0'
|
115
107
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
-
none: false
|
117
108
|
requirements:
|
118
109
|
- - ! '>='
|
119
110
|
- !ruby/object:Gem::Version
|
120
111
|
version: '0'
|
121
112
|
requirements: []
|
122
113
|
rubyforge_project:
|
123
|
-
rubygems_version:
|
114
|
+
rubygems_version: 2.0.6
|
124
115
|
signing_key:
|
125
|
-
specification_version:
|
116
|
+
specification_version: 4
|
126
117
|
summary: Addressable::URI for Git. Gitable::URI.
|
127
118
|
test_files:
|
128
119
|
- spec/describe_uri.rb
|