Sha256: fefb30f7ffdfe858363701517bd1f50e8fa28408d1d1800c95272741d62f650b

Contents?: true

Size: 538 Bytes

Versions: 3

Compression:

Stored size: 538 Bytes

Contents

require "blobby/key_constraint"
require "fileutils"
require "forwardable"
require "pathname"
require "tempfile"

module Blobby

  # A BLOB store that decorates another store and allows key transformation
  #
  class KeyTransformingStore < SimpleDelegator

    def initialize(store, &key_transformation_strategy)
      super(store)
      @key_transformation_strategy = key_transformation_strategy
    end

    def [](key)
      transformed_key = @key_transformation_strategy.call(key)
      __getobj__[transformed_key]
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
blobby-1.1.0 lib/blobby/key_transforming_store.rb
blobby-1.0.1 lib/blobby/key_transforming_store.rb
blobby-1.0.0 lib/blobby/key_transforming_store.rb