0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Bootstrap the creation of ruby gem so that you don't have to start from scratch. Build with simple, sensible default and very easy to extend. TL;DR; create new gem with `gem_bootstrap awesome_gem -g github_id -e your@email.com -a 'John Guru'`
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.16
~> 2.14
~> 5.10
~> 0.11
~> 11.2
~> 0.52
~> 0.9

Runtime

~> 2.5
~> 0.20
 Project Readme

gem_bootstrap

[Gem Version][gem] [Dependency Status][gemnasium] [Code Climate][codeclimate]

[gem]: http://badge.fury.io/rb/gem_bootstrap) [gemnasium]: https://gemnasium.com/agilecreativity/gem_bootstrap [codeclimate]: https://codeclimate.com/github/agilecreativity/gem_bootstrap

Generate the starting template for creating ruby gem in ruby in just one command.

First install the gem

gem install gem_bootstrap

then generate the new gem

gem_bootstrap awesome_gem --github-id awesome_developer --email cool@awesomedev.com --author 'John Guru II'

or the short version

gem_bootstrap awesome_gem -g awesome_developer -e cool@awesomedev.com -a 'John Guru II'

rather use rspec instead of the default minitest

gem_bootstrap awesome_gem -g awesome_developer -e cool@awesomedev.com -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

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 cool@awesomedev.com -a 'John Guru II'

# Create a gem name 'awesome_gem' with rspec as a testing framework
gem_bootstrap awesome_gem -g awesome_developer -e cool@awesomedev.com -a 'John Guru II' -t rspec

Basic Usage

  • For testing with Minitest (default test framework)
gem_bootstrap awesome_gem --github-id awesome_developer --email cool@awesomedev.com --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
gem_bootstrap awesome_gem --github-id awesome_developer --email cool@awesomedev.com --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
# 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