Sha256: 5809b577ce665a6d84009ac30e23df3a0e82132cb555fc2be9b1f925de5487d7

Contents?: true

Size: 797 Bytes

Versions: 4

Compression:

Stored size: 797 Bytes

Contents

module Asynchronic
  module DataStore
    class LazyValue < TransparentProxy

      def initialize(data_store, key)
        @data_store_class = data_store.class
        @data_store_connection_args = data_store.connection_args
        @key = key
      end

      def reload
        @value = nil
        self
      end

      def inspect
        "#<#{proxy_class} @data_store_class=#{data_store_class} @data_store_connection_args=#{data_store_connection_args} @key=#{key}>"
      end

      def data_store
        data_store_class.connect(*data_store_connection_args)
      end

      def to_value
        __getobj__
      end

      private

      attr_reader :data_store_class, :data_store_connection_args, :key

      def __getobj__
        @value ||= data_store[key]
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
asynchronic-4.0.3 lib/asynchronic/data_store/lazy_value.rb
asynchronic-4.0.2 lib/asynchronic/data_store/lazy_value.rb
asynchronic-4.0.1 lib/asynchronic/data_store/lazy_value.rb
asynchronic-4.0.0 lib/asynchronic/data_store/lazy_value.rb