rubyrubygemsbundler

How to make a Ruby gem executable


I can use gems like RSpec or Rails or Pry by calling their respective gem names, e.g. rspec, rails, pry on the commandline. How can I achieve this with gems I create? I'm using bundler for the basic gem creation.


Solution

  • I actually had my executable in the /bin folder.

    Turns out my issue was that bundler's gem template is too smart for it's own good, and only includes files that have been committed to git. I hadn't actually committed the executable yet, so it wasn't picking it up:

    # gemname.gemspec
    gem.files         = `git ls-files`.split($\)