Class: Vedeu::ConveyorStore
- Inherits:
-
Object
- Object
- Vedeu::ConveyorStore
show all
- Includes:
- Store
- Defined in:
- lib/vedeu/storage/conveyor_store.rb
Overview
Conveyor belt like storage. The belt can move forward (‘load_next`) or backwards (`load_previous`), or a named entry can be retrieved.
Instance Method Summary
collapse
Methods included from Store
#each, #empty?, #exists?, #reset, #size, #storage
Constructor Details
11
12
13
|
# File 'lib/vedeu/storage/conveyor_store.rb', line 11
def initialize(storage = [])
@storage = storage
end
|
Instance Method Details
#in_memory ⇒ Array
62
63
64
|
# File 'lib/vedeu/storage/conveyor_store.rb', line 62
def in_memory
[]
end
|
#load ⇒ Object
Also known as:
current
16
17
18
|
# File 'lib/vedeu/storage/conveyor_store.rb', line 16
def load
storage.first
end
|
#load_named(name) ⇒ Object
23
24
25
26
27
28
29
30
31
|
# File 'lib/vedeu/storage/conveyor_store.rb', line 23
def load_named(name)
return nil if empty?
return nil unless storage.include?(name)
storage.rotate!(storage.index(name))
load
end
|
#load_next ⇒ Object
34
35
36
37
38
|
# File 'lib/vedeu/storage/conveyor_store.rb', line 34
def load_next
storage.rotate!
load
end
|
#load_previous ⇒ Object
41
42
43
44
45
|
# File 'lib/vedeu/storage/conveyor_store.rb', line 41
def load_previous
storage.rotate!(-1)
load
end
|
#save(data, front = false) ⇒ Object
49
50
51
52
53
54
55
56
57
|
# File 'lib/vedeu/storage/conveyor_store.rb', line 49
def save(data, front = false)
if front
storage.push(data)
else
storage.unshift(data)
end
end
|