0.0.11 • Published 7 years ago

seed-js v0.0.11

Weekly downloads
6
License
MIT
Repository
github
Last release
7 years ago

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

0.0.11

7 years ago

0.0.10

8 years ago

0.0.9

8 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

13 years ago