0
0
Rubyprogramming~30 mins

Gemfile for project dependencies in Ruby - Mini Project: Build & Apply

Choose your learning style9 modes available
Gemfile for project dependencies
📖 Scenario: You are starting a new Ruby project and need to manage the libraries (called gems) your project will use. Ruby uses a file named Gemfile to list these dependencies so they can be installed easily.
🎯 Goal: Create a Gemfile that lists specific gems your project needs, then add a Ruby version requirement, and finally print the list of gems to confirm your setup.
📋 What You'll Learn
Create a Gemfile with exact gem entries
Add a Ruby version requirement in the Gemfile
Use Ruby code to read and print the gem names from the Gemfile
💡 Why This Matters
🌍 Real World
Managing project dependencies with a Gemfile is essential for Ruby projects to ensure consistent environments and easy setup.
💼 Career
Ruby developers and DevOps engineers use Gemfiles daily to manage libraries and maintain project stability.
Progress0 / 4 steps
1
Create a Gemfile with gems
Create a file named Gemfile and add these exact gem entries:
gem 'rails', '7.0.4', gem 'puma', '5.6.4', and gem 'nokogiri', '1.14.4'.
Ruby
Need a hint?

Start your Gemfile with source 'https://rubygems.org' then add each gem line exactly as shown.

2
Add Ruby version requirement
Add the exact line ruby '3.2.2' at the top of the Gemfile to specify the Ruby version your project uses.
Ruby
Need a hint?

The Ruby version line should be the very first line in the Gemfile.

3
Read gem names from Gemfile
Write Ruby code that reads the Gemfile and creates a list called gem_names containing only the gem names as strings (e.g., 'rails', 'puma', 'nokogiri'). Use File.readlines('Gemfile') and string methods to extract the names.
Ruby
Need a hint?

Use map to transform lines and compact to remove nil values.

4
Print the list of gem names
Write a puts statement to print the gem_names list so the output shows:
["rails", "puma", "nokogiri"]
Ruby
Need a hint?

Use puts gem_names.inspect to print the array as shown.