class RRImm::Cache
Constants
- DEFAULT_TIMESTAMP
- INVALID_PATTERNS
- REMOVE_PATTERNS
Attributes
name[RW]
path[RW]
Public Class Methods
new(name)
click to toggle source
# File lib/rrimm/cache.rb, line 19 def initialize(name) @name = name @path = name end
Public Instance Methods
cache_file(feed)
click to toggle source
# File lib/rrimm/cache.rb, line 31 def cache_file(feed) filename = sanitize(feed.uri) File.join(path, filename) end
read(feed)
click to toggle source
# File lib/rrimm/cache.rb, line 36 def read(feed) file_path = cache_file(feed) return DEFAULT_TIMESTAMP unless File.exists?(file_path) timestamp = File.read(file_path) timestamp.to_i end
save(feed, timestamp, force=true)
click to toggle source
# File lib/rrimm/cache.rb, line 44 def save(feed, timestamp, force=true) ensure_cache_dir! file_path = cache_file(feed) File.write(file_path, timestamp) if (force or timestamp != read(feed)) end
Private Instance Methods
ensure_cache_dir!()
click to toggle source
# File lib/rrimm/cache.rb, line 60 def ensure_cache_dir! @cache_dir_exists ||= Dir.exists?(path) || Dir.mkdir(path) end
sanitize(name)
click to toggle source
# File lib/rrimm/cache.rb, line 51 def sanitize(name) cleaned_name = INVALID_PATTERNS.inject(name) do |memo,pattern| memo.gsub(pattern, '_') end REMOVE_PATTERNS.inject(cleaned_name) do |memo,pattern| memo.gsub(pattern, '') end end