A grunt plugin for building and uploading couchapps. #deprecated
Go to file
James E. Marca 008e268c06 return null;
at the end of the two main functions, add "return null;" because
otherwise Emacs javascript parser whinges about not returning something
from a routine.  I guess it is in the standard and all that.

apologies if this is noise, but that's why I'm making tiny commits...you
can ignore them.
2013-10-16 13:22:50 -07:00
bin Initial check-in. 2012-08-09 18:34:00 -07:00
demo Initial check-in. 2012-08-09 18:34:00 -07:00
tasks return null; 2013-10-16 13:22:50 -07:00
test Initial check-in. 2012-08-09 18:34:00 -07:00
.gitignore Initial check-in. 2012-08-09 18:34:00 -07:00
.npmignore Initial check-in. 2012-08-09 18:34:00 -07:00
LICENSE-MIT Initial check-in. 2012-08-09 18:34:00 -07:00
README.md merged rmcouchdb 2013-09-08 22:11:23 -04:00
grunt.js Added demo task, and updated README to point to demo. 2012-08-09 18:51:11 -07:00
package.json bump version number, switch maintainer urls 2013-09-09 00:02:27 -04:00

README.md

grunt-couchapp

A grunt plugin for building and installing couchapps

Getting Started

Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-couchapp

Then add this line to your project's grunt.js gruntfile:

grunt.loadNpmTasks('grunt-couchapp');

Documentation

You'll want to add some configuration for the plug-in. This plugin provides three tasks, mkcouchdb to create new databases, rmcouchdb to delete all data and drop an existing database, and couchapp, which installs a specified couchapp into the database.

mkcouchdb: {
    demo: {
        db: 'http://localhost:5984/grunt-couchapp-demo',
        options: {
            okay_if_exists: true
        }
    }
},

rmcouchdb: {
    demo: {
        db: 'http://localhost:5984/grunt-couchapp-demo',
        options: {
            okay_if_missing: true
        }
    }
},

couchapp: {
    demo: {
        db: 'http://localhost:5984/grunt-couchapp-demo',
        app: './demo/app.js'
    }
}

As a stylistic note, all of the commands take the same info, so it's possible to write in your configuration file:

couch_config = {
    demo: {
        db: 'http://localhost:5984/grunt-couchapp-demo',
        app: './demo/app.js',
        options: {
            okay_if_missing: true,
            okay_if_exists: true
        }
    }
}

grunt.initConfig({
    ...            
    mkcouchdb: couch_config,
    rmcouchdb: couch_config,
    couchapp: couch_config,
    ...
});    

Note that if you call rmcouchdb without a sub-argument, it will not delete any databases.

Demo

It is possible to run the entire toolchain (drop, initialize, and install) with the grunt.js file by calling grunt demo. As long as you have a local couchdb running in admin-party mode, and browse to http://localhost:5984/grunt-couchapp-demo/_design/app/index.html You should get back a happy message.

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using grunt.

License

Copyright (c) 2012 Ken Elf Mathieu Sternberg
Licensed under the MIT license.