Class: PublicSuffixList::CacheFile

Inherits:
Object
  • Object
show all
Defined in:
lib/public_suffix_list/cache_file.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ CacheFile

Returns a new instance of CacheFile.



5
6
7
# File 'lib/public_suffix_list/cache_file.rb', line 5

def initialize(config)
  @config = config
end

Instance Method Details

#[](key) ⇒ Object



41
42
43
# File 'lib/public_suffix_list/cache_file.rb', line 41

def [](key)
  data[key]
end

#[]=(key, value) ⇒ Object



45
46
47
# File 'lib/public_suffix_list/cache_file.rb', line 45

def []=(key, value)
  data[key] = value and dump_data
end

#cache?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/public_suffix_list/cache_file.rb', line 9

def cache?
  @config.cache_dir && File.directory?(@config.cache_dir) && true
end

#dataObject



33
34
35
# File 'lib/public_suffix_list/cache_file.rb', line 33

def data
  @data or (load_data and @data) or @data = {:created_at => Time.now, :tag => rand(36**8).to_s(36)}
end

#data=(data) ⇒ Object



37
38
39
# File 'lib/public_suffix_list/cache_file.rb', line 37

def data=(data)
  @data = data and dump_data
end

#deleteObject



21
22
23
# File 'lib/public_suffix_list/cache_file.rb', line 21

def delete
  File.delete(file) if exist?
end

#dump_dataObject



29
30
31
# File 'lib/public_suffix_list/cache_file.rb', line 29

def dump_data
  open(file, "w") { |f| Marshal.dump(@data, f) } if cache?
end

#exist?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/public_suffix_list/cache_file.rb', line 17

def exist?
  File.exist?(file) if cache?
end

#expired?Boolean

Returns:

  • (Boolean)


49
50
51
# 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

#fileObject



13
14
15
# File 'lib/public_suffix_list/cache_file.rb', line 13

def file
  File.join(@config.cache_dir, URI.parse(@config.url).path.split("/").last + ".cache") if cache?
end

#load_dataObject



25
26
27
# File 'lib/public_suffix_list/cache_file.rb', line 25

def load_data
  open(file, "r") { |f| @data = Marshal.load(f) } if exist?
end