Method: Arrow::Cache#initialize
- Defined in:
- lib/arrow/cache.rb
#initialize(name, config = {}, &cleanup) ⇒ Cache
Create a new cache. This merges the DefaultConfig with the specified values and transforms camelCased keys into under_barred ones.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/arrow/cache.rb', line 53 def initialize( name, config={}, &cleanup ) @name = name # Merge defaults and specified values merged = DefaultConfig.merge( config ) # Transform the config hash into the form the superclass expects merged.each_key do |key| lckey = key.to_s.gsub( /(.)([A-Z])/ ) {|match| match[0,1] + "_" + match[1,1].downcase }.to_sym next if key == lckey merged[ lckey ] = merged.delete( key ) end # Register this instance with the class for introspection (costs # much less than ObjectSpace.each_object). obj = super( merged, &cleanup ) self.class.extent << obj return obj end |