Class: ActiveSupport::CachingKeyGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/active_support/key_generator.rb

Overview

Caching Key Generator

CachingKeyGenerator is a wrapper around KeyGenerator which allows users to avoid re-executing the key generation process when it’s called using the same salt and key_size.

Instance Method Summary collapse

Constructor Details

#initialize(key_generator) ⇒ CachingKeyGenerator

Returns a new instance of CachingKeyGenerator.



56
57
58
59
# File 'lib/active_support/key_generator.rb', line 56

def initialize(key_generator)
  @key_generator = key_generator
  @cache_keys = Concurrent::Map.new
end

Instance Method Details

#generate_key(*args) ⇒ Object

Returns a derived key suitable for use.



62
63
64
# File 'lib/active_support/key_generator.rb', line 62

def generate_key(*args)
  @cache_keys[args.join("|")] ||= @key_generator.generate_key(*args)
end