seed-js

0.0.11 • Public • Published

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

Package Sidebar

Install

npm i seed-js

Weekly Downloads

0

Version

0.0.11

License

MIT

Unpacked Size

140 kB

Total Files

27

Last publish

Collaborators

  • piercus