lib/couchbase-orm.rb in couchbase-orm-0.0.2 vs lib/couchbase-orm.rb in couchbase-orm-0.0.3
- old
+ new
@@ -5,9 +5,22 @@
module CouchbaseOrm
autoload :Error, 'couchbase-orm/error'
autoload :Connection, 'couchbase-orm/connection'
autoload :IdGenerator, 'couchbase-orm/id_generator'
autoload :Base, 'couchbase-orm/base'
+
+ def self.try_load(id)
+ result = id.respond_to?(:cas) ? id : CouchbaseOrm::Base.bucket.get(id, quiet: true, extended: true)
+ if result && result.value.is_a?(Hash) && result.value[:type]
+ ddoc = result.value[:type]
+ ::CouchbaseOrm::Base.descendants.each do |model|
+ if model.design_document == ddoc
+ return model.new(result)
+ end
+ end
+ end
+ nil
+ end
end
# Provide Boolean conversion function
# See: http://www.virtuouscode.com/2012/05/07/a-ruby-conversion-idiom/
module Conversions