Instructions
Create a function greet_user that takes a user hash and returns
a greeting based on the user's role.
Use hash pattern matching:
ruby
case user
in { name:, role: "admin" }
"Welcome back, Admin #{name}!"
in { name: }
"Hello, #{name}!"
end
Hints:
- Match hash keys directly: { name:, role: }
- Can match specific values: role: "admin"
- Matched keys become local variables
Your Code
def greet_user(user)
case user
in { name:, role: "admin" }
"Welcome back, Admin #{name}!"
in { name:, role: "guest" }
"Welcome, Guest #{name}!"
in { name: }
"Hello, #{name}!"
end
end
RSpec.describe "greet_user" do
it "greets admin specially" do
expect(greet_user({ name: "Alice", role: "admin" })).to eq("Welcome back, Admin Alice!")
end
it "greets guest" do
expect(greet_user({ name: "Bob", role: "guest" })).to eq("Welcome, Guest Bob!")
end
it "greets regular user" do
expect(greet_user({ name: "Charlie" })).to eq("Hello, Charlie!")
end
end
Results
Click "Run Tests" to see results