{"id":18319792,"url":"https://github.com/redding/ggem","last_synced_at":"2025-04-05T22:31:36.445Z","repository":{"id":1495332,"uuid":"1747302","full_name":"redding/ggem","owner":"redding","description":"\"Juh Gem\", baby!  A gem utility CLI.","archived":false,"fork":false,"pushed_at":"2021-11-04T14:33:42.000Z","size":201,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-03-14T15:25:50.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redding.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-05-14T11:05:33.000Z","updated_at":"2021-11-04T14:33:42.000Z","dependencies_parsed_at":"2022-08-16T13:25:18.134Z","dependency_job_id":null,"html_url":"https://github.com/redding/ggem","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redding%2Fggem","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redding%2Fggem/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redding%2Fggem/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redding%2Fggem/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redding","download_url":"https://codeload.github.com/redding/ggem/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411236,"owners_count":20934650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T18:14:16.469Z","updated_at":"2025-04-05T22:31:36.088Z","avatar_url":"https://github.com/redding.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GGem\n\nA gem utility CLI.\n\n```\n$ cd /my/projects\n$ ggem -h\nUsage: ggem [COMMAND] [options]\n\nOptions:\n        --version\n        --help\n\nCommands:\n  generate (g) # Create a gem given a GEM-NAME\n$ ggem generate mygem\ncreated gem in /my/projects/mygem\ninitialized gem git repo\n$ cd mygem/\n$ ggem -h\nUsage: ggem [COMMAND] [options]\n\nOptions:\n        --version\n        --help\n\nCommands:\n  generate (g) # Create a gem given a GEM-NAME\n  build    (b) # Build mygem-0.0.1.gem into the pkg directory\n  install  (i) # Build and install mygem-0.0.1.gem into system gems\n  push     (p) # Push built mygem-0.0.1.gem to https://rubygems.org\n  tag      (t) # Tag v0.0.1 and push git commits/tags\n  release  (r) # Tag v0.0.1 and push built mygem-0.0.1.gem to https://rubygems.org\n```\n\n## Usage\n\n### Generate\n\n```\n$ ggem generate -h\nUsage: ggem generate [options] GEM-NAME\n\nOptions:\n        --version\n        --help\n\nDescription:\n  Create a gem given a GEM-NAME\n$ ggem generate mygem\n$ git commit -m \"Gem created with ggem\"\n```\n\nThe `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.\n\n* creates `lib` and gem files similar to `bundle gem` (as of Bundler 1.2.4)\n* creates `test` files\n* adds `TODO` entries in files where user input is needed\n* source control using [Git](https://git-scm.com/)\n* test using [Assert](https://github.com/redding/assert)\n\nYou can also call this command using the `g` alias: `ggem g -h`.\n\n### Build\n\n```\n$ ggem build -h\nUsage: ggem build [options]\n\nOptions:\n        --version\n        --help\n\nDescription:\n  Build mygem-0.0.1.gem into the pkg directory\n```\n\nThe `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`.\n\n### Install\n\n```\n$ ggem install -h\nUsage: ggem install [options]\n\nOptions:\n        --version\n        --help\n\nDescription:\n  Build and install mygem-0.0.1.gem into system gems\n```\n\nThe `install` command first builds a .gem file and then installs it.  The command is the equivalent of running `ggem build \u0026\u0026 gem install pkg/mygem-0.0.1.gem`.  You can also call this command using the `i` alias: `ggem i -h`.\n\n### Push\n\n```\nUsage: ggem push [options]\n\nOptions:\n        --version\n        --help\n\nDescription:\n  Push built mygem-0.0.1.gem to https://rubygems.org\n```\n\nThe `push` command first builds a .gem file and then pushes it to a gem host.  The command is the equivalent of running `ggem build \u0026\u0026 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`.\n\n#### Using a custom gem host\n\nTo override the default `https://rubygems.org` push host, add a metadata entry to the .gemspec file:\n\n```ruby\n# ...\ngem.metadata[\"allowed_push_host\"] = \"https://gems.example.com\"\n# ...\n```\n\nNow GGem will now use the allowed push host when pushing/releasing the gem.\n\n```\n$ ggem push -h\nUsage: ggem push [options]\n\nOptions:\n        --version\n        --help\n\nDescription:\n  Push built mygem-0.0.1.gem to https://gems.example.com\n```\n\n### Tag\n\n```\n$ ggem tag -h\nUsage: ggem tag [options]\n\nOptions:\n        --version\n        --help\n\nDescription:\n  Tag v0.0.1 and push git commits/tags\n```\n\nThe `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} \u0026\u0026 git push \u0026\u0026 git push --tags`.  You can also call this command using the `t` alias: `ggem t -h`.\n\n### Release\n\n```\n$ ggem release -h\nUsage: ggem release [options]\n\nOptions:\n        --version\n        --help\n\nDescription:\n  Tag v0.0.1 and push built mygem-0.0.1.gem to https://rubygems.org\n  (macro for running `ggem tag \u0026\u0026 ggem push`)\n```\n\nAs the help message says, this command is just a macro for running `ggem tag \u0026\u0026 ggem push`.  You can also call this command using the `r` alias: `ggem r -h`.\n\n## Installation\n\n```\n$ gem install ggem\n```\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am \"Added some feature\"`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredding%2Fggem","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredding%2Fggem","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredding%2Fggem/lists"}