Ruby Ruby Blocks Working With Blocks Implementing Block Methods

Miles Smith
Miles Smith
2,688 Points

There's a bug in the MyArray class! Modify the each method to return the member array.

I know I'm overthinking this but I just can't figure out what to do!

my_array.rb
class MyArray
  attr_reader :array
  def initialize
    @array = []
  end

  def push(item)
    array.push(item)
  end

  def each(&block)
    i = 0
    while i < array.length
      block.call(array[i])
      i += 1
    end

  end
end

1 Answer

Caleb Kleveter
MOD
Caleb Kleveter
Treehouse Moderator 37,859 Points

Looking at the each method, you will see two end statements with a blank space in between them. place return array in the space.

def each(&block)
    i = 0
    while i < array.length
      block.call(array[i])
      i += 1
    end
    return array
  end