betajs/betajs-data

View on GitHub
src/data/databases/databases.js

Summary

Maintainability
A
0 mins
Test Coverage
Scoped.define("module:Databases.Database", [
    "base:Class"
], function(Class, scoped) {
    return Class.extend({
        scoped: scoped
    }, function(inherited) {
        return {

            constructor: function() {
                inherited.constructor.apply(this);
                this.__tableCache = {};
            },

            _tableClass: function() {
                return null;
            },

            getTable: function(table_name, table_options) {
                if (!this.__tableCache[table_name]) {
                    var cls = this._tableClass();
                    this.__tableCache[table_name] = this.auto_destroy(new cls(this, table_name, table_options));
                }
                return this.__tableCache[table_name];
            },

            _renameTableCache: function(old_table_name, new_table_name) {
                this.__tableCache[new_table_name] = this.__tableCache[old_table_name];
                delete this.__tableCache[old_table_name];
            }

        };

    });
});