Pretty Prettying a SimpleDelegator object which implements `#inspect` doesn't work
Nessuno ha ancora preso questa issue.
- Lingua principale
- Ruby
- Stelle
- 36
- Fork
- 21
- Merge medio
- 8h 22m
- PR unite (30g)
- 1
Descrizione
Hey there!
I come across this weird bug(?) when I was trying to inspect an object in irb. Since irb uses pp to print the objects I'm opening this issue here.
In my case I have a class that inherits from SimpleDelegator:
require "delegate"
class Parent
def inspect
"<parent>"
end
end
class Child < SimpleDelegator
def inspect
"<child>"
end
end
In irb I noticed it because the objects are being shown using inspect:
irb(main):001> Parent.new.inspect
# => "<parent>"
irb(main):002> Parent.new
# => <parent>
irb(main):003> Child.new(Parent.new).inspect
# => "<child>"
irb(main):004> Child.new(Parent.new)
# => <parent>
Personally, I would have expected the last one to also show <child>. Now after digging into this a bit more (thanks @st0012), it seems like you can also reproduce this in pp directly using:
require "delegate"
require "pp"
class Parent
def inspect
"<parent>"
end
end
class Child < SimpleDelegator
def inspect
"<child>"
end
end
parent = Parent.new
child = Child.new(parent)
pp child
#=> "<parent>"
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia eseguendo la riproduzione Ruby fornita con delegate e pp, quindi confronta il comportamento di Parent e Child quando vengono stampati. Leggi il comportamento di PrettyPrinter relativo a SimpleDelegator e a inspect personalizzato; il lavoro è completato quando la rappresentazione prevista di Child viene stampata in modo coerente senza interrompere la delega ordinaria.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- ruby
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100