class PublicSuffixList::CacheFile

Public Class Methods

new(config) click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 6
def initialize(config)
  @config = config
  @data = {}
end

Public Instance Methods

[](key) click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 41
def [](key)
  data[key]
end
[]=(key, value) click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 45
def []=(key, value)
  data.merge!({key => value, created_at: Time.now, tag: rand(2821109907456).to_s(36)}) and dump_data
end
cache?() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 11
def cache?
  @config.cache_dir && File.directory?(@config.cache_dir) && true || false
end
data() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 36
def data
  @data.empty? and load_data
  @data
end
delete() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 24
def delete
  File.delete(file) if exist?
end
dump_data() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 32
def dump_data
  open(file, "w") { |f| Marshal.dump(@data, f) } if cache?
end
exist?() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 20
def exist?
  cache? && File.exist?(file) && true || false
end
expired?() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 49
def expired?
  !cache? or !([0, nil].include?(@config.cache_expiry_period) or data[:created_at] + @config.cache_expiry_period > Time.now)
end
file() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 15
def file
  path = URI.parse(@config.url)&.path&.split("/")&.last || ""
  File.join(@config.cache_dir, path + ".cache")
end
load_data() click to toggle source
# File lib/public_suffix_list/cache_file.rb, line 28
def load_data
  open(file, "r") { |f| @data = Marshal.load(f) } if exist?
end