Sha256: 577d62409a6a088eda405a695413745578b8ee8371cba23f88d526641fbf3bd9

Contents?: true

Size: 704 Bytes

Versions: 5

Compression:

Stored size: 704 Bytes

Contents

module Asynchronic
  module DataStore
    class LazyValue < TransparentProxy

      def initialize(data_store, key)
        @data_store_class = data_store.class
        @data_store_connection = data_store.connection
        @key = key
      end

      def reload
        @value = nil
        self
      end

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

      def data_store
        @data_store_class.connect @data_store_connection
      end

      def to_value
        __getobj__
      end

      private

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

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
asynchronic-0.3.1 lib/asynchronic/data_store/lazy_value.rb
asynchronic-0.3.0 lib/asynchronic/data_store/lazy_value.rb
asynchronic-0.2.3 lib/asynchronic/data_store/lazy_value.rb
asynchronic-0.2.2 lib/asynchronic/data_store/lazy_value.rb
asynchronic-0.2.1 lib/asynchronic/data_store/lazy_value.rb