Class: Vedeu::AssociativeStore

Inherits:
Object
  • Object
show all
Includes:
Store
Defined in:
lib/vedeu/storage/associative_store.rb

Overview

Name/Value storage.

name: [value]

Instance Method Summary collapse

Methods included from Store

#each, #empty?, #exists?, #reset, #size, #storage

Constructor Details

#initialize(storage = {}) ⇒ Vedeu::AssociativeStore

Parameters:

  • storage (Hash) (defaults to: {})


12
13
14
# File 'lib/vedeu/storage/associative_store.rb', line 12

def initialize(storage = {})
  @storage = storage
end

Instance Method Details

#in_memoryHash (private)

Returns:

  • (Hash)


40
41
42
# File 'lib/vedeu/storage/associative_store.rb', line 40

def in_memory
  {}
end

#load(name) ⇒ Object

Parameters:

  • name (String)


17
18
19
20
21
# File 'lib/vedeu/storage/associative_store.rb', line 17

def load(name)
  return nil if empty?

  storage[name]
end

#save(data, name = nil) ⇒ Object

Parameters:

  • data (Object)
  • name (String|Symbol) (defaults to: nil)


25
26
27
28
29
30
31
32
33
34
35
# File 'lib/vedeu/storage/associative_store.rb', line 25

def save(data, name = nil)
  if name
    storage[name] = data

  elsif data.respond_to?(:name)
    storage[data.name] = data

  end

  storage
end