librariesio-url-parser 1.0.5 → 1.0.6
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 +24 -18
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0552e054ac1b05ff114f7d95cf7281508ee65500356810168c5d4c56587524d6
|
4
|
+
data.tar.gz: 1a1dc645db555eb8935de55c6cf11ecebe3448bcb0325a49b9e850114006c92e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c479b95802f3d673fa23fbdd8fcc67fd36ed51c2fdf9f640147ebaa276466f9a8112111ba8a796ceb918e9df1b97d97dabcbfa2abe7e6df63e2a8911a53b5837
|
7
|
+
data.tar.gz: b9daf84d0a9347979489f1289d6608ea4f44125a607b37cba2d5065db56be2e4b551349f1cd585ee9f520f192d516dd264b8a91faa0c7da03fb92fd601689c7e
|
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
|
@@ -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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Pace
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.14.1
|
69
|
-
description:
|
69
|
+
description:
|
70
70
|
email:
|
71
71
|
- matt.pace@tidelift.com
|
72
72
|
executables: []
|
@@ -98,7 +98,7 @@ licenses:
|
|
98
98
|
- AGPL-3.0
|
99
99
|
metadata:
|
100
100
|
rubygems_mfa_required: 'true'
|
101
|
-
post_install_message:
|
101
|
+
post_install_message:
|
102
102
|
rdoc_options: []
|
103
103
|
require_paths:
|
104
104
|
- lib
|
@@ -113,8 +113,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
|
-
rubygems_version: 3.0.
|
117
|
-
signing_key:
|
116
|
+
rubygems_version: 3.0.3
|
117
|
+
signing_key:
|
118
118
|
specification_version: 4
|
119
119
|
summary: Parse the URL for various repositories tracked by libraries.io
|
120
120
|
test_files: []
|