def get_local_storage(data_type, full_name, args = {})
      @storage ||= {}
      @storage[full_name] ||= case data_type.to_sym
                              when :array
                                []
                              when :hash
                                {}
                              when :value
                                LocalValue.new
                              when :lock
                                LocalLock.new(full_name, {:expiration => 60, :timeout => 0.1}.merge(args))
                              when :stamped
                                Stamped.new(full_name.sub("#{key}_", "").to_sym, get_local_storage(:value, full_name), self)
                              else
                                raise TypeError.new("Unsupported caching data type encountered: #{data_type}")
                              end
    end
def get_local_storage(data_type, full_name, args = {})
      @storage ||= {}
      @storage[full_name] ||= case data_type.to_sym
                              when :array
                                []
                              when :hash
                                {}
                              when :value
                                LocalValue.new
                              when :lock
                                LocalLock.new(full_name, {:expiration => 60, :timeout => 0.1}.merge(args))
                              when :stamped
                                Stamped.new(full_name.sub("#{key}_", "").to_sym, get_local_storage(:value, full_name), self)
                              else
                                raise TypeError.new("Unsupported caching data type encountered: #{data_type}")
                              end
    end
Fetch item from local storage

 @param data_type [Symbol]
 @param full_name [Symbol]
 @param args [Hash]
 @return [Object]
 @todo make proper singleton for local storage