jhsu802701/generic_gem

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Gem Version](https://badge.fury.io/rb/generic_gem.svg)](https://badge.fury.io/rb/generic_gem)
[![Dependency Status](https://gemnasium.com/jhsu802701/generic_gem.svg)](https://gemnasium.com/jhsu802701/generic_gem)
[![Build Status](https://travis-ci.org/jhsu802701/generic_gem.svg?branch=master)](https://travis-ci.org/jhsu802701/generic_gem)
[![Code Climate](https://codeclimate.com/github/jhsu802701/generic_gem/badges/gpa.svg)](https://codeclimate.com/github/jhsu802701/generic_gem)
[![Test Coverage](https://codeclimate.com/github/jhsu802701/generic_gem/badges/coverage.svg)](https://codeclimate.com/github/jhsu802701/generic_gem/coverage)

# GenericGem

Welcome to GenericGem!  The purpose of this gem is to streamline the process of creating a gem with Bundler.  

## What's the point?
I HATE having to jump through hoops just to take care of the generic details that are necessary for all or most Ruby gems.  Every time I have created a Ruby gem, there were numerous details that I had to remember to do.  The generic aspects of a gem are fully automated to minimize the drudgery so that you have more time available to work on the capabilities that make your Ruby gem unique.

## Prerequisites for Understanding GenericGem
You should be familiar with the process of building a Ruby gem.  Some good resources are:

    https://quickleft.com/blog/engineering-lunch-series-step-by-step-guide-to-building-your-first-ruby-gem/
    http://rakeroutes.com/blog/lets-write-a-gem-part-one/
    http://rakeroutes.com/blog/lets-write-a-gem-part-two/
    http://guides.rubygems.org/make-your-own-gem/
    
## How does GenericGem work?
GenericGem uses the bundle command to begin the process of creating a gem.  Additionally, it adds a number of enhancements needed by all or most Ruby gems.  These changes are:

* The Code of Conduct and MIT license are automatically included.  (It's easier to remove them than to remember to add them.)
* Your name is automatically filled in the file LICENSE.txt and in the gemspec file.
* The gem description in the gemspec file is "GENERIC DESCRIPTION" to enable the "rake install" command.
* The gem summary in the gemspec file is "GENERIC SUMMARY" to enable the "rake install" command.
* Your email address is automatically provided in the gemspec file.
* RSpec testing is automatically included and installed.  Your gem will pass the initial meaningless tests.
* The version number is set to 0.0.0.
* The bin/console and bin/setup script files are made executable.
* A working Rakefile is provided.
* The gem_test.sh script is added to the gem's root directory.  This is the 1-step test procedure that executes the bin/setup script (which includes the "bundle install" command) AND the command "rake".  Just enter the command "sh gem_test.sh" command to start the process.  When you clone your gem's source code onto a machine with a fresh Ruby on Rails installation, running the gem_test.sh script should confirm that all of the details needed to make your gem work are complete.
* The .gitignore file includes .DS_Store and the directories tmp and tmp*.
* Instructions on using the gem_test.sh and gem_console.sh scripts are included in the README.md file.


## Installation

Add this line to your application's Gemfile:

```ruby
gem 'generic_gem'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install generic_gem

## Usage

Just enter the command "generic_gem".  When prompted, provide the name of your new gem, your name, and your email address.  Your new gem will be automatically created AND tested.  The initial meaningless tests will pass.

## Development

### Testing this gem

After cloning this source code, cd your way into this directory and enter the command `sh gem_test.sh`.  Note that this script also runs the code_test.sh and gem_install.sh scripts.

### Testing this gem's source code
Enter the command `sh code_test.sh` to test the quality of the source code.

### Running this gem in irb
Enter the command `sh gem_console.sh`.

### Installing this gem

Enter the command `sh gem_install.sh`.

## Contributing

1. Fork it ( https://github.com/[my-github-username]/generic_gem/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request