gitable 0.2.4 → 0.3.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.
- 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
|