Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/redding/ggem
"Juh Gem", baby! A gem utility CLI.
https://github.com/redding/ggem
Last synced: about 9 hours ago
JSON representation
"Juh Gem", baby! A gem utility CLI.
- Host: GitHub
- URL: https://github.com/redding/ggem
- Owner: redding
- License: mit
- Created: 2011-05-14T11:05:33.000Z (over 13 years ago)
- Default Branch: main
- Last Pushed: 2021-11-04T14:33:42.000Z (about 3 years ago)
- Last Synced: 2024-03-14T15:25:50.677Z (8 months ago)
- Language: Ruby
- Homepage:
- Size: 196 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GGem
A gem utility CLI.
```
$ cd /my/projects
$ ggem -h
Usage: ggem [COMMAND] [options]Options:
--version
--helpCommands:
generate (g) # Create a gem given a GEM-NAME
$ ggem generate mygem
created gem in /my/projects/mygem
initialized gem git repo
$ cd mygem/
$ ggem -h
Usage: ggem [COMMAND] [options]Options:
--version
--helpCommands:
generate (g) # Create a gem given a GEM-NAME
build (b) # Build mygem-0.0.1.gem into the pkg directory
install (i) # Build and install mygem-0.0.1.gem into system gems
push (p) # Push built mygem-0.0.1.gem to https://rubygems.org
tag (t) # Tag v0.0.1 and push git commits/tags
release (r) # Tag v0.0.1 and push built mygem-0.0.1.gem to https://rubygems.org
```## Usage
### Generate
```
$ ggem generate -h
Usage: ggem generate [options] GEM-NAMEOptions:
--version
--helpDescription:
Create a gem given a GEM-NAME
$ ggem generate mygem
$ git commit -m "Gem created with ggem"
```The `generate` command creates a folder and files for developing, testing, and releasing a gem. It is safe to run on existing gem folders, adding/overwriting where necessary.
* creates `lib` and gem files similar to `bundle gem` (as of Bundler 1.2.4)
* creates `test` files
* adds `TODO` entries in files where user input is needed
* source control using [Git](https://git-scm.com/)
* test using [Assert](https://github.com/redding/assert)You can also call this command using the `g` alias: `ggem g -h`.
### Build
```
$ ggem build -h
Usage: ggem build [options]Options:
--version
--helpDescription:
Build mygem-0.0.1.gem into the pkg directory
```The `build` command creates a .gem file and copies it into the `pkg/` directory. You can also call this command using the `b` alias: `ggem b -h`.
### Install
```
$ ggem install -h
Usage: ggem install [options]Options:
--version
--helpDescription:
Build and install mygem-0.0.1.gem into system gems
```The `install` command first builds a .gem file and then installs it. The command is the equivalent of running `ggem build && gem install pkg/mygem-0.0.1.gem`. You can also call this command using the `i` alias: `ggem i -h`.
### Push
```
Usage: ggem push [options]Options:
--version
--helpDescription:
Push built mygem-0.0.1.gem to https://rubygems.org
```The `push` command first builds a .gem file and then pushes it to a gem host. The command is the equivalent of running `ggem build && gem push pkg/mygem-0.0.1.gem --source https://rubygems.org`. You can also call this command using the `p` alias: `ggem p -h`.
#### Using a custom gem host
To override the default `https://rubygems.org` push host, add a metadata entry to the .gemspec file:
```ruby
# ...
gem.metadata["allowed_push_host"] = "https://gems.example.com"
# ...
```Now GGem will now use the allowed push host when pushing/releasing the gem.
```
$ ggem push -h
Usage: ggem push [options]Options:
--version
--helpDescription:
Push built mygem-0.0.1.gem to https://gems.example.com
```### Tag
```
$ ggem tag -h
Usage: ggem tag [options]Options:
--version
--helpDescription:
Tag v0.0.1 and push git commits/tags
```The `tag` command will tag the current git commit with the `version` data from the .gemspec file. It then pushes any commits and tags. The command is the equivalent of running `git tag -a -m "Version {version}" v{version} && git push && git push --tags`. You can also call this command using the `t` alias: `ggem t -h`.
### Release
```
$ ggem release -h
Usage: ggem release [options]Options:
--version
--helpDescription:
Tag v0.0.1 and push built mygem-0.0.1.gem to https://rubygems.org
(macro for running `ggem tag && ggem push`)
```As the help message says, this command is just a macro for running `ggem tag && ggem push`. You can also call this command using the `r` alias: `ggem r -h`.
## Installation
```
$ gem install ggem
```## 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