class ThingTank::FakeBase
a replacement database for characters
Public Class Methods
new(doc, character, add_dep = true)
click to toggle source
# File lib/thingtank/fakebase.rb, line 4 def initialize(doc, character, add_dep = true) @db = doc.database @doc = doc @character = character @doc.dependencies.add_character(character) if add_dep end
Public Instance Methods
_character_doc()
click to toggle source
# File lib/thingtank/fakebase.rb, line 58 def _character_doc @doc end
_doc()
click to toggle source
# File lib/thingtank/fakebase.rb, line 62 def _doc @doc._root end
delete_doc(*character_docs)
click to toggle source
# File lib/thingtank/fakebase.rb, line 37 def delete_doc(*character_docs) character_docs.each do |character_doc| # delete only the attributes from me that are no part of another character, since we will have different doc ids # for each doc we will need to identify the remaining attributes doc, save = (character_doc["_id"].nil? || character_doc["_id"] == @doc.id) ? [@doc, false] : [@db.get(character_doc["_id"]), true] doc.delete_character(character_doc) doc.save if save # if all characters are from our doc, only save once: at the end end @doc.save if @doc.changed? result() end
get(id=:doc_id)
click to toggle source
# File lib/thingtank/fakebase.rb, line 52 def get(id=:doc_id) id = @doc.id if id == :doc_id doc = id == @doc.id ? @doc : @db.get(id) doc.get_character(@character, self) end
is_a?(klass)
click to toggle source
Calls superclass method
# File lib/thingtank/fakebase.rb, line 15 def is_a?(klass) return true if klass == CouchRest::Database super end
method_missing(meth, *args)
click to toggle source
# File lib/thingtank/fakebase.rb, line 11 def method_missing(meth, *args) raise "don't call #{self.class}: #{meth.inspect}(#{args.inspect})" end
result(ok=true)
click to toggle source
# File lib/thingtank/fakebase.rb, line 24 def result(ok=true) {"ok" => ok} end
save_doc(character_doc)
click to toggle source
# File lib/thingtank/fakebase.rb, line 28 def save_doc(character_doc) if character_doc.is_a? ThingTank # I dunno why this happens @doc.dependencies.refresh_parent() else @doc.save_character_attributes(character_doc) if character_doc.changed? end result end
to_character(klass)
click to toggle source
# File lib/thingtank/fakebase.rb, line 20 def to_character(klass) self.class.new(@doc, klass).get() end