public-suffix-list 0.0.5 → 0.0.6
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.
- data/lib/public_suffix_list.rb +15 -21
- data/lib/public_suffix_list/cache_file.rb +8 -0
- metadata +2 -2
data/lib/public_suffix_list.rb
CHANGED
@@ -6,7 +6,7 @@ require "public_suffix_list/parser.rb"
|
|
6
6
|
|
7
7
|
class PublicSuffixList
|
8
8
|
|
9
|
-
VERSION = "0.0.
|
9
|
+
VERSION = "0.0.6"
|
10
10
|
|
11
11
|
def self.config
|
12
12
|
@@config ||= Config.new
|
@@ -39,54 +39,48 @@ class PublicSuffixList
|
|
39
39
|
@cache_file = CacheFile.new(@config)
|
40
40
|
end
|
41
41
|
if @cache_file and @cache_file.exist?
|
42
|
-
uncache or (
|
42
|
+
uncache or (fetch and cache)
|
43
43
|
elsif @cache_file
|
44
|
-
|
44
|
+
fetch and cache
|
45
45
|
else
|
46
|
-
|
46
|
+
fetch
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
def rules
|
51
|
+
@rules
|
52
|
+
end
|
53
|
+
|
50
54
|
def split(domain)
|
51
55
|
domain = domain.split(".")
|
52
|
-
result = best(match(domain,
|
56
|
+
result = best(match(domain, rules))
|
53
57
|
[gimme!(domain, result.size), gimme!(domain), domain].reverse.map { |d| d ? d.join(".") : "" }
|
54
58
|
end
|
55
59
|
|
56
60
|
def tld(domain)
|
57
61
|
domain = domain.split(".")
|
58
|
-
result = best(match(domain,
|
62
|
+
result = best(match(domain, rules))
|
59
63
|
gimme!(domain, result.size).join(".")
|
60
64
|
end
|
61
65
|
|
62
66
|
def cdn(domain)
|
63
67
|
domain = domain.split(".")
|
64
|
-
result = best(match(domain,
|
68
|
+
result = best(match(domain, rules))
|
65
69
|
gimme!(domain, result.size + 1).join(".")
|
66
70
|
end
|
67
71
|
|
68
72
|
private
|
69
73
|
|
70
|
-
def
|
71
|
-
|
74
|
+
def fetch
|
75
|
+
@rules = Parser.parse(open(@config.effective_tld_names_url))
|
72
76
|
end
|
73
77
|
|
74
78
|
def cache
|
75
|
-
@
|
76
|
-
open(File.join(@config.cache_dir, name), "w") { |f| Marshal.dump(@cache, f) }
|
79
|
+
@cache_file[:rules] = rules
|
77
80
|
end
|
78
81
|
|
79
82
|
def uncache
|
80
|
-
|
81
|
-
@rules = @cache[:rules] unless expired?
|
82
|
-
end
|
83
|
-
|
84
|
-
def expired?
|
85
|
-
!(@config.cache_expiry_period.nil? or @config.cache_expiry_period == 0 or Time.now < @cache[:created_at] + @config.cache_expiry_period)
|
86
|
-
end
|
87
|
-
|
88
|
-
def download
|
89
|
-
@rules = Parser.parse(open(@config.effective_tld_names_url))
|
83
|
+
rules = @cache_file[:rules] unless @cache_file.expired?
|
90
84
|
end
|
91
85
|
|
92
86
|
def match(domain, rules)
|
@@ -38,6 +38,14 @@ class PublicSuffixList
|
|
38
38
|
@data = data and dump_data
|
39
39
|
end
|
40
40
|
|
41
|
+
def [](key)
|
42
|
+
data[key]
|
43
|
+
end
|
44
|
+
|
45
|
+
def []=(key, value)
|
46
|
+
data[key] = value and dump_data
|
47
|
+
end
|
48
|
+
|
41
49
|
def expired?
|
42
50
|
!cache? or !([0, nil].include?(@config.cache_expiry_period) or data[:created_at] + @config.cache_expiry_period > Time.now)
|
43
51
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: public-suffix-list
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Todd Sundsted
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-13 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|