Witam, jestem jeszcze zielony w Rubym i mam następujący problem. Stworzyłem sobie taką klasę:
[code]class Bilet
@@cena = 1.50
def self.cena; @@cena; end
def to_s
if @@cena.to_s.split(".")[1].length == 2 # jesli po konwercji na stringa po kropce są dwie cyfry to zwracamy takiego stringa
@@cena.to_s
else #jesli jest tylko jadna to dopisujemy zero
@@cena.to_s + "0"
end
end
end[/code]
ale potrzebuję też klasy reprezentującej Bilet Godzinny ze statyczną zmienną cena i takim samym getterem. Tylko jak chcę zrobić coś tego typu:
class BGodzinny < Bilet
@@cena = 2.00
end
to później Bilet.cena zwraca mi wartość 2.00. Co robię źle? Da się zrobić to w jakiś ładny sposób żeby uniknąć powielania kodu? Bo oczywiście mogę sobię zrobić drugą klasę prawie identyczną ale z inną ceną, tylko to mi się wydaje ohydne
Moim zdaniem w tym przypadku akurat pola statyczne (klasowe) są wręcz na miejscu, ponieważ mając 100 instancji tego samego biletu, nie potrzebuję w każdym z nich trzymać jego ceny.