Module: CouchbaseOrm

Defined in:
lib/rails/generators/couchbase_orm_generator.rb,
lib/couchbase-orm.rb,
lib/couchbase-orm/base.rb,
lib/couchbase-orm/error.rb,
lib/couchbase-orm/views.rb,
lib/couchbase-orm/version.rb,
lib/couchbase-orm/connection.rb,
lib/couchbase-orm/persistence.rb,
lib/couchbase-orm/associations.rb,
lib/couchbase-orm/id_generator.rb,
lib/couchbase-orm/utilities/enum.rb,
lib/couchbase-orm/utilities/join.rb,
lib/couchbase-orm/utilities/index.rb,
lib/couchbase-orm/utilities/has_many.rb,
lib/couchbase-orm/utilities/ensure_unique.rb,
lib/rails/generators/couchbase_orm/config/config_generator.rb

Overview

:nodoc:

Defined Under Namespace

Modules: Associations, EnsureUnique, Enum, Generators, HasMany, Index, Join, Persistence, Views Classes: Base, Connection, Error, IdGenerator

Constant Summary collapse

VERSION =
'0.1.2'

Class Method Summary collapse

Class Method Details

.try_load(id) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/couchbase-orm.rb', line 11

def self.try_load(id)
    result = nil
    ::ActiveSupport::Dependencies.interlock.permit_concurrent_loads do
        result = id.respond_to?(:cas) ? id : CouchbaseOrm::Base.bucket.get(id, quiet: true, extended: true)
    end
    
    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