[ruby] to_s herdefinieren, maar dan toch self gebruiken

Pagina: 1
Acties:

  • bras
  • Registratie: Oktober 2000
  • Laatst online: 13-08 14:08
Ik wil binnen een klasse de to_s functie herdefinieren, maar daarbij wel de klasse identifier blijven weergeven die je normaal te zien krijgt als je geen eigen to_s maakt.

Ik heb de volgende 2 dingen geprobeerd:

code:
1
2
3
def to_s
    "#{self} en nog wat meer beschrijving"
end

Dit gaat mis omdat #{self} opnieuw de to_s van die klasse aanroept en dus oneindig wil proberen (en dan ook stopt na x-aantal keer).

Optie 2:
code:
1
2
3
def to_d
    self + " en nog wat meer beschrijving"
end


maar dan kent hij de + operator niet (snapt niet dat hij het als strings aan elkaar moet concattenaten).

Volgens mij moet er een simpele oplossing zijn, maar die heb ik nog niet gevonden :'(

"When you find yourself in the company of a halfling and an ill-tempered Dragon, remember, you do not have to outrun the Dragon...you just have to outrun the halfling."


  • _Squatt_
  • Registratie: Oktober 2000
  • Niet online
code:
1
2
3
def to_s
  "#{sprintf('#<%s:%#x>', self.class, self.object_id * 2)} en beschrijving"
end

[ Voor 36% gewijzigd door _Squatt_ op 04-10-2004 05:16 ]

"He took a duck in the face at two hundred and fifty knots."


  • bras
  • Registratie: Oktober 2000
  • Laatst online: 13-08 14:08
tnx

"When you find yourself in the company of a halfling and an ill-tempered Dragon, remember, you do not have to outrun the Dragon...you just have to outrun the halfling."