About Genova

Genova is a Drush utility targeted on Drupal developers who regularly create custom Drupal modules. It is supposed to automate routine code writing such as schema, hook implementations, drupal arrays, etc.

The basic architecture aims to create a very flexible and robust utility the basic element of which is a component. A component has these responsibilities and/or operations:

- init process that if not provided by a caller, it will prompt him for the missing input

- input validation and sanitization, so that if it comes to the built process all the needed data is provided

- make the process of generating the code as transactional as possible

This approach allows components being created by other components in a way that if not all data is provided, the component will prompt to add missing pieces. Also only those components should be created that have all valid inputs, so you do not get stuck in the middle of process with the need to remove invalid code by hand.

Genova is meant to be the tool for developers and therefore to be extensible. It provides an API so that any other module can create its own component generator by extending basic GenComponent class and providing own code templates. This gives it the real power where you can use Genova to create own components and by doing so increase your productivity to the maximum.

Features

Current implemented components are:

- Drupal module structure

- hooks: menu, theme, permission, install/uninstal, schema

- sources: css, js, PHP classes file

- external modules: mforms, sdbo

Installation and configuration

To use Genova you need to have properly installed and configured Drush. Moreover a working Drupal installation is necessary as it uses Drupal functions to determine file paths.

Basic usage

To use Genonva you need to have properly installed and configured Drush. Note that this module has been tested only on UNIX systems so there is no guarantee it will run on Windows.

To verify if all is working properly enter following command:

> drush help gen-mc

If you get help output, genova is installed and Drush is aware of its commands.

Modules currently implementing Genova

Module builder note

There is the module_builder that servers as Drupal module generator too. The differences are described here: http://drupal.org/node/1558946#comment-6106506