class ODBA::DRbIdConv

Public Class Methods

new(*args) click to toggle source
Calls superclass method
# File lib/odba/drbwrapper.rb, line 53
def initialize(*args)
  super
  @unsaved = {}
end

Public Instance Methods

odba_update(key, odba_id, object_id) click to toggle source
# File lib/odba/drbwrapper.rb, line 57
def odba_update(key, odba_id, object_id)
  case key
  when :store
    @unsaved.store(object_id, odba_id)
  when :clean, :delete
    @unsaved.delete(object_id)
  end
end
to_id(obj) click to toggle source
Calls superclass method
# File lib/odba/drbwrapper.rb, line 75
def to_id(obj)
  if(obj.is_a?(ODBA::Persistable))
    if(obj.odba_unsaved?)
      obj.odba_add_observer(self)
      super
    else
      obj.odba_id.to_s
    end
  else
    super
  end
end
to_obj(ref) click to toggle source
Calls superclass method
# File lib/odba/drbwrapper.rb, line 65
def to_obj(ref)
  test = ref
  if(test.is_a?(String) || (test = @unsaved[ref]))
    DRbWrapper.new(ODBA.cache.fetch(test.to_i))
  else
    super
  end
rescue RuntimeError => e
  raise RangeError, e.message
end