symfio

Modular framework based on Node.js and kantaina.

Symfio

Glue for Node.js modules

symfio = require "symfio"
 
 
container = symfio "fruits-example"__dirname
loader = container.get "loader"
 
loader.use symfio.plugins.express
loader.use symfio.plugins.mongoose
 
loader.use (container, callback) ->
    connection = container.get "connection"
    mongoose = container.get "mongoose"
 
    FruitSchema = new mongoose.Schema
        name: String
 
    connection.model "fruits"FruitSchema
 
    callback()
 
loader.use symfio.plugins.fixtures
loader.use symfio.plugins.crud
 
loader.use (container, callback) ->
    connection = container.get "connection"
    unloader = container.get "unloader"
    crud = container.get "crud"
    app = container.get "app"
 
    Fruit = connection.model "fruits"
 
    app.get "/fruits"crud.list(Fruit).sort(name: -1).make()
 
    unloader.register (callback) ->
        connection.db.dropDatabase ->
            callback()
 
    callback()
 
loader.load()

Start new project:

$ mkdir my_project
cd my_project
$ git init
$ cat << END > .gitignore
node_modules
END
$ cat << END > package.json
{
    "name""my_project",
    "version""0.0.0",
    "public"false
}
END

Install Symfio:

$ npm install symfio --save

Create sample application:

$ cat << END > my_project.coffee
symfio = require "symfio"
 
container = symfio "my_project", __dirname
loader = container.get "loader"
loader.use symfio.plugins.assets
loader.use symfio.plugins.express
loader.load()
END
$ mkdir public
$ cat << END > public/index.jade
doctype 5
html
    head
        title Hello World!
    body
        h1 Hello World!
END

Start server:

$ coffee my_project

Clone Symfio repo, then run example:

$ git clone git://github.com/symfio/symfio.git
cd symfio
$ npm install
$ ./node_modules/.bin/coffee examples/fruits

Code Coverage Report

Latest Documentation

Clone Symfio repo, then run tests:

$ git clone git://github.com/symfio/symfio.git
cd symfio
$ npm install
$ ./node_modules/.bin/grunt test

Release Instructions

Checkout to master branch:

$ git checkout master

Increment version in package.json and commit:

$ git add package.json
$ git commit -m "Bumped 0.0.0"

Add version tag to commit in which package.json is changed:

$ git tag 0.0.0 HEAD

Push commit and tag to GitHub and wait until CI build is succeed:

$ git push origin master
$ git push origin 0.0.0

Upload package to NPM repository:

$ npm publish

Checkout to gh-pages branch:

$ git checkout gh-pages

Increment version in _includes/footer.html and update website:

$ ./_update.sh
$ git add .
$ git commit -m "Updated"
$ git push

Return to master branch:

$ git checkout master