Instructions
Create a Person data class with first_name and last_name attributes.
Add a full_name method that returns "#{first_name} #{last_name}".
Also add an initials method that returns the first letter of each name.
Example: "John Doe" -> "JD"
Hints:
- Use Data.define(:first_name, :last_name)
- full_name concatenates with space
- initials: first_name[0] + last_name[0]
Your Code
Person = Data.define(:first_name, :last_name) do
def full_name
"#{first_name} #{last_name}"
end
def initials
"#{first_name[0]}#{last_name[0]}"
end
end
RSpec.describe "Person Data class" do
let(:person) { Person.new(first_name: "John", last_name: "Doe") }
it "has first and last name" do
expect(person.first_name).to eq("John")
expect(person.last_name).to eq("Doe")
end
it "returns full name" do
expect(person.full_name).to eq("John Doe")
end
it "returns initials" do
expect(person.initials).to eq("JD")
end
end
Results
Click "Run Tests" to see results