Ruby language logo

For about two months now I’ve been learning how to code in Ruby using Learn Ruby the Hard Way. Never mind the title, but it’s actually a very good resource for learning how to program in Ruby. The last few exercises that I’ve gone through could have been written better, but overall, it’s a good book for those just getting into the world of software coding.

Exercise 46 of the book, which deals with how to set up a skeleton directory for a Ruby project, shows how to go about it manually. With the right tools installed, however, the same task can be completed automatically, which is what you’re going to learn how to do in this article.

It will help if you have Git installed already. If not, use this article to install it on your favorite Linux distribution, then come back here to continue with this tutorial.

Welcome back!

To begin, you’ll need to install a couple of applications – ruby-bundler and ruby-rspec-core. The former helps you manage Ruby application dependencies and gives you access to the bundle and bundler commands, while the latter gives you access to rspec, a standalone test runner for Ruby RSpec test suites. RSpec is a testing tool for Ruby. Use the command shown below to install both applications.

# Install the following

sudo apt install ruby-bundler ruby-rspec-core


With those two installed, you are now ready to create your project’s skeleton structure, which you do with the following command:

# To create a Ruby project skeleton type
# Replace projectA with the name of your project
# This command will fail if Git is not installed

bundle gem projectA


After running that command, you’ll be asked the following question. My comments come before each question. Note that your answer to the questions will be applied automatically to future projects you create using the bundle gem command above.

# The name of the project is ProjectA. Yours, of course, will be different
# My answer to this question was "rspec". I've never used "minitest", but nothing stops you from using it
 Creating gem 'projectA'...
Do you want to generate tests with your gem?
Type 'rspec' or 'minitest' to generate those test files now and in the future. rspec/minitest/(none):  

# If you answer "y" here, a license file called LICENSE.txt will be populated with the MIT license. Otherwise,
# a license file will not be created 

Do you want to license your code permissively under the MIT license?
This means that any other developer or company will be legally allowed to use your code for free as long as 
they admit you created it. You can read more about the MIT license at y/(n):

# With a "y" answer to this question, a code of conduct file called will be created. Otherwise, 
# it will not be created

Do you want to include a code of conduct in gems you generate?
Codes of conduct can increase contributions to your project by contributors who prefer collaborative, safe spaces. 
You can read more about the code of conduct at Having a code of conduct means agreeing 
to the responsibility of enforcing it, so be sure that you are prepared to do that. Be sure that your email 
address is specified as a contact in the generated code of conduct so that people know who to contact in case 
of a violation. For suggestions about how to enforce codes of conduct, see y/(n):


Once you’ve answered that last question, your project’s files will be generated. The final output will look like this:

# This is the final output of the bundle gem command

Code of conduct enabled in config
      create  projectA/Gemfile
      create  projectA/.gitignore
      create  projectA/lib/projectA.rb
      create  projectA/lib/projectA/version.rb
      create  projectA/projectA.gemspec
      create  projectA/Rakefile
      create  projectA/
      create  projectA/bin/console
      create  projectA/bin/setup
      create  projectA/.travis.yml
      create  projectA/.rspec
      create  projectA/spec/spec_helper.rb
      create  projectA/spec/projectA_spec.rb
      create  projectA/
Initializing git repo in /home/kamit/projectA


Now you can start editing those files and fill in items specific to your project. If Git was properly set up with your credentials using this article, your gemspec file should be populated with the global username and email address you configured for Git. Edit that file to fill in the rest of the information specific to your project.

Related Post:  Enable AMD SVM to install 64-bit operating systems in Virtualbox 5.1

So there you have it – a skeleton structure for your Ruby project.

Related Post:  How to replace LibreOffice with Apache OpenOffice on Fedora 20

How do you run a basic test using RSpec? Change into the project’s directory and type the following command:

# To run a test, you must be in the project's directory, so change into it
# Replace "projectA" with the name of your project

cd projectA

# Then run your first test
# It might fail if your gemspec file is missing vital information


# The output should be of this sort
# > indicates output

> No examples found.

> Finished in 0.00033 seconds (files took 0.0627 seconds to load)
> 0 examples, 0 failures


Ruby language logo


Share on facebook
Share on twitter
Share on pinterest
Share on linkedin

Hola! Did you notice that no longer runs network ads?  Yep, no more ads from the usual suspects that track you across the Internet.  But since  I still need to pay to keep the site running, feel free to make a small donation by PayPal.

Subscribe for updates. Trust me, no spam!

Mailchimp Signup Form

Sponsored links

1. Attend Algorithm Conference, a top AI and ML event for 2020.
2. Reasons to use control panel for your server.
3. DHgate Computers Electronics, Cell Phones & more.

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest

On social media
Via my newsletter
Mailchimp Signup Form

Partner links

1. Attend Algorithm Conference, a top AI and ML event for 2021.
2. Reasons to use control panel for your server.
3. DHgate Computers Electronics, Cell Phones & more.
Hacking, pentesting distributions

Linux Distributions for Hacking

Experts use these Linux distributions for hacking, digital forensics, and pentesting.


The authors of these books are confirmed to speak during

Algorithm Conference

T-minus AI

Author was the first chairperson of AI for the U.S. Air Force.

The case for killer robots

Author is the Director of the Center for Natural and Artificial Intelligence.

Why greatness cannot be planned

Author works on AI safety as a Senior Research Scientist at Uber AI Labs.

Anastasia Marchenkova

An invitation from Anastasia Marchenkova

Hya, after stints as a quantum researcher at Georgia Tech Quantum Optics & Quantum Telecom Lab, and the University of Maryland Joint Quantum Institute, I’m now working on superconducting qubit quantum processors at Bleximo. I’ll be speaking during Algorithm Conference in Austin, Texas, July 16 – 18, 2020. Meet me there and let’s chat about progress and hype in quantum computing.