Class: Koi::Database
Instance Method Summary collapse
- #<<(entry) ⇒ Object
- #each(&blk) ⇒ Object
- #find(key) ⇒ Object (also: #[])
-
#initialize(path = nil) ⇒ Database
constructor
A new instance of Database.
- #load(path = ) ⇒ Object
- #to_yaml(*args, &blk) ⇒ Object
Constructor Details
#initialize(path = nil) ⇒ Database
Returns a new instance of Database.
205 206 207 208 209 210 211 |
# File 'lib/koi.rb', line 205 def initialize path = nil if @path = path self.load path else @data = [] end end |
Instance Method Details
#<<(entry) ⇒ Object
237 238 239 |
# File 'lib/koi.rb', line 237 def << entry @data << (entry.is_a?(Entity) ? entry : Entity.new(entry)) end |
#each(&blk) ⇒ Object
233 234 235 |
# File 'lib/koi.rb', line 233 def each &blk @data.each &blk end |
#find(key) ⇒ Object Also known as: []
213 214 215 216 217 218 219 220 221 |
# File 'lib/koi.rb', line 213 def find key if key.is_a? String @data.find {|e| e[:title].include? key } elsif key.is_a? Fixnum @data.select {|e| e[:status] == :created}[key] else raise ArgumentError, "key must be a String or Fixnum, but is #{key.class}" end end |
#load(path = ) ⇒ Object
224 225 226 227 228 229 230 231 |
# File 'lib/koi.rb', line 224 def load path = @path || Path[:db] @data = if db = YAML.load_file(path) db.map {|e| Entity.new(e) } else [] end self end |
#to_yaml(*args, &blk) ⇒ Object
241 242 243 |
# File 'lib/koi.rb', line 241 def to_yaml *args, &blk @data.to_yaml *args, &blk end |