librariesio-url-parser 1.0.5 → 1.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/android_googlesource_url_parser.rb +2 -0
- data/lib/apache_git_wip_url_parser.rb +2 -0
- data/lib/apache_gitbox_url_parser.rb +2 -0
- data/lib/apache_svn_url_parser.rb +2 -0
- data/lib/eclipse_git_url_parser.rb +2 -0
- data/lib/librariesio-url-parser.rb +1 -1
- data/lib/sourceforge_url_parser.rb +1 -0
- data/lib/url_parser.rb +26 -20
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bae64bd33bdd5556d8d16472bf9c815813375f60254335b0e39c8e80a669249f
|
4
|
+
data.tar.gz: 06b4b0e89906bcf89d8679e96c48028991a0f77eeb200950b617c02a2b8671ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19ab606c3ee731d48df907595b9a6ccaf01ded2dd4606928744766f729ea1718d776a1be481f12c9cae34f2e0b4b2109fc12ce895cc016b499c2767661c94cf0
|
7
|
+
data.tar.gz: 3aab091fb8161ea1d928cfd51eddbfc66b9b8a6d8f1c446e247f1c3417a5908a27a07d14057656835a73d98d6e276ad08da1467f2dd394f6a1c5fbe2e6fd991d
|
data/Gemfile.lock
CHANGED
data/lib/url_parser.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class URLParser
|
4
|
+
CASE_SENSITIVE = false
|
5
|
+
|
4
6
|
def self.parse(url)
|
5
7
|
new(url).parse
|
6
8
|
end
|
@@ -31,7 +33,7 @@ class URLParser
|
|
31
33
|
def self.try_all(url)
|
32
34
|
# run through all the subclasses and try their parse method
|
33
35
|
# exit the reduce at the first non nil value and return that
|
34
|
-
|
36
|
+
all_parsers.reduce(nil) do |_, n|
|
35
37
|
r = n.parse_to_full_url(url)
|
36
38
|
break r if r
|
37
39
|
end
|
@@ -53,6 +55,27 @@ class URLParser
|
|
53
55
|
[full_domain, path].join('/')
|
54
56
|
end
|
55
57
|
|
58
|
+
def self.case_sensitive?
|
59
|
+
self::CASE_SENSITIVE
|
60
|
+
end
|
61
|
+
|
62
|
+
# This computation is memoized because it is expensive. This prevents use cases which require using
|
63
|
+
# .try_all in a tight loop. However, if this class is required directly (without requiring any subparsers),
|
64
|
+
# this method will memoize an empty array. It is recommended to simply require librariesio-url-parser.rb directly.
|
65
|
+
# This is the default behavior when installing this gem.
|
66
|
+
def self.all_parsers
|
67
|
+
@all_parsers ||=
|
68
|
+
begin
|
69
|
+
all_parsers = []
|
70
|
+
ObjectSpace.each_object(singleton_class) do |k|
|
71
|
+
next if k.singleton_class?
|
72
|
+
|
73
|
+
all_parsers.unshift k unless k == self
|
74
|
+
end
|
75
|
+
all_parsers
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
56
79
|
private
|
57
80
|
|
58
81
|
attr_accessor :url
|
@@ -73,9 +96,9 @@ class URLParser
|
|
73
96
|
|
74
97
|
remove_subdomain
|
75
98
|
remove_domain
|
76
|
-
remove_git_extension
|
77
99
|
remove_git_scheme
|
78
100
|
remove_extra_segments
|
101
|
+
remove_git_extension
|
79
102
|
end
|
80
103
|
|
81
104
|
def format_url
|
@@ -145,7 +168,7 @@ class URLParser
|
|
145
168
|
end
|
146
169
|
|
147
170
|
def remove_git_extension
|
148
|
-
url.gsub!(/(\.git|\/)$/i, '')
|
171
|
+
Array(url).last&.gsub!(/(\.git|\/)$/i, '')
|
149
172
|
end
|
150
173
|
|
151
174
|
def remove_git_scheme
|
@@ -167,21 +190,4 @@ class URLParser
|
|
167
190
|
def remove_whitespace
|
168
191
|
url.gsub!(/\s/, '')
|
169
192
|
end
|
170
|
-
|
171
|
-
# This computation is memoized because it is expensive. This prevents use cases which require using
|
172
|
-
# .try_all in a tight loop. However, if this class is required directly (without requiring any subparsers),
|
173
|
-
# this method will memoize an empty array. It is recommended to simply require librariesio-url-parser.rb directly.
|
174
|
-
# This is the default behavior when installing this gem.
|
175
|
-
private_class_method def self.descendants
|
176
|
-
@descendants ||=
|
177
|
-
begin
|
178
|
-
descendants = []
|
179
|
-
ObjectSpace.each_object(singleton_class) do |k|
|
180
|
-
next if k.singleton_class?
|
181
|
-
|
182
|
-
descendants.unshift k unless k == self
|
183
|
-
end
|
184
|
-
descendants
|
185
|
-
end
|
186
|
-
end
|
187
193
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: librariesio-url-parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Pace
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|