Though I tried your suggestions, something worked out much better. I
just needed to pass a reference to the calling class with the argument
self. That way I can call back functions just by executing them. For
example:

class Example
  attr_reader :show_info
  def initialize
     @instance = self
     @example2 = Example2.new(@instance)
  end
  def show_info(text)
    puts text
  end
end

class Example2
  def initialize(instance)
    @instance = instance
    @instance.show_info("Yes, this worked out :D")
  end
end