@@ -2,8 +2,9 @@ module Amnesia
2
2
class Storage
3
3
attr_reader :filename
4
4
5
- def initialize ( filename )
5
+ def initialize ( filename , items : nil )
6
6
@filename = filename
7
+ populate_data ( items ) unless items . nil? || items . empty?
7
8
end
8
9
9
10
def size
@@ -16,6 +17,14 @@ def set(key, value)
16
17
File . write ( filename , entry , mode : 'a+' )
17
18
end
18
19
20
+ def all
21
+ File . readlines ( filename ) . map do |record |
22
+ key , value = record . chomp . split ( ',' )
23
+
24
+ [ key , value ]
25
+ end
26
+ end
27
+
19
28
def delete ( key )
20
29
set ( key , '' )
21
30
end
@@ -27,19 +36,15 @@ def get(key, index_entry: nil)
27
36
end
28
37
29
38
def parse_record ( raw_record )
30
- value = raw_record_value ( raw_record )
31
-
32
- return nil if value . nil? || value . empty?
33
-
34
- value
39
+ raw_record_value ( raw_record )
35
40
end
36
41
37
42
def raw_record_value ( raw_record )
38
43
( raw_record || '' ) . chomp . split ( ',' , 2 ) [ 1 ]
39
44
end
40
45
41
- def create_db_file
42
- File . write ( filename , '' ) unless file_exists?
46
+ def create_db_file ( content = '' )
47
+ File . write ( filename , content ) unless file_exists?
43
48
end
44
49
45
50
def file_exists?
@@ -48,6 +53,12 @@ def file_exists?
48
53
49
54
private
50
55
56
+ def populate_data ( items )
57
+ data_block = items . map { |( key , value ) | "#{ key } ,#{ value } \n " } . join ( '' )
58
+
59
+ create_db_file ( data_block )
60
+ end
61
+
51
62
def record_from_scan ( key )
52
63
lines = File . readlines ( filename )
53
64
0 commit comments