Sha256: e0f6ce460547ac96f00ae7e37f8bc0e12d895bc705bfb252ec3e99de4f3a30aa

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

module Scrooge
  module Storage
   
    autoload :Memory, 'scrooge/storage/memory'
    
    class Base < Scrooge::Base
      class NotImplemented < StandardError
      end 
      
      # A Single Mutex for all Storage subclasses as their's only one storage instance.
      #
      GUARD = Mutex.new
      
      NAMESPACE = 'scrooge_storage'.freeze 
          
      class << self
        
        # Yields a storage instance from a given signature.
        #
        def instantiate( storage_signature )
          "scrooge/storage/#{storage_signature.to_s}".to_const!
        end
        
      end    

      # Retrieve a given tracker from storage.
      #                 
      def read( tracker )
        raise NotImplemented
      end      
            
      # Persist a given tracker to storage.
      #      
      def write( tracker, buffered = true )
        raise NotImplemented
      end
      
      # Namespace lookup keys. 
      #
      def expand_key( key )
        "#{NAMESPACE}/#{key}"
      end      
      
    end
  end
end  

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
methodmissing-scrooge-1.0.3 lib/scrooge/storage/base.rb
methodmissing-scrooge-1.0.4 lib/scrooge/storage/base.rb