title: Ruby "Undefined Method" for class method
body: <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>