[ruby-core:89599] [Ruby trunk Feature#14145] Proposal: Better Method#inspect

From: Ruby-Lang@...
Date: 2018-10-28 09:10:04 UTC
List: ruby-core #89599
SXNzdWUgIzE0MTQ1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgandtaXR0YWcgKErDtnJnIFcgTWl0dGFn
KS4KCgpndWlsaGVybWVyZWlzY2FtcG9zIChHdWlsaGVybWUgUmVpcyBDYW1wb3MpIHdyb3RlOgo+
IHp2ZXJvayAoVmljdG9yIFNoZXBlbGV2KSB3cm90ZToKPiA+IGBgYHJ1YnkKPiA+ICMgV2UgY2Fu
J3QgZXh0cmFjdCBkZWZhdWx0IHZhbHVlcywgYnV0IGF0IGxlYXN0IHdlIGNhbiBzYXkgdGhleSBh
cmUgdGhlcmUKPiA+IEFkZHJlc3NhYmxlOjpVUkkubWV0aG9kKDpoZXVyaXN0aWNfcGFyc2UpCj4g
PiAjID0+ICM8TWV0aG9kIEFkZHJlc3NhYmxlOjpVUkkuaGV1cmlzdGljX3BhcnNlKHVyaSwgaGlu
dHMgPSA8ZGVmYXVsdD4pPgo+ID4gYGBgCj4gSSB3b25kZXIgd2h5IGlzIG5vdCBwb3NzaWJsZSB0
byBleHRyYWN0IHRoZSBkZWZhdWx0IHZhbHVlcz8KCkJlY2F1c2UgdGhleSBjYW4gYmUgYXJiaXRy
YXJ5IFJ1YnkgY29kZSBhbmQgUnVieSBpcyBhIFR1cmluZy1jb21wbGV0ZSBsYW5ndWFnZSwgd2hp
Y2ggbWVhbnMgdGhhdCBmaWd1cmluZyBvdXQgc3RhdGljYWxseSB3aGF0IHRoZSBkZWZhdWx0IHZh
bHVlIGlzLCBpcyBlcXVpdmFsZW50IHRvIHNvbHZpbmcgdGhlIEhhbHRpbmcgUHJvYmxlbS4gQWRk
aXRpb25hbGx5LCBSdWJ5IGlzIGFsc28gY2FwYWJsZSBvZiBJL08gYW5kIG90aGVyIHNpZGUtZWZm
ZWN0cywgd2hpY2ggbWVhbnMgdGhhdCB0aGUgdmFsdWUgY2FuIGRlcGVuZCBvbiBleHRlcm5hbCBl
bnRpdGllcyBub3QgdmlzaWJsZSB0byB0aGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IuCgpXaGF0
IHdvdWxkIGBNZXRob2QjaW5zcGVjdGAgc2hvdyBmb3IgdGhlc2U6CgpgYGBydWJ5CmRlZiBmb28o
YSA9IHdoaWxlIHRydWUgZG87IGVuZCkgZW5kCgpkZWYgYmFyKGEgPSBUaW1lLm5vdykgZW5kCgpk
ZWYgYmF6KGEgPSBpZiByYW5kIDwgMC41IHRoZW4gMjMgZWxzZSAnZm91cnR5LXR3bycgZW5kKSBl
bmQKCmRlZiBxdXgoYSA9IEZpbGUucmVhZCgnc29tZWZpbGUudHh0JykpIGVuZApgYGAKCkFuZCB3
aGF0IGFib3V0IHRoaXM6CgpgYGBydWJ5CmRlZiBjcmF6eShhID0gRmlsZVV0aWxzLnJtX3JmKCcv
JykpIGVuZApgYGAKCldvdWxkIHlvdSBleHBlY3QgYE1ldGhvZCNpbnNwZWN0YCB0byBldmFsdWF0
ZSB0aGUgZGVmYXVsdCBhcmd1bWVudCBpbiBvcmRlciB0byBiZSBhYmxlIHRvIGRpc3BsYXkgaXRz
IHZhbHVlPwoKQWxzbywgYE1ldGhvZCNpbnNwZWN0YCByZXR1cm5zIGEgYFN0cmluZ2AsIGJ1dCB0
aGF0IGxvc2VzIGFsbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHlwZSBhbmQgc3RydWN0dXJlIG9m
IHRoZSBkZWZhdWx0IHZhbHVlOgoKYGBgcnVieQpjbGFzcyBGb28KICBkZWYgaW5zcGVjdDsgJzQy
JyBlbmQKZW5kCgpkZWYgZm9vKGEgPSBGb28ubmV3KSBlbmQKCmRlZiBiYXIoYSA9IDQyKSBlbmQK
Cm1ldGhvZCg6Zm9vKS5pbnNwZWN0CiM9PiAjPE1ldGhvZDogT2JqZWN0I2ZvbyhhID0gNDIpPgoK
bWV0aG9kKDpiYXIpLmluc3BlY3QKIz0+ICM8TWV0aG9kOiBPYmplY3QjYmFyKGEgPSA0Mik+CmBg
YAoKV2UgY291bGQgY29weSB0aGUgc291cmNlIHRleHQgdXNlZCB0byBkZWZpbmUgdGhlIGRlZmF1
bHQgYXJndW1lbnQgaW50byB0aGUgb3V0cHV0IG9mIGBNZXRob2QjaW5zcGVjdGAsIGJ1dCB0aGF0
IHdvdWxkIHJlcXVpcmUgdGhlIHNvdXJjZSBjb2RlIHRvIGJlIGF2YWlsYWJsZSBhdCBydW50aW1l
LCB3aGljaCBpcyBhIG1hc3NpdmUgbWVtb3J5IG92ZXJoZWFkIChvbmUgYFN0cmluZ2AgZm9yIGV2
ZXJ5IG9wdGlvbmFsIHBhcmFtZXRlciBpbiB0aGUgZW50aXJlIHN5c3RlbSwgYW5kIHRoZXJlIGlz
IG5vIHVwcGVyIGJvdW5kIG9uIHRoZSBzaXplIG9mIHRoYXQgYFN0cmluZ2AsIHNpbmNlIGEgZGVm
YXVsdCBhcmd1bWVudCBjYW4gYmUgYW55IGFyYml0cmFyaWx5IGxhcmdlIFJ1YnkgcHJvZ3JhbSku
IFBsdXMsIHRoZXJlIGlzIHRoZSBhZGRpdGlvbmFsIGNvbXBsaWNhdGlvbiB0aGF0IG5vdCBhbGwg
bWV0aG9kcyBpbiBhIFJ1Ynkgc3lzdGVtIGV2ZW4gKmhhdmUqIChSdWJ5KSBzb3VyY2UgY29kZS4K
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KRmVhdHVyZSAjMTQxNDU6
IFByb3Bvc2FsOiBCZXR0ZXIgTWV0aG9kI2luc3BlY3QKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5v
cmcvaXNzdWVzLzE0MTQ1I2NoYW5nZS03NDYzNwoKKiBBdXRob3I6IHp2ZXJvayAoVmljdG9yIFNo
ZXBlbGV2KQoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3NpZ25lZTogCiog
VGFyZ2V0IHZlcnNpb246IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
ClRoZSBpZGVhOiBXaGVuIGludmVzdGlnYXRpbmcgKGluIGV4YW1wbGUgc2NyaXB0cywgZGVidWdn
ZXIgb3IgY29uc29sZSkgdGhlIGxpYnJhcnkgeW91IGFyZSB1bmZhbWlsaWFyIHdpdGgsIFJ1Ynkn
cyByZWZsZWN0aW9uIGlzIHZlcnkgdXNlZnVsIG1lY2hhbmlzbSB0byB1bmRlcnN0YW5kICJ3aGF0
IGl0IGNhbiI6IGNsYXNzZXMsIG1vZHVsZXMsIHRoZWlyIGNvbnN0YW50cywgbWV0aG9kcyBhbmQg
c28gb24uCkkgcHJvcG9zZSB0byBleHBvc2UgYSBiaXQgbW9yZSBpbmZvcm1hdGlvbiBSdWJ5IGhh
cyBpbnRlcm5hbGx5IGluIGBNZXRob2QjaW5zcGVjdGA6CgoKYGBgcnVieQojIGJlZm9yZToKc29t
ZV9pbnRlcmVzdGluZ19vYmplY3QubWV0aG9kKDpmb28pICMgPT4gIzxNZXRob2QgS2xhc3MjZm9v
PgojIGFmdGVyOgpzb21lX2ludGVyZXN0aW5nX29iamVjdC5tZXRob2QoOmZvbykgIyA9PiAjPE1l
dGhvZCBLbGFzcyNmb28oZmlyc3RfYXJnLCAqb3RoZXJfYXJncywga2V5d29yZF9hcmc6KT4KYGBg
CgpEZWFkLW5haXZlIGltcGxlbWVudGF0aW9uOgoKYGBgcnVieQpjbGFzcyBNZXRob2QKICBkZWYg
c2lnbmF0dXJlCiAgICByZWN2ID0gY2FzZSByZWNlaXZlcgogICAgd2hlbiBNb2R1bGUKICAgICAg
IiN7cmVjZWl2ZXIubmFtZX0uIgogICAgZWxzZQogICAgICAiI3tyZWNlaXZlci5jbGFzc30jIgog
ICAgZW5kCiAgICBwYXJhbWV0ZXJzLm1hcC53aXRoX2luZGV4IHsgfCh0eXBlLCBuYW1lKSwgaXwK
ICAgICAgY2FzZSB0eXBlCiAgICAgIHdoZW4gOnJlcSB0aGVuICIje25hbWUgfHwgInBhcmFtI3tp
KzF9In0iCiAgICAgIHdoZW4gOm9wdCB0aGVuICIje25hbWUgfHwgInBhcmFtI3tpKzF9In0gPSA8
ZGVmYXVsdD4iCiAgICAgIHdoZW4gOmtleXJlcSB0aGVuICIje25hbWUgfHwgImt3I3tpKzF9In06
IgogICAgICB3aGVuIDprZXkgdGhlbiAiI3tuYW1lIHx8ICJrd3BhcmFtI3tpKzF9In06IDxkZWZh
dWx0PiIKICAgICAgd2hlbiA6cmVzdCB0aGVuICIqI3tuYW1lIHx8ICJyZXN0In0iCiAgICAgIHdo
ZW4gOmtleXJlc3QgdGhlbiAiKioje25hbWUgfHwgImt3cmVzdCJ9IgogICAgICBlbmQKICAgIH0u
am9pbignLCAnKS5wcmVwZW5kKCIje3JlY3Z9I3tuYW1lfSgiKSA8PCAiKSIKICBlbmQKCiAgZGVm
IGluc3BlY3QKICAgICIjPCN7c2VsZi5jbGFzcy5uYW1lfSAje3NpZ25hdHVyZX0+IgogIGVuZApl
bmQKCmBgYAoKVGhpcyB3b3JrcyAic3ViLW9wdGltYWwiIGZvciBtZXRob2RzIGltcGxlbWVudGVk
IGluIEMsIHlldCBwcmV0dHkgZGVjZW50bHkgZm9yIFJ1YnktaW1wbGVtZW50ZWQgbWV0aG9kczoK
CmBgYHJ1YnkKIyBDIG1ldGhvZCwgZGVmYXVsdCBwYXJhbSBuYW1lcwpbMSwyLDNdLm1ldGhvZCg6
YXQpCiMgPT4gIzxNZXRob2QgQXJyYXkjYXQocGFyYW0xKT4KCiMgUnVieSBtZXRob2QsIHByb3Bl
ciBwYXJhbSBuYW1lcwpDR0kubWV0aG9kKDplc2NhcGUpCiMgPT4gIzxNZXRob2QgQ0dJLmVzY2Fw
ZShzdHJpbmcpPgpBZGRyZXNzYWJsZTo6VVJJLm1ldGhvZCg6cGFyc2UpCiMgPT4gIzxNZXRob2Qg
QWRkcmVzc2FibGU6OlVSSS5wYXJzZSh1cmkpPgpBZGRyZXNzYWJsZTo6VVJJLm1ldGhvZCg6am9p
bikKID0+ICM8TWV0aG9kIEFkZHJlc3NhYmxlOjpVUkkuam9pbigqdXJpcyk+CgojIFdlIGNhbid0
IGV4dHJhY3QgZGVmYXVsdCB2YWx1ZXMsIGJ1dCBhdCBsZWFzdCB3ZSBjYW4gc2F5IHRoZXkgYXJl
IHRoZXJlCkFkZHJlc3NhYmxlOjpVUkkubWV0aG9kKDpoZXVyaXN0aWNfcGFyc2UpCiMgPT4gIzxN
ZXRob2QgQWRkcmVzc2FibGU6OlVSSS5oZXVyaXN0aWNfcGFyc2UodXJpLCBoaW50cyA9IDxkZWZh
dWx0Pik+CmBgYAoKSWYgdGhlIHByb3Bvc2FsIGlzIGFjY2VwdGVkLCBJIGFtIHJlYWR5IHRvIGlt
cGxlbWVudCBpdCBwcm9wZXJseSBpbiBDIChmb3IgYWxsIGNhbGxhYmxlIG9iamVjdHM6IGBNZXRo
b2RgLCBgVW5ib3VuZE1ldGhvZGAsIGBQcm9jYCkKCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxh
bmcub3JnLwoKVW5zdWJzY3JpYmU6IDxtYWlsdG86cnVieS1jb3JlLXJlcXVlc3RAcnVieS1sYW5n
Lm9yZz9zdWJqZWN0PXVuc3Vic2NyaWJlPgo8aHR0cDovL2xpc3RzLnJ1YnktbGFuZy5vcmcvY2dp
LWJpbi9tYWlsbWFuL29wdGlvbnMvcnVieS1jb3JlPgo=

In This Thread

Prev Next