-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsinifler.rb
More file actions
executable file
·62 lines (54 loc) · 1.2 KB
/
sinifler.rb
File metadata and controls
executable file
·62 lines (54 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
class Kisi
attr_accessor :kullanici_adi, :sifre, :ad, :soyad, :yas, :cinsiyet, :kilo, :boy, :hastalik
def initialize(veriler)
fail ArgumentError unless veriler.is_a? Array
@kullanici_adi,@sifre,@ad,@soyad,@yas,@cinsiyet,@kilo,@boy,@hastalik = *veriler
@eski_ad = @kullanici_adi
end
def satir
"#{@kullanici_adi},#{@sifre},#{@ad},#{@soyad},#{@yas},#{@cinsiyet},#{@kilo},#{@boy},#{@hastalik}"
end
def kaydet
File.open("kisiler","a") do |dosya|
dosya.puts satir
end
end
def sifirdan_kaydet
kisi = []
File.read("kisiler").each_line do |line|
if line.split(",")[0] == @eski_ad
kisi << satir
else
kisi << line
end
end
File.open("kisiler", "w") do |dosya|
kisi.each { |k| dosya.puts k }
end
end
def Kisi.satir(satir)
Kisi.new(satir.split(","))
end
def endeks
kilo_endeks
end
def ideal
ideal_kilo
end
def self.kisiler
kisiler = []
File.open("kisiler","r") do |dosya|
dosya.readlines.each do |satir|
kisiler << self.satir(satir.chomp)
end
end
kisiler
end
private
def kilo_endeks
(@kilo.to_f / ((@boy.to_f/100)**2).round(2)).round
end
def ideal_kilo
(kilo_endeks*(@boy.to_i**2)).round
end
end