Sha256: fc45bebef5d809e0fd8183e18b12d09e381bf24c7986f6256ae7696d81adee82
Contents?: true
Size: 918 Bytes
Versions: 3
Compression:
Stored size: 918 Bytes
Contents
require 'pstore' module FeedTorrents def self.store Store.instance end class Store include Singleton include LogFunctions def present?(item) pstore.transaction(true) { return !!pstore[item] } end def persist(item) pstore.transaction { pstore[item] = Time.now.to_i } end 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 def pstore @pstore ||= PStore.new(pstore_file) end def pstore_file File.expand_path(FeedTorrents.configuration.datastore) end def outdated?(time) (Time.now.to_i - time < 7776000) # older than 90 days is outdated end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
feed_torrents-0.1.2 | lib/feed_torrents/store.rb |
feed_torrents-0.1.1 | lib/feed_torrents/store.rb |
feed_torrents-0.1.0 | lib/feed_torrents/store.rb |