class Author
  include Comparable

  def self.include_mail=(include_mail)
    @@include_mail = include_mail
  end

  def self.include_mail
    @@include_mail ||= false
    @@include_mail
  end

  attr_reader :name
  attr_reader :email

  def initialize(name, email)
    @name = name
    @email = email
  end

  def <=>(b)
    to_i <=> b.to_i
  end

  def to_s
    if self.class.include_mail
      "#{name} <#{email}>"
    else
      name
    end
  end

  def eql?(b)
    to_s.hash == b.to_s.hash
  end

  def hash
    to_s.hash
  end
end