Sha256: e1d654fef6a05cd7fd4f8e33e538baccc44f5f1cf4509dfc33b50aa71106b616

Contents?: true

Size: 394 Bytes

Versions: 583

Compression:

Stored size: 394 Bytes

Contents

require 'rbbt/tsv'
require 'rbbt/persist'
module TCCache
  def self.open(file, type = :single)
    database = Persist.open_tokyocabinet(file, true, type, "HDB")
    database.extend TCCache
  end

  def cache(key)

    self.read_and_close do
      return self[key] if self.include? key
    end

    value = yield

    self.write_and_close do
      self[key] = value
    end

    value
  end
end

Version data entries

583 entries across 583 versions & 1 rubygems

Version Path
rbbt-util-5.37.9 lib/rbbt/util/tc_cache.rb
rbbt-util-5.37.8 lib/rbbt/util/tc_cache.rb
rbbt-util-5.37.6 lib/rbbt/util/tc_cache.rb
rbbt-util-5.37.4 lib/rbbt/util/tc_cache.rb
rbbt-util-5.37.3 lib/rbbt/util/tc_cache.rb
rbbt-util-5.37.1 lib/rbbt/util/tc_cache.rb
rbbt-util-5.37.0 lib/rbbt/util/tc_cache.rb
rbbt-util-5.36.0 lib/rbbt/util/tc_cache.rb
rbbt-util-5.35.4 lib/rbbt/util/tc_cache.rb
rbbt-util-5.35.3 lib/rbbt/util/tc_cache.rb
rbbt-util-5.35.2 lib/rbbt/util/tc_cache.rb
rbbt-util-5.35.1 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.27 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.26 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.25 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.24 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.23 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.22 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.21 lib/rbbt/util/tc_cache.rb
rbbt-util-5.34.20 lib/rbbt/util/tc_cache.rb