Class: Taggata::Db
- Inherits:
-
Object
- Object
- Taggata::Db
- Defined in:
- lib/taggata/db.rb
Instance Attribute Summary collapse
-
#adapter ⇒ Object
readonly
Returns the value of attribute adapter.
Instance Method Summary collapse
- #bulk_insert(klass, values) ⇒ Object
- #destroy(klass, options) ⇒ Object
- #find(klass, options = {}) ⇒ Object
- #find_child_directories(directory) ⇒ Object
- #find_child_files(directory) ⇒ Object
- #find_one(klass, options = {}) ⇒ Object
- #find_or_create(klass, options) ⇒ Object
- #find_tags_without_files ⇒ Object
- #find_untagged_files ⇒ Object
-
#initialize(db_path, adapter_class) ⇒ Db
constructor
A new instance of Db.
- #load(klass, id) ⇒ Object
- #save(object) ⇒ Object
- #transaction(&block) ⇒ Object
Constructor Details
#initialize(db_path, adapter_class) ⇒ Db
Returns a new instance of Db.
6 7 8 9 10 |
# File 'lib/taggata/db.rb', line 6 def initialize(db_path, adapter_class) @adapter = adapter_class.new @adapter.initialize_db db_path @adapter.migrate_db end |
Instance Attribute Details
#adapter ⇒ Object (readonly)
Returns the value of attribute adapter.
4 5 6 |
# File 'lib/taggata/db.rb', line 4 def adapter @adapter end |
Instance Method Details
#bulk_insert(klass, values) ⇒ Object
32 33 34 |
# File 'lib/taggata/db.rb', line 32 def bulk_insert(klass, values) adapter.bulk_insert(klass, values) end |
#destroy(klass, options) ⇒ Object
28 29 30 |
# File 'lib/taggata/db.rb', line 28 def destroy(klass, ) adapter.destroy(klass, ) end |
#find(klass, options = {}) ⇒ Object
36 37 38 39 40 |
# File 'lib/taggata/db.rb', line 36 def find(klass, = {}) adapter.find(klass, ).map do |hash| klass.new_from_hash self, hash end end |
#find_child_directories(directory) ⇒ Object
66 67 68 69 70 |
# File 'lib/taggata/db.rb', line 66 def find_child_directories(directory) adapter.find(Persistent::Directory, :parent_id => directory.id).map do |hash| Persistent::Directory.new_from_hash(self, hash) end end |
#find_child_files(directory) ⇒ Object
72 73 74 75 76 |
# File 'lib/taggata/db.rb', line 72 def find_child_files(directory) adapter.find(Persistent::File, :parent_id => directory.id) do |hash| Persistent::File.new_from_hash(self, hash) end end |
#find_one(klass, options = {}) ⇒ Object
42 43 44 45 |
# File 'lib/taggata/db.rb', line 42 def find_one(klass, = {}) record = adapter.find_one(klass, ) klass.new_from_hash(self, record) unless record.nil? end |
#find_or_create(klass, options) ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/taggata/db.rb', line 51 def find_or_create(klass, ) search = adapter.find_one(klass, ) if search.nil? o = klass.new_from_hash self, o.save o else klass.new_from_hash self, search end end |
#find_tags_without_files ⇒ Object
24 25 26 |
# File 'lib/taggata/db.rb', line 24 def adapter..map { |hash| Persistent::Tag.new_from_hash self, hash } end |
#find_untagged_files ⇒ Object
20 21 22 |
# File 'lib/taggata/db.rb', line 20 def find_untagged_files adapter.find_untagged_files.map { |hash| Persistent::File.new_from_hash self, hash } end |
#load(klass, id) ⇒ Object
47 48 49 |
# File 'lib/taggata/db.rb', line 47 def load(klass, id) klass.new_from_hash(adapter.load(klass, id)) end |
#save(object) ⇒ Object
62 63 64 |
# File 'lib/taggata/db.rb', line 62 def save(object) adapter.save(object.class.table, object.to_hash) end |
#transaction(&block) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/taggata/db.rb', line 12 def transaction(&block) if block_given? adapter.transaction(block) else raise "Cannot initiate transaction without block." end end |