断片的なコード過ぎて、このコードでは意味がわかりかねます。
コメントでおっしゃっていたようなものは、いろいろな手段で実現可能ですが、
要するにこういうことですか?
Ruby
1class PersonalInfo
2 # 属性に対するアクセサ
3 attr_accessor :name, :birth_date, :address, :tel
4 # イニシャライザ
5 def initialize(name, birth_date, address, tel)
6 @name = name
7 @birth_date = birth_date
8 @address = address
9 @tel = tel
10 end
11end
12class AddressBook
13 # クラス変数宣言
14 @@data = []
15 # クラス変数に引数のPersonalInfoを追加
16 def self.add_personal_info(personal_info)
17 @@data << personal_info
18 end
19 # クラス変数からnameが同一のPersonalInfoを返す
20 def self.serach(name)
21 @@data.find{|p| p.name == name}
22 end
23end
24
25# データを投入
26AddressBook.add_persinal_info(PersonalInfo.new('山田太郎',Time.local(1900,1,1),'東京都港区六本木','000-000-0000')
27# 他のデータも投入
28AddressBook.search('山田太郎')
29# 上記戻り値は最初に投入したPersonalInfo
最低でもこれぐらいは無いと何がしたいのかわからないですよ。