class Audrey::Node

Audrey::Node
This class defines an object that connects to the database for a single
object record.

Attributes

db[R]
pk[R]

Public Class Methods

new(p_db, opts={}) click to toggle source
# File lib/audrey.rb, line 686
def initialize(p_db, opts={})
        # param check
        if not p_db.is_a?(Audrey)
                raise 'db-param-not-audrey: ' + p_db.class.to_s
        end
        
        # db and engine
        @db = p_db
        @engine = @db.engine
        
        # hold on to flcass if one was sent
        @aclass = opts['aclass']
        
        # if a row was sent, cache it and set pk
        if opts['row']
                @row_cache = opts['row']
                @pk = @row_cache['pk']
        else
                @pk = opts['pk'] || Audrey::Util.uuid
                @row_cache = nil
        end
end

Public Instance Methods

alive?() click to toggle source
# File lib/audrey.rb, line 766
def alive?
        # $tm.hrm
        return @engine.object_exists?(@pk)
end
ancestors() { |object_from_row| ... } click to toggle source
# File lib/audrey.rb, line 751
def ancestors
        read_check()
        
        @engine.ancestors(@pk) do |row|
                yield @db.object_from_row(row)
        end
end
delete_object() click to toggle source
# File lib/audrey.rb, line 778
def delete_object
        write_check()
        return @engine.delete_object(@pk)
end
fco() click to toggle source
# File lib/audrey.rb, line 734
def fco
        # $tm.hrm
        return Audrey::Util.aclass_fco(row['aclass'])
end
isolate() click to toggle source
# File lib/audrey.rb, line 739
def isolate
        # $tm.hrm
        return Audrey::Util.aclass_isolate(row['aclass'])
end
row() click to toggle source
# File lib/audrey.rb, line 716
def row()
        # $tm.hrm
        read_check()
        
        if not @row_cache
                @row_cache = @engine.row_by_pk(@pk)
        end
        
        return @row_cache
end