class Jsonoid::Collection
Constants
- EXTENSION
Public Class Methods
new(name)
click to toggle source
# File lib/jsonoid/collection.rb, line 24 def initialize(name) @collection = File.join(Jsonoid.db, name) FileUtils.mkdir_p(@collection) rescue Errno::ENOENT, Errno::EACCES # FIXME: add a warning message or abort? end
Public Instance Methods
delete(id)
click to toggle source
# File lib/jsonoid/collection.rb, line 55 def delete(id) File.delete(document(id)) rescue Errno::ENOENT, Errno::EACCES raise Document::NotFound, "Document #{id} not found" end
each() { |read| ... }
click to toggle source
# File lib/jsonoid/collection.rb, line 35 def each Dir.glob(document('*')) do |fname| yield File.read(fname) end rescue Errno::ENOENT, Errno::EACCES # FIXME end
exists?()
click to toggle source
# File lib/jsonoid/collection.rb, line 31 def exists? File.directory?(@collection) end
read(id)
click to toggle source
# File lib/jsonoid/collection.rb, line 49 def read(id) File.read(document(id)) rescue Errno::ENOENT, Errno::EACCES raise Document::NotFound, "Document #{id} not found" end
write(id, data)
click to toggle source
# File lib/jsonoid/collection.rb, line 43 def write(id, data) open(document(id), 'w') { |f| f.write(data) } rescue Errno::ENOENT, Errno::EACCES raise Document::NotPersisted, "Document #{id} not persisted" end
Private Instance Methods
document(id)
click to toggle source
# File lib/jsonoid/collection.rb, line 63 def document(id) File.join(@collection, [id, EXTENSION].join('.')) end