dwww Home | Manual pages | Find package

BUNDLE-GEM(1)               General Commands Manual               BUNDLE-GEM(1)

NAME
       bundle-gem - Generate a project skeleton for creating a rubygem

SYNOPSIS
       bundle gem GEM_NAME OPTIONS

DESCRIPTION
       Generates  a directory named GEM_NAME with a Rakefile, GEM_NAME.gemspec,
       and other supporting files and directories that can be used to develop a
       rubygem with that name.

       Run rake -T in the resulting project for a list of Rake tasks  that  can
       be used to test and publish the gem to rubygems.org.

       The  generated  project  skeleton can be customized with OPTIONS, as ex-
       plained below. Note  that  these  options  can  also  be  specified  via
       Bundler's global configuration file using the following names:

       •   gem.cocgem.mitgem.test

OPTIONS--exe,  --bin,  -b: Specify that Bundler should create a binary exe-
           cutable (as exe/GEM_NAME) in the generated rubygem project. This bi-
           nary will also be added to the GEM_NAME.gemspec manifest.  This  be-
           havior is disabled by default.

       •   --no-exe:  Do  not create a binary (overrides --exe specified in the
           global config).

       •   --coc: Add a CODE_OF_CONDUCT.md file to the root  of  the  generated
           project.  If  this option is unspecified, an interactive prompt will
           be displayed and the answer will be saved in Bundler's global config
           for future bundle gem use.

       •   --no-coc: Do not create a CODE_OF_CONDUCT.md (overrides --coc speci-
           fied in the global config).

       •   --changelog Add a CHANGELOG.md file to the  root  of  the  generated
           project.  If  this option is unspecified, an interactive prompt will
           be displayed and the answer will be saved in Bundler's global config
           for future bundle gem use.

       •   --no-changelog: Do not create a CHANGELOG.md (overrides  --changelog
           specified in the global config).

       •   --ext=c, --ext=rust: Add boilerplate for C or Rust (currently magnus
           https://docs.rs/magnus   based)  extension  code  to  the  generated
           project. This behavior is disabled by default.

       •   --no-ext: Do not add extension code (overrides  --ext  specified  in
           the global config).

       •   --git: Initialize a git repo inside your library.

       •   --github-username=GITHUB_USERNAME: Fill in GitHub username on README
           so  that you don't have to do it manually. Set a default with bundle
           config set --global gem.github_username <your_username>.

       •   --mit: Add an MIT license to a LICENSE.txt file in the root  of  the
           generated  project. Your name from the global git config is used for
           the copyright statement. If this option is unspecified, an  interac-
           tive  prompt  will  be  displayed  and  the  answer will be saved in
           Bundler's global config for future bundle gem use.

       •   --no-mit: Do not create a LICENSE.txt (overrides --mit specified  in
           the global config).

       •   -t,  --test=minitest,  --test=rspec,  --test=test-unit:  Specify the
           test framework that Bundler should use when generating the  project.
           Acceptable   values   are   minitest,   rspec   and  test-unit.  The
           GEM_NAME.gemspec will be configured and a skeleton test/spec  direc-
           tory will be created based on this option. Given no option is speci-
           fied:

           When  Bundler  is  configured  to  generate  tests, this defaults to
           Bundler's global config setting gem.test.

           When Bundler is configured to not  generate  tests,  an  interactive
           prompt will be displayed and the answer will be used for the current
           rubygem project.

           When  Bundler  is  unconfigured,  an interactive prompt will be dis-
           played and the answer will be saved in Bundler's global  config  for
           future bundle gem use.

       •   --no-test:  Do  not use a test framework (overrides --test specified
           in the global config).

       •   --changelog: Generate changelog file. Set a default with bundle con-
           fig set --global gem.changelog true.

       •   --ci, --ci=circle, --ci=github, --ci=gitlab: Specify the  continuous
           integration  service  that  Bundler  should  use when generating the
           project. Acceptable values are github, gitlab and circle. A configu-
           ration file will be generated in the project directory. Given no op-
           tion is specified:

           When Bundler is configured to generate CI files,  this  defaults  to
           Bundler's global config setting gem.ci.

           When  Bundler is configured to not generate CI files, an interactive
           prompt will be displayed and the answer will be used for the current
           rubygem project.

           When Bundler is unconfigured, an interactive  prompt  will  be  dis-
           played  and  the answer will be saved in Bundler's global config for
           future bundle gem use.

       •   --no-ci: Do not use a continuous integration service (overrides --ci
           specified in the global config).

       •   --linter, --linter=rubocop, --linter=standard:  Specify  the  linter
           and code formatter that Bundler should add to the project's develop-
           ment  dependencies.  Acceptable  values  are rubocop and standard. A
           configuration file will be generated in the project directory. Given
           no option is specified:

           When Bundler is  configured  to  add  a  linter,  this  defaults  to
           Bundler's global config setting gem.linter.

           When  Bundler  is  configured  not  to  add a linter, an interactive
           prompt will be displayed and the answer will be used for the current
           rubygem project.

           When Bundler is unconfigured, an interactive  prompt  will  be  dis-
           played  and  the answer will be saved in Bundler's global config for
           future bundle gem use.

       •   --no-linter: Do not add a linter (overrides  --linter  specified  in
           the global config).

       •   --rubocop:  Add rubocop to the generated Rakefile and gemspec. Set a
           default with bundle config set --global gem.rubocop true.

       •   --edit=EDIT, -e=EDIT: Open the resulting GEM_NAME.gemspec  in  EDIT,
           or the default editor if not specified. The default is $BUNDLER_EDI-
           TOR, $VISUAL, or $EDITOR.

SEE ALSO
       •   bundle config(1) bundle-config.1.html

                                   March 2025                     BUNDLE-GEM(1)

Generated by dwww version 1.16 on Tue Dec 16 07:00:23 CET 2025.