Ruby "Undefined Method" for class method
<p>Ruby beginner struggling to simply print out the value of this @@people hash to the console</p>

<pre><code>class Person
  #have a first_name and last_name attribute with public accessors
  attr_accessor :first_name 
  attr_accessor :last_name

  #have a class attribute called `people` that holds an array of objects
  @@people = []

  #have an `initialize` method to initialize each instance
  def initialize( first_name, last_name )#should take 2 parameters for first_name and last_name
    #assign those parameters to instance variables
    @first_name = first_name
    @last_name = last_name
    #add the created instance (self) to people class variable
    @@people.push self
  end

  #have a `search` method to locate all people with a matching `last_name`
  def self.search( last_name )
    #accept a `last_name` parameter
    @search_name = last_name
    #search the `people` class attribute for instances with the same `last_name`
    @@people.select {|last_name, value| value == "Smith"}.to_s
    #return a collection of matching instances
  end

  #have a `to_s` method to return a formatted string of the person's name
  def to_s
    #return a formatted string as `first_name(space)last_name`
    self.each { |first_name,last_name| print "#{first_name} #{last_name}" }
  end

  def print_hash
    p @@people
  end

end

p1 = Person.new("John", "Smith")
p2 = Person.new("John", "Doe")
p3 = Person.new("Jane", "Smith")
p4 = Person.new("Cool", "Dude")

#puts Person.search("Smith")
puts Person.print_hash
# Should print out
# =&gt; John Smith
# =&gt; Jane Smith
</code></pre>