class FeedTorrents::Store

Public Instance Methods

persist(item) click to toggle source
# File lib/feed_torrents/store.rb, line 16
def persist(item)
  pstore.transaction { pstore[item] = Time.now.to_i }
end
present?(item) click to toggle source
# File lib/feed_torrents/store.rb, line 12
def present?(item)
  pstore.transaction(true) { return !!pstore[item] }
end
prune() click to toggle source
# File lib/feed_torrents/store.rb, line 20
def prune
  prune_count = 0

  pstore.transaction do
    pstore.roots.each do |item|
      if outdated?(item)
        pstore.delete(item)
        prune_count += 1
      end
    end
  end

  if prune_count > 0
    info "Pruned #{prune_count} items"
  end
end

Private Instance Methods

outdated?(time) click to toggle source
# File lib/feed_torrents/store.rb, line 47
def outdated?(time)
  (Time.now.to_i - time.to_i < 7776000) # older than 90 days is outdated
end
pstore() click to toggle source
# File lib/feed_torrents/store.rb, line 39
def pstore
  @pstore ||= PStore.new(pstore_file)
end
pstore_file() click to toggle source
# File lib/feed_torrents/store.rb, line 43
def pstore_file
  File.expand_path(FeedTorrents.configuration.datastore)
end