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