JSPM

findhit-class

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 138
  • Score
    100M100P100Q61979F
  • License GPL v3

javascript class framework

Package Exports

  • findhit-class

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (findhit-class) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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.