Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agilecreativity/gem_bootstrap
Bootstrap the creation of ruby gem with sensible default so that we don't have to start from scratch.
https://github.com/agilecreativity/gem_bootstrap
bootstrap command-line generator ruby rubygems starter-template thor
Last synced: 3 months ago
JSON representation
Bootstrap the creation of ruby gem with sensible default so that we don't have to start from scratch.
- Host: GitHub
- URL: https://github.com/agilecreativity/gem_bootstrap
- Owner: agilecreativity
- License: mit
- Archived: true
- Created: 2014-05-09T01:02:38.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2017-12-31T02:12:35.000Z (almost 7 years ago)
- Last Synced: 2024-05-11T22:21:08.265Z (6 months ago)
- Topics: bootstrap, command-line, generator, ruby, rubygems, starter-template, thor
- Language: Ruby
- Size: 71.3 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
## gem_bootstrap
[![Gem Version](https://badge.fury.io/rb/gem_bootstrap.svg)][gem]
[![Dependency Status](https://gemnasium.com/agilecreativity/gem_bootstrap.png)][gemnasium]
[![Code Climate](https://codeclimate.com/github/agilecreativity/gem_bootstrap.png)][codeclimate][gem]: http://badge.fury.io/rb/gem_bootstrap)
[gemnasium]: https://gemnasium.com/agilecreativity/gem_bootstrap
[codeclimate]: https://codeclimate.com/github/agilecreativity/gem_bootstrapGenerate the starting template for creating ruby gem in ruby in just one command.
First install the gem
```sh
gem install gem_bootstrap
```then generate the new gem
```sh
gem_bootstrap awesome_gem --github-id awesome_developer --email [email protected] --author 'John Guru II'
```or the short version
```sh
gem_bootstrap awesome_gem -g awesome_developer -e [email protected] -a 'John Guru II'
```rather use rspec instead of the default minitest
```sh
gem_bootstrap awesome_gem -g awesome_developer -e [email protected] -a 'John Guru II' -t rspec
```Note: this gem will be release following the [Semantic Versioning][] start from `0.1.0`
### Features:
- Test framework using [Minitest][] or [Rspec][]
- Document with [Yard][]
- Style check with [Rubocop][]
- Debug with [Pry][]
- TDD/BDD with [Guard][]
- Initial git commit with [Grit] gem
- Build on top of the most popular [Thor][] framework
- Give you simple working structure that you can build upon but not dictate on
how you should do it
- Templates files are customizable to suite your specific need### Requirements
#### Mandatory
- [Git][] the free and opensource distributed version control system.
### Optional
- Valid [Github][] account so that you can share your awesome gem with the community.
### Installation
Install the ruby gem
```sh
gem install gem_bootstrap
```Then just run the `gem_bootstrap` without any argument for list of help
```
# Usage/Synopsis:
gem_bootstrap [GEM_NAME] -g, --github-id [GITHUB_ID] -e, --email [EMAIL] -a, --author [AUTHOR] --test-framework [FRAMEWORK]# Create a gem name 'awesome_gem' with minitest as a testing framework (default)
gem_bootstrap awesome_gem -g awesome_developer -e [email protected] -a 'John Guru II'# Create a gem name 'awesome_gem' with rspec as a testing framework
gem_bootstrap awesome_gem -g awesome_developer -e [email protected] -a 'John Guru II' -t rspec
```### Basic Usage
- For testing with [Minitest][] (default test framework)
```
gem_bootstrap awesome_gem --github-id awesome_developer --email [email protected] --author 'John Guru II'
```Should see the output like:
```
create awesome_gem/README.md
create awesome_gem/CHANGELOG.md
create awesome_gem/.yardopts
create awesome_gem/.gitignore
create awesome_gem/Gemfile
create awesome_gem/.rubocop.yml
create awesome_gem/bin/awesome_gem
create awesome_gem/lib/awesome_gem.rb
create awesome_gem/lib/awesome_gem/version.rb
create awesome_gem/lib/awesome_gem/cli.rb
create awesome_gem/lib/awesome_gem/awesome_gem.rb
create awesome_gem/Rakefile
create awesome_gem/Guardfile
create awesome_gem/awesome_gem.gemspec
create awesome_gem/test/test_helper.rb
create awesome_gem/test/lib/awesome_gem/test_awesome_gem.rb
create awesome_gem/LICENSE
```- For testing with [Rspec][]
```
gem_bootstrap awesome_gem --github-id awesome_developer --email [email protected] --author 'John Guru II' --test-framework rspec
```Should see the output like:
```
create awesome_gem/README.md
create awesome_gem/CHANGELOG.md
create awesome_gem/.yardopts
create awesome_gem/.gitignore
create awesome_gem/Gemfile
create awesome_gem/.rubocop.yml
create awesome_gem/bin/awesome_gem
create awesome_gem/lib/awesome_gem.rb
create awesome_gem/lib/awesome_gem/version.rb
create awesome_gem/lib/awesome_gem/cli.rb
create awesome_gem/lib/awesome_gem/awesome_gem.rb
create awesome_gem/Rakefile
create awesome_gem/Guardfile
create awesome_gem/awesome_gem.gemspec
create awesome_gem/spec/spec_helper.rb
create awesome_gem/spec/lib/awesome_gem/awesome_gem_spec.rb
create awesome_gem/LICENSE
``````sh
# Change directory to the generated gem
cd awesome_gem# Build the gem
bundle# Run the default rake task (minitest and rubocop)
rake# Install the gem to your local system
rake install# You should have the basic command line that you can run like
awesome_gem
```- Now you are ready to add your own logic/implementation in `./awesome_gem/lib/awesome_gem.rb`
### Contributing
1. Fork it
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 new Pull Request[Git]: http://git-scm.com/
[github]: https://github.com/
[Grit]: https://github.com/mojombo/grit
[Minitest]: https://github.com/seattlerb/minitest
[Rspec]: https://github.com/rspec/rspec
[Thor]: https://github.com/erikhuda/thor
[Yard]: https://github.com/lsegal/yard
[Rubocop]: https://github.com/bbatsov/rubocop
[Pry]: https://github.com/pry/pry
[Guard]: https://github.com/guard/guard
[Semantic Versioning]: http://semver.org