Class: Sym::App::Password::Cache
- Includes:
- Singleton, Extensions::WithRetry, Extensions::WithTimeout
- Defined in:
- lib/sym/app/password/cache.rb
Overview
Provider is the primary implementation of the underlying cache. It should support the following API:
def initialize(*args, **opts, &block)
end
def read(key)
end
def write(key, value, expire_timeout_seconds)
end
it must be intantiatable via #new
Instance Attribute Summary collapse
- 
  
    
      #enabled  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute enabled. 
- 
  
    
      #provider  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute provider. 
- 
  
    
      #timeout  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute timeout. 
- 
  
    
      #verbose  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute verbose. 
Instance Method Summary collapse
Methods included from Extensions::WithTimeout
Methods included from Extensions::WithRetry
Instance Attribute Details
#enabled ⇒ Object
Returns the value of attribute enabled.
| 33 34 35 | # File 'lib/sym/app/password/cache.rb', line 33 def enabled @enabled end | 
#provider ⇒ Object
Returns the value of attribute provider.
| 33 34 35 | # File 'lib/sym/app/password/cache.rb', line 33 def provider @provider end | 
#timeout ⇒ Object
Returns the value of attribute timeout.
| 33 34 35 | # File 'lib/sym/app/password/cache.rb', line 33 def timeout @timeout end | 
#verbose ⇒ Object
Returns the value of attribute verbose.
| 33 34 35 | # File 'lib/sym/app/password/cache.rb', line 33 def verbose @verbose end | 
Instance Method Details
#[](key) ⇒ Object
| 44 45 46 47 | # File 'lib/sym/app/password/cache.rb', line 44 def [](key) cache = self operation { cache.provider.read(cache.md5(key)) } end | 
#[]=(key, value) ⇒ Object
| 49 50 51 52 | # File 'lib/sym/app/password/cache.rb', line 49 def []=(key, value) cache = self operation { cache.provider.write(cache.md5(key), value, cache.timeout) } end | 
#configure(**opts) ⇒ Object
| 35 36 37 38 39 40 41 42 | # File 'lib/sym/app/password/cache.rb', line 35 def configure(**opts) self.enabled = opts[:enabled] self.verbose = opts[:verbose] self.timeout = opts[:timeout] || ::Sym::Configuration.config.password_cache_timeout self.provider = Providers.provider(opts[:provider], **(opts[:provider_opts] || {})) self.enabled = false unless self.provider self end | 
#md5(string) ⇒ Object
| 54 55 56 | # File 'lib/sym/app/password/cache.rb', line 54 def md5(string) Digest::MD5.base64digest(string) end |