Pretty Prettying a SimpleDelegator object which implements `#inspect` doesn't work
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Ruby
- Sterne
- 36
- Forks
- 21
- Ø Merge
- 8 Std. 22 Min.
- Gemergte PRs (30 T.)
- 1
Beschreibung
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>"
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Führe zunächst die bereitgestellte Ruby-Reproduktion mit delegate und pp aus und vergleiche dann das Verhalten von Parent und Child bei der Ausgabe. Lies das Verhalten von PrettyPrinter im Zusammenhang mit SimpleDelegator und benutzerdefiniertem inspect; abgeschlossen ist die Aufgabe, wenn die beabsichtigte Darstellung von Child konsistent ausgegeben wird, ohne die gewöhnliche Delegation zu beeinträchtigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- ruby
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100