Gemfiles can organize dependencies by purpose, such as development, test, or production.

Dependency Groups

dependency_groups.rb
group_name = 
dependencies = [
  { name: "debug", group: "development" },
  { name: "minitest", group: "test" },
  { name: "puma", group: "production" }
]

matches = dependencies.select { |dependency| dependency[:group] == group_name }
names = matches.map { |dependency| dependency[:name] }
names_text = names.join("/")

puts "group=#{group_name}"
puts "count=#{names.length}"
puts "gems=#{names_text}"
group_name = 
dependencies = [
  { name: "debug", group: "development" },
  { name: "minitest", group: "test" },
  { name: "puma", group: "production" }
]

matches = dependencies.select { |dependency| dependency[:group] == group_name }
names = matches.map { |dependency| dependency[:name] }
names_text = names.join("/")

puts "group=#{group_name}"
puts "count=#{names.length}"
puts "gems=#{names_text}"
group_name = 
dependencies = [
  { name: "debug", group: "development" },
  { name: "minitest", group: "test" },
  { name: "puma", group: "production" }
]

matches = dependencies.select { |dependency| dependency[:group] == group_name }
names = matches.map { |dependency| dependency[:name] }
names_text = names.join("/")

puts "group=#{group_name}"
puts "count=#{names.length}"
puts "gems=#{names_text}"
dependency group A dependency group is just a label that helps decide when a dependency is needed.