Nanometer Process Machine
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    seed-jspublic

    Seed.js

    Elegant inheritance, attributes and events, both for client-side and server-side JavaScript.

    Introduction

    Seed.js was a part of the fjs project. Seed.js is an abstract JavaScript Constructor, that would fullfill the following requirements :

    Installation

    With NPM

    $ npm install seed-js
    

    in your script add

    require("seed-js");
    

    Client-side

    If you use requirejs

    <script src="path/to/Seed.min.js">
    

    then :

    require("seed-js/Seed", function(S){
      /* code */
    });
    

    If you do not use requirejs

    <script src="path/to/Seed.standalone.min.js">
    

    then Seed is a global variable :

    var S = Seed;
    

    Basic Usage

    Extend your own Constructors

    var Fruit = S.extend({
      options : {
        // by default the fruit is Tasty
        isTasty : true,
        //and no one owns it
        owner : null
      },
      
      // i like to taste any fruit
      taste : function() {
        console.log("I like to taste a fruit");
      },
      
      dump : function() {
        return {
          objectType :  "a fruit"
        }
      }
    });
    
    var Banana = Fruit.extend({
      // by default the banana is owned by a banana eater and is yellow
      "+options" : {
        owner : "banana eater",
        color : "yellow"
      },
      
      // but the taste of the banana depends if it tasty
      "+taste" : function() {
        console.log(this.isTasty ? "GREAT!" : "beurk!");
      },
      
      "+dump" : function() {
        return {
          color : this.color
        }
      }
    });
    

    Instanciate them

    var oldBanana = new Banana({
      isTasty : false,
      color : "black",
      owner : "me"
    });
    
    // options are set as attributes in the instance
    oldBanana.isTasty 
    //=> false
    
    // +taste in Banana is executed after taste in Fruit
    oldBanana.taste();
    // I like to test fruits
    // beurk!
    
    var favoriteBanana = new r.Banana();
    
    favoriteBanana.taste(); 
    // I like to test fruits
    // GREAT!
    
    favoriteBanana.dump();
    //=> { color : "yellow", objectType : "a fruit"}
    

    More infos/usages

    Seed.js is a package of 4 little Tools :

    Tests

    run tests

    npm test
    

    Build

    Build

    grunt
    

    Documentation

    Documentation is inside the code and uses JSDoc synthax.

    Contribute

    Add an issue if you find bugs or please

    • Fork me
    • Add your tests
    • Make your contribution
    • Pass all the tests
    • Add a pull request

    Authors

    Pierre Colle, Sam Ton-That, Cyril Agosta

    install

    npm i seed-js

    Downloadsweekly downloads

    258

    version

    0.0.11

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar