gray-industries/projecter

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Projecter

[![Code Climate](https://codeclimate.com/github/gray-industries/projecter/badges/gpa.svg)](https://codeclimate.com/github/gray-industries/projecter)
[![Build Status](https://travis-ci.org/gray-industries/projecter.svg?branch=master)](https://travis-ci.org/gray-industries/projecter)

Projecter is a simple CLI application generator.

## Installation

    $ gem install projecter

## Usage

Using projecter's quite a bit like running `bundle gem gemname`. It gives you a gem layout, plus a skeleton of a Thor CLI application.

When you

    $ projecter create $PROJECT

you get a new gem in $PROJECT, complete with its own fresh git repo.

### Directory Layout

If you create an app called `myapp`, projecter creates the following directories:

- `lib/commands/`: `myapp`'s subcommands.
- `lib/myapp/`: `myapp`'s library.
- `spec/fixtures`: test fixtures.
- `spec/resources`: configs, other files needed to run tests.
- `spec/unit/lib/{commands,myapp}/`: unit tests.
- `spec/integration/lib/{commands,myapp}/`: integration tests.
- `spec/acceptance/lib/{commands,myapp}/`: large scale system or subsystem tests; stress tests; performance tests; interface conformance tests for demonstrating the adherence of APIs, CLIs, etc. to established standards.

Each leaf directory contains an empty `.gitignore` file. This is because git does not track directories, and without an empty file the directory would not appear in the repo.

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request