Class: Jsonoid::Collection
- Inherits:
-
Object
- Object
- Jsonoid::Collection
- Defined in:
- lib/jsonoid/collection.rb
Constant Summary collapse
- EXTENSION =
'json'
Instance Method Summary collapse
- #delete(id) ⇒ Object
- #each ⇒ Object
- #exists? ⇒ Boolean
-
#initialize(name) ⇒ Collection
constructor
A new instance of Collection.
- #read(id) ⇒ Object
- #write(id, data) ⇒ Object
Constructor Details
#initialize(name) ⇒ Collection
Returns a new instance of Collection.
24 25 26 27 28 29 |
# 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 |
Instance Method Details
#delete(id) ⇒ Object
55 56 57 58 59 |
# 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 ⇒ Object
35 36 37 38 39 40 41 |
# 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? ⇒ Boolean
31 32 33 |
# File 'lib/jsonoid/collection.rb', line 31 def exists? File.directory?(@collection) end |
#read(id) ⇒ Object
49 50 51 52 53 |
# 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) ⇒ Object
43 44 45 46 47 |
# 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 |