Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Ruby Ruby Booleans Build a Simple Todo List Program Returning Boolean Values: Part 1

Jared Armes
PLUS
Jared Armes
Courses Plus Student 6,391 Points

Can't figure out "empty?" challenge.

I know that my syntax is off. I have tried looking back at the video, but it just isn't clear to me how this works. I know I need to return true if there are no elements in the array, and false if there are; but how do I check the array? I thank you all for your time and help to make this community so awesome.

todo_list.rb
class TodoList
  attr_reader :name, :todo_items

  def initialize(name)
    @name = name
    @todo_items = []
  end

  def add_item(name)
    todo_items.push(TodoItem.new(name))
  end

  def empty?
    todo_items.each do |item|
      if item == 0
        return true
      else
        return false
        item += 0
    end
  end

end

1 Answer

Jeremy Faith
PLUS
Jeremy Faith
Courses Plus Student 56,696 Points

You do not need to loop over array using the each method. Just use the if statement. You want to check if the array is empty and one way is to check the length. If the length is zero then it is empty else it is not empty.

if todo_items.length == 0
      return true
    else
      return false
end

Hope this helps.