bogart-gen

A suite of Rails-style generators for the awesome Bogart framework. Work in progress.

npm install bogart-gen
5 downloads in the last week
20 downloads in the last month

bogart-gen

About

Bogart is an awesome framework, but it currently does not come with a CLI. This module provides a CLI to help you get started quicker and easier with Bogart.

Installation

npm install -g bogart-gen

Usage

Generate an app

The easiest way to get started in Rails is now the easiest way to get started in Bogart. Just use

  bogart new <appName>

This will generate a folder tree that looks like this:

appName |

|__ lib

| |__ apis

| |__ repositories

| |__ views

| | |__ layout.html

| |

| |__ routers

| | |__ hello.js

| | |__ middleware.js

| | |__ static-content.js

| |

| |__ util.js

|

|__ public

| |__ images

| |__ javascripts

| |__ stylesheets

|

|__ db

| |__ migrations

| |__ schema.sql

|

|__ config

| |__ settings.js

|

|__ Readme.md

|__ app.js

|__ package.json

Generate a repository

Repositories are the database abstraction layer of a Bogart application. Currently, bogart-gen only supports MySQL. Repos generated with bogart-gen will contain a basic CRUD with five functions:

  • get:  // Get an object from the database by it's id
    
  • set:  // Create a new entry in the DB, or update an existing one if the object passed to it has an ID
    
  • search:  // More flexible than list, and return is compatible with GammaGrid
    
  • del:  // Deletes an entry from the database
    
    From the CLI, use bogart generate repo <modelName> to generate a repo.

Generate an API

bogart-gen can create Bogart routing files for you so you can get up and running quickly. All API routes generated by bogart-gen will start with '/api/'. These API's will expose all of the repository methods; returns will be in JSON. Generate an API by calling the following from the command line:

bogart g api <modelName>

You'll notice that this uses 'g' instead of 'generate'; this is a convenience provided by bogart-gen, it doesn't matter whether you use 'g' or 'generate'.

Generate a router

With bogart g router <name> [routes], you can generate a router file with a few predefined routes (unless you specify the --lite option). For example, bogart g router post would generate the following file:

    var bogart = require('bogart');

    module.exports = function (router, viewEngine) {
      router = router || bogart.router();

      router.get('/posts', function (req) {

      });

      router.get('/post/:id', function (req){

      });

      router.post('/post', function (req) {

      })
    }

With bogart g router post --lite the output becomes

  var bogart = require('bogart');

  module.exports = function (router, viewEngine) {
    router = router || bogart.router();

    //Specify routes here
    /*Example:
    router.get('/post/:id', function (req){

    });
    */
  }
npm loves you