flare-url 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,6 @@
1
+ begin
2
+ require "bundler/setup"
3
+ require "rake"
4
+ rescue LoadError
5
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
6
+ end
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
@@ -0,0 +1,11 @@
1
+ # Ruby
2
+ require "uri"
3
+
4
+ # 3rd Party
5
+ require "addressable"
6
+ require "mail"
7
+ require "public_suffix"
8
+
9
+ # Url
10
+ require "flare/mail"
11
+ require "flare/url"
data/readme.md ADDED
@@ -0,0 +1,3 @@
1
+ # flare-url
2
+
3
+ Url and mail parser for ruby.
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: []