findhit-class

0.1.1 • Public • Published

Class test-badge

javascript class framework

Used for fast deploying of classes by inheriting existent ones.

Instalation

 
    npm install findhit-class --save
 

Usage

var Class = require('findhit-class');

Features

Extendable

    // Class creation by extending Class
 
    var MyClass = Class.extend({
 
        initialize: function ( arg1, arg 2 ) {
            return this || false;
        },
 
        destroy: function () {
            return;
        },
 
        test: function () {
            return 'test';
        },
 
    });
 
 
    // Extending MyClass to a new Class
    // Inheriting initialize and destroy function
 
    var MyNewClass = MyClass.extend({
 
        test: function () {
            return 'cool';
        },
 
    });
 

Hookable

    // Since we want to inherite initialize, we may also add an hook for this class
    MyClass.addInitHook(function () {
 
        // do something here..
 
    });
 
    // And also for destroying
    MyClass.addDestroyHook(function () {
 
        // do something here..
 
    });
 
    // WARNING:
    // Hooks also run on parent classes when an instance is constructed!
 

Associable

    // Initialize some vars
    var Gun = Class.extend(),
        Bullet = Class.extend();
 
    // Associating them
    Gun.hasMany( 'Bullets', Bullet );
    Bullet.belongsTo( 'Gun', Gun );
 
    // Creating instances
    var gun = new Gun( 'colt' ),
        bulletOne = new Bullet( 'alpha' ),
        bulletStupid = new Bullet( 'whoote' ),
        bulletKaeda = new Bullet( 'i kill you' );
 
    // We could associate on multiple ways:
 
        // From a bullet pov
 
            bulletOne.Gun = gun;
            // gun.Bullets should be now equal to [ bulletOne ];
 
 
        // From a gun pov
 
            gun.Bullets = [ bulletOne, bulletStupid, bulletKaeda ];
            gun.setBullets( [ bulletOne, bulletStupid, bulletKaeda ] );
 
            // bulletOne.Gun, bulletStupid.Gun and bulletKaeda.Gun should be now equal to Gun
 

Optionable

    // Initialize some vars
    var Gun = Class.extend({
            options: {
                silent: false,
            },
        });
 
    var Colt = Gun.extend({
            options: {
                silent: true,
                color: undefined,
                model: undefined,
            },
        });
 
    var gun = new Gun(),
        colt = new Colt();
 
    gun.options; // { silent: false }
    colt.options; // { silent: true, color: undefined, model: undefined }
 

Thanks

Huge thanks to Leaflet, John Resig and Dean Edwards.

Package Sidebar

Install

npm i findhit-class

Weekly Downloads

43

Version

0.1.1

License

GPL v3

Last publish

Collaborators

  • cuss