Class: KeepYourHead::Database::Database
- Inherits:
-
Object
- Object
- KeepYourHead::Database::Database
show all
- Includes:
- BaseStatistic
- Defined in:
- lib/Keepyourhead/database/Database.rb
Instance Method Summary
collapse
#collectFlashcards, #count, #countActive, #countPassive, #distribution, #removeStatistics
Constructor Details
Returns a new instance of Database.
27
28
29
30
31
32
|
# File 'lib/Keepyourhead/database/Database.rb', line 27
def initialize
@viewers = []
@files = []
load
end
|
Instance Method Details
#fileClose(file) ⇒ Object
71
72
73
74
75
|
# File 'lib/Keepyourhead/database/Database.rb', line 71
def fileClose(file)
file.viewerRemove self
@files.delete file
:onItemRemove, file
end
|
#fileNew ⇒ Object
65
66
67
68
69
70
|
# File 'lib/Keepyourhead/database/Database.rb', line 65
def fileNew
file = Database::File.createNew self
@files << file
file.viewerAdd self
:onItemInsert, file
end
|
#fileOpen(filename) ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/Keepyourhead/database/Database.rb', line 53
def fileOpen(filename)
filename = ::File.expand_path filename
if not files.map{ |file| file.filename }.include? filename then
file = KeepYourHead::Database::File.open( self, filename )
@files << file
file.viewerAdd self
:onItemInsert, file
end
end
|
#files ⇒ Object
34
35
36
|
# File 'lib/Keepyourhead/database/Database.rb', line 34
def files
@files
end
|
#items ⇒ Object
22
23
24
|
# File 'lib/Keepyourhead/database/Database.rb', line 22
def items
files
end
|
#load ⇒ Object
38
39
40
41
42
|
# File 'lib/Keepyourhead/database/Database.rb', line 38
def load
($preferences[:files] || []).each { |filename|
fileOpen filename if ::File.exist?( filename)
}
end
|
#moveDown(file) ⇒ Object
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/Keepyourhead/database/Database.rb', line 89
def moveDown( file )
assert file.kind_of?(Database::File)
:onItemRemove, file
index = files.index file
assert index
files.delete_at(index)
files.insert([index+1,files.length].min,file)
:onItemInsert, file
end
|
#moveUp(file) ⇒ Object
helper for moving files up and down
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/Keepyourhead/database/Database.rb', line 79
def moveUp( file )
assert file.kind_of?(Database::File)
:onItemRemove, file
index = files.index file
assert index
files.delete_at(index)
files.insert([index-1,0].max,file)
:onItemInsert, file
end
|
#onItemChange(item) ⇒ Object
121
122
123
|
# File 'lib/Keepyourhead/database/Database.rb', line 121
def onItemChange(item)
:onItemChange, item
end
|
#onItemInsert(item) ⇒ Object
127
128
129
|
# File 'lib/Keepyourhead/database/Database.rb', line 127
def onItemInsert(item)
:onItemInsert, item
end
|
#onItemRemove(item) ⇒ Object
124
125
126
|
# File 'lib/Keepyourhead/database/Database.rb', line 124
def onItemRemove(item)
:onItemRemove, item
end
|
#onReload(file) ⇒ Object
130
131
132
|
# File 'lib/Keepyourhead/database/Database.rb', line 130
def onReload(file)
:onReload, file
end
|
#saveAllChanged ⇒ Object
47
48
49
50
51
|
# File 'lib/Keepyourhead/database/Database.rb', line 47
def saveAllChanged
files.each { |file|
file.save if file.changed
}
end
|
#viewerAdd(v) ⇒ Object
101
102
103
|
# File 'lib/Keepyourhead/database/Database.rb', line 101
def viewerAdd( v )
@viewers << v unless @viewers.include? v
end
|
#viewerRemove(v) ⇒ Object
105
106
107
|
# File 'lib/Keepyourhead/database/Database.rb', line 105
def viewerRemove( v )
@viewers.delete v
end
|
109
110
111
112
113
114
115
|
# File 'lib/Keepyourhead/database/Database.rb', line 109
def ( name, *args )
assert name
@viewers.each{ |v|
v.send name, *args
}
end
|
#writeBack ⇒ Object
43
44
45
|
# File 'lib/Keepyourhead/database/Database.rb', line 43
def writeBack
$preferences[:files] = files.map{ |file| file.filename }.compact
end
|