flare-url 0.1.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 +7 -0
- data/Rakefile +6 -0
- data/lib/flare/mail.rb +21 -0
- data/lib/flare/url.rb +44 -0
- data/lib/flare-url.rb +11 -0
- data/readme.md +3 -0
- metadata +104 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6a4fbc4672dd1db7618e90563e1052b81dfa3e98
|
4
|
+
data.tar.gz: 9a2d16945a05ef687cbcea9408d48993a633a3e5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0b178be6b6576b34aebad1611be4c59aae643dc3214e350858eade76608b7a58b4137b1c4f808d037de01a4f9358d4a39a56b451e418df243ca927e05f2c97ed
|
7
|
+
data.tar.gz: 0d8e9676a23d74d8ad6a467086d4f8ca9cc21bc8c63bf900e65c2f8f09085f4cb5f39d86157f485adb413dce44efcd42e41e35730bb0436e65b1a198540de103
|
data/Rakefile
ADDED
data/lib/flare/mail.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Flare
|
2
|
+
class Mail
|
3
|
+
|
4
|
+
#
|
5
|
+
# Parses a string into a Address object or returns nil if it's invalid.
|
6
|
+
#
|
7
|
+
def self.parsed(string)
|
8
|
+
::Mail::Address.new(string)
|
9
|
+
rescue ::Mail::Field::ParseError => error
|
10
|
+
nil
|
11
|
+
end
|
12
|
+
|
13
|
+
#
|
14
|
+
# Attempts to parse an email string to get the domain from it.
|
15
|
+
#
|
16
|
+
def self.domain(string)
|
17
|
+
parsed(string)&.domain
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
data/lib/flare/url.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
module Flare
|
2
|
+
class Url
|
3
|
+
|
4
|
+
#
|
5
|
+
# Base parse method which handles invalid uris.
|
6
|
+
#
|
7
|
+
def self.parsed(url)
|
8
|
+
Addressable::URI.heuristic_parse(url)
|
9
|
+
rescue Addressable::URI::InvalidURIError => error
|
10
|
+
nil
|
11
|
+
end
|
12
|
+
|
13
|
+
#
|
14
|
+
# Uses PublicSuffix to lookup validated domain names.
|
15
|
+
#
|
16
|
+
def self.parse_host(string)
|
17
|
+
PublicSuffix.parse(host(string))
|
18
|
+
end
|
19
|
+
|
20
|
+
#
|
21
|
+
# Returns if a url is valid after being parsed.
|
22
|
+
#
|
23
|
+
def self.is_valid?(url)
|
24
|
+
%w(http https).include?(scheme(url))
|
25
|
+
end
|
26
|
+
|
27
|
+
#
|
28
|
+
# Attempts to parse a string to get the `host` value from it. Typically
|
29
|
+
# this value is in the form of `google.com` or `inbox.google.com` with
|
30
|
+
# subdomains.
|
31
|
+
#
|
32
|
+
def self.host(string)
|
33
|
+
parsed(string)&.host
|
34
|
+
end
|
35
|
+
|
36
|
+
#
|
37
|
+
# Returns the scheme (http, https, ftp) for a url.
|
38
|
+
#
|
39
|
+
def self.scheme(url)
|
40
|
+
parsed(url)&.scheme
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
data/lib/flare-url.rb
ADDED
data/readme.md
ADDED
metadata
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: flare-url
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Mark Miyashita
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: addressable
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.4.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.4.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: mail
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.6.4
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.6.4
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: public_suffix
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.5.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.5.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 10.5.0
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 10.5.0
|
69
|
+
description: Url and Mail string parsers.
|
70
|
+
email: negativetwelve@gmail.com
|
71
|
+
executables: []
|
72
|
+
extensions: []
|
73
|
+
extra_rdoc_files: []
|
74
|
+
files:
|
75
|
+
- Rakefile
|
76
|
+
- lib/flare-url.rb
|
77
|
+
- lib/flare/mail.rb
|
78
|
+
- lib/flare/url.rb
|
79
|
+
- readme.md
|
80
|
+
homepage: http://markmiyashita.com
|
81
|
+
licenses:
|
82
|
+
- MIT
|
83
|
+
metadata: {}
|
84
|
+
post_install_message:
|
85
|
+
rdoc_options: []
|
86
|
+
require_paths:
|
87
|
+
- lib
|
88
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 2.3.0
|
93
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 2.6.7
|
98
|
+
requirements: []
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 2.6.7
|
101
|
+
signing_key:
|
102
|
+
specification_version: 4
|
103
|
+
summary: Url and Mail parsers.
|
104
|
+
test_files: []
|