[ruby-core:91421] [Ruby trunk Feature#15580] Proposal: method addition to class String called .indices ( String#indices )

From: duerst@...
Date: 2019-02-06 09:35:34 UTC
List: ruby-core #91421
SXNzdWUgIzE1NTgwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgZHVlcnN0IChNYXJ0aW4gRMO8cnN0KS4N
Cg0KDQpKdXN0IGEgcXVpY2sgcXVlc3Rpb246IFNob3VsZCB0aGUgcmVzdWx0cyBpbmNsdWRlIG92
ZXJsYXBzIG9yIG5vdD8gSS5lLiBpcyBpdA0KYCdhYmFiYWJhJy5pbmRpY2VzKCdhYmEnKSAjID0+
IFswLCAyLCA0XWANCm9yIGlzIGl0IGp1c3QNCmAnYWJhYmFiYScuaW5kaWNlcygnYWJhJykgIyA9
PiBbMCwgNF1gPw0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpG
ZWF0dXJlICMxNTU4MDogUHJvcG9zYWw6IG1ldGhvZCBhZGRpdGlvbiB0byBjbGFzcyBTdHJpbmcg
Y2FsbGVkIC5pbmRpY2VzICggU3RyaW5nI2luZGljZXMgKQ0KaHR0cHM6Ly9idWdzLnJ1YnktbGFu
Zy5vcmcvaXNzdWVzLzE1NTgwI2NoYW5nZS03NjY4MQ0KDQoqIEF1dGhvcjogc2hldmVnZW4gKFJv
YmVydCBBLiBIZWlsZXIpDQoqIFN0YXR1czogT3Blbg0KKiBQcmlvcml0eTogTm9ybWFsDQoqIEFz
c2lnbmVlOiANCiogVGFyZ2V0IHZlcnNpb246IA0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KSGVsbG8sDQoNCkkgYW0gbm90IHN1cmUgd2hldGhlciB0aGlzIHByb3Bv
c2FsIGhhcyBhIHJlYWxpc3RpYyBjaGFuY2UgdG8gYmUgYWRkZWQgdG8gUnVieTsgYnV0DQpJIHRo
aW5rIGl0IGlzIG9rIHRvIHN1Z2dlc3QgaXQgbm9uZXRoZWxlc3MgYW5kIGxldCBtYXR6IGFuZCB0
aGUgY29yZSB0ZWFtIGRlY2lkZQ0Kd2hldGhlciB0aGlzIG1heSBiZSBhIHVzZWZ1bCBhZGRpdGlv
biB0byBydWJ5IChhdCB0aGUgbGVhc3QgYSBiaXQpLCBvciB3aGV0aGVyDQppdCBtYXkgbm90IGJl
IGEgdXNlZnVsIGFkZGl0aW9uIG9yIG5vdCBuZWNlc3NhcnkuIEFsc28sIEkgYW0gdHJ5aW5nIHRv
IGxlYXJuIGZyb20NCnNhd2Egb24gdGhlIGlzc3VlIHRyYWNrZXIgaGVyZSwgbWFraW5nIHVzZWZ1
bCBzdWdnZXN0aW9ucy4gOikNCg0KSSBwcm9wb3NlIHRvIGFkZCB0aGUgZm9sbG93aW5nICoqbmV3
IG1ldGhvZCoqIHRvICoqY2xhc3MgU3RyaW5nKiogZGlyZWN0bHk6DQoNCiAgICBTdHJpbmcjaW5k
aWNlcw0KDQpUaGlzIHdvdWxkIGJlaGF2ZSBzaW1pbGFyIHRvIFN0cmluZyNpbmRleCBpbiB0aGF0
IGl0IHdpbGwgcmV0dXJuIHRoZSBwb3NpdGlvbg0Kb2YgYSBzdWJzdHJpbmcsIGJ1dCByYXRoZXIg
dGhhbiByZXR1cm4gYSBzaW5nbGUgbnVtYmVyIG9yIG5pbCwgaXQgc2hvdWxkICoqcmV0dXJuDQph
biBBcnJheSoqIG9mIGFsbCBwb3NpdGlvbnMgZm91bmQgYmV0d2VlbiB0aGUgbWFpbiAodGFyZ2V0
KSBTdHJpbmc7IGFuZCBhIHN1YnN0cmluZw0KbWF0Y2guIElmIG5vIG1hdGNoIGlzIGZvdW5kLCBu
aWwgc2hvdWxkIGJlIHJldHVybmVkLCBzaW1pbGFyIHRvIFN0cmluZyNpbmRleC4NCihJdCBtYXkg
YmUgcG9zc2libGUgdG8gZXh0ZW5kIFN0cmluZyNpbmRleCB0byBwcm92aWRlIHRoaXMgZnVuY3Rp
b25hbGl0eSwgYnV0DQpJIGRvIG5vdCB3YW50IHRvIGdldCBpbnRvIHRoZSBwcm9ibGVtIG9mIGJh
Y2t3YXJkcyBjb21wYXRpYmlsaXR5OyBhbmQgI2luZGljZXMNCnNlZW1zIHRvIG1ha2UgbW9yZSBz
ZW5zZSB0byBtZSB3aGVuIHJlYWRpbmcgaXQgdGhhbiAjaW5kZXgsIHNpbmNlIHRoZSBpbnRlbnQg
aXMNCmEgZGlmZmVyZW50IG9uZSAtIGhlbmNlIHdoeSBJIHN1Z2dlc3QgdGhpcyBuZXcgbWV0aG9k
IGFkZGl0aW9uLikNCg0KUmlnaHQgbm93ICoqLmluZGV4Kiogb24gY2xhc3MgU3RyaW5nIHdpbGwg
cmV0dXJuIGEgcmVzdWx0IGxpa2UgdGhpczoNCg0KICAgICdhYmNhYmNhYmMnLmluZGV4ICdhJyAj
ID0+IDANCiAgICAnYWJjYWJjYWJjJy5pbmRleCAnZCcgIyA9PiBuaWwNCg0KU28gZWl0aGVyIHRo
ZSBudW1iZXIgb2YgdGhlIGZpcnN0IG1lbWJlciBmb3VuZCAoJ2EnLCBhdCAwKSwgb3IgbmlsDQpp
ZiBubyByZXN1bHQgaXMgZm91bmQgKGluIHRoZSBleGFtcGxlIG9mICdkJykuDQoNCkluIGdlbmVy
YWwsIHRoZSBwcm9wb3NhbCBoZXJlIGlzIHRvIGtlZXAgI2luZGljZXMgYmVoYXZpb3VyIHRoZSB2
ZXJ5DQpzYW1lIGFzICNpbmRleCwganVzdCB3aXRoIHRoZSBzb2xlIGRpZmZlcmVuY2UgYmVpbmcg
dGhhdCBhbiBBcnJheQ0KaXMgcmV0dXJuZWQgd2hlbiBhdCB0aGUgbGVhc3Qgb25lIGluZGV4IGlz
IGZvdW5kOyBhbmQgYWxsIHBvc2l0aW9ucw0KdGhhdCBhcmUgZm91bmQgYXJlIHN0b3JlZCBpbiB0
aGF0IGFycmF5Lg0KDQpXaGF0IGlzIHRoZSB1c2UgY2FzZSBmb3IgdGhpcyBwcm9wb3NhbCBvciB3
aHkgd291bGQgSSBzdWdnZXN0IGl0Pw0KDQpBY3R1YWxseSwgdGhlIHVzZSBjYXNlIEkgaGF2ZSBo
YWQgd2FzIGEgdmVyeSBzaW1wbGUgb25lOiB0byBmaW5kIGENCkROQS9STkEgInN1YnNlcXVlbmNl
IiBvZiBqdXN0IGEgc2luZ2xlIG51Y2xlb3RpZGUgaW4gYSBsb25nZXIgRE5BL1JOQQ0Kc3RyaW5n
LiBBcyB5b3UgbWF5IGtub3csIG1vc3Qgb3JnYW5pc21zIHVzZSBkb3VibGUgc3RyYW5kZWQgRE5B
IChkc0ROQSkNCmNvbnNpc3Rpbmcgb2YgZm91ciBkaWZmZXJlbnQgYmFzZXMgKEEsVCxDLEcpOyBh
bmQgUk5BIHRoYXQgaXMgdXN1YWxseQ0Kc2luZ2xlIHN0cmFuZGVkIChzc1JOQSksIHdpdGggdGhl
IGZvdXIgZGlmZmVyZW50IGJhc2VzIGJlaW5nIChBLFQsQyxVKS4NCg0KRm9yIGV4YW1wbGUsIGdp
dmVuIHRoZSBSTkEgc2VxdWVuY2Ugb2YgYSBTdHJpbmcgbGlrZQ0KJ0FVR0NVVUNBR0FBQUdBR0FB
QUdBR0FBQUdHVUNVVUFDR1VBRycgb3IgYSBzaW1pbGFyIFN0cmluZywgSSB3YW50ZWQgdG8NCmtu
b3cgYXQgd2hpY2ggcG9zaXRpb25zICdVJyAoVXJhY2lsKSB3b3VsZCBiZSBpbiB0aGF0IHN1YnN0
cmluZy4gU28gaWRlYWxseQ0KYW4gQXJyYXkgb2Ygd2hlcmUgdGhlIHBvc2l0aW9ucyB3ZXJlLiBT
byB0aGF0IHdhcyBteSB1c2UgY2FzZSBmb3INClN0cmluZyNpbmRpY2VzLg0KDQpXZSBjYW4gb2Yg
Y291cnNlIGFscmVhZHkgZ2V0IHRoZSBhYm92ZSBhcy1pcyB2aWEgZXhpc3RpbmcgcnVieSBmZWF0
dXJlcy4NCg0KT25lIHNvbHV0aW9uIGlzIHRvIHVzZSAuZmluZF9hbGwgLSB3aGljaCBJIGFtIGFj
dHVhbGx5IHVzaW5nIChhbmQgYWRkaW5nDQorMSwgYmVjYXVzZSBudWNsZW90aWRlIHBvc2l0aW9u
cyBieSBkZWZhdWx0IHN0YXJ0IG5vdCBhdCAwIGJ1dCBhdCAxKS4gU28NCkkgZG8gbm90IHJlYWxs
eSBuZWVkIHRoaXMgYWRkaXRpb24gdG8gY2xhc3MgU3RyaW5nIHRvIGJlZ2luIHdpdGgsIHNpbmNl
DQpJIGNhbiB1c2UgZmluZF9hbGwgb3Igb3RoZXIgdXNlZnVsIGZlYXR1cmVzIHRoYXQgcnVieSBo
YXMgYXMtaXMganVzdA0KZmluZS4NCg0KSG93ZXZlciBoYWQsIEkgYWxzbyB0aG91Z2h0IHRoYXQg
aXQgbWF5IGJlIHVzZWZ1bCBmb3Igb3RoZXJzIGlmIGEgDQpTdHJpbmcjaW5kaWNlcyBtZXRob2Qg
bWF5IGV4aXN0IGRpcmVjdGx5LCB3aGljaCBpcyB3aHkgSSBwcm9wb3NlIGl0IGhlcmUuDQpQZXJo
YXBzIGl0IG1heSBzaW1wbGlmeSBzb21lIGV4aXN0aW5nIGNvZGUgYmFzZXMgb3V0IHRoZXJlIHRv
IGEgbGltaXRlZA0KZXh0ZW50IGlmIHJ1YnkgdXNlcnMgY291bGQgdXNlIHRoZSBzYW1lIG1ldGhv
ZC9mdW5jdGlvbmFsaXR5Lg0KDQpUaGVyZSBtYXkgYmUgb3RoZXIgdXNlIGNhc2VzIGZvciBTdHJp
bmcjaW5kaWNlcywgYnV0IEkgd2lsbCBvbmx5IHJlZmVyDQp0byB0aGUgdXNlIGNhc2UgdGhhdCBJ
IGhhdmUgZm91bmQgaGVyZS4gSWYgb3RoZXJzIHdpc2ggdG8gYWRkIHRoZWlyIHVzZQ0KY2FzZSBw
bGVhc2UgZmVlbCBmcmVlIHRvIGRvIHNvIGF0IHlvdXIgb3duIGxlaXN1cmUgaWYgeW91IGZlZWwg
bGlrZSBpdC4NCg0KUGxlYXNlIGFsc28gZG8gZmVlbCBmcmVlIHRvIGNsb3NlIHRoaXMgaXNzdWUg
aGVyZSBhdCBhbnkgbW9tZW50IGluIHRpbWUgaWYNCml0IGlzIGNvbnNpZGVyZWQgdG8gYmUgbm90
IG5lY2Vzc2FyeS4gSXQgaXMgbm90IHJlYWxseSBhIGhpZ2ggcHJpb3JpdHkgDQpzdWdnZXN0aW9u
IGF0IGFsbCAtIGp1c3QgbW9zdGx5IGEgY29udmVuaWVuY2UgZmVhdHVyZSAocG9zc2libHkpLg0K
DQpUaGFua3MhDQoNClBTOiBJIHNob3VsZCBhbHNvIGFkZCB0aGF0IG9mIGNvdXJzZSBpbiBiaW9p
bmZvcm1hdGljcyB5b3Ugb2Z0ZW4gZGVhbCB3aXRoDQp2ZXJ5IGxhcmdlIGRhdGFzZXRzLCBnaWdh
Ynl0ZXMvdGVyYWJ5dGVzIG9mIGdlbm9tZSBzZXF1ZW5jaW5nIGRhdGEgLyBOZXh0DQpnZW5lcmF0
aW9uIHNlcXVlbmNpbmcgZGF0YXNldCwgYnV0IGlmIHlvdSBuZWVkIG1vcmUgc3BlZWQgYW55d2F5
IHRoZW4geW91IG1heQ0KdXNlIEMgb3IgYW5vdGhlciBsYW5ndWFnZSB0byBkbyB0aGUgInByaW1h
cnkiIHdvcms7IGFuZCBydWJ5IGNvdWxkIGRvIHZlcnkgZmluZQ0Kd2l0aCBzbWFsbGVyIGRhdHNl
dHMganVzdCBhcyB3ZWxsOyAiYmlnIGRhdGEiIGlzIG5vdCBuZWNlc3NhcmlseSBldmVyeXdoZXJl
Lg0KDQpJIG9ubHkgd2FudGVkIHRvIG1lbnRpb24gdGhpcyBpbiB0aGUgZXZlbnQgdGhhdCBpdCBt
YXkgYmUgcG9pbnRlZCBvdXQgdGhhdA0KU3RyaW5nI2luZGljZXMgbWF5IG5vdCBiZSB2ZXJ5IGZh
c3QgZm9yIHZlcnkgbG9uZyB0YXJnZXQgc3RyaW5ncy9zdWJzdHJpbmdzIC0NCnRoZXJlIGFyZSBz
dGlsbCBtYW55IHVzZSBjYXNlcyBmb3Igc21hbGxlciBzdWJzdHJpbmdzLCBmb3IgZXhhbXBsZS4g
UGVybA0Kd2FzIHVzZWQgdmVyeSBlYXJseSBpbiB0aGUgYmlvaW5mb3JtYXRpY3MgZmllbGQgdG8g
Z29vZCBzdWNjZXNzLCBmb3INCmluc3RhbmNlLg0KDQpBcyBmb3IgZG9jdW1lbnRhdGlvbiwgSSB0
aGluayB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgU3RyaW5nI2luZGV4IGNvdWxkIGJlDQp1c2VkIGZv
ciBTdHJpbmcjaW5kaWNlcyB0b28sIGp1c3Qgd2l0aCB0aGUgY2hhbmdlIHRoYXQgYW4gQXJyYXkg
b2YgdGhlDQpwb3NpdGlvbnMgZm91bmQgbWF5IGJlIHJldHVybmVkLg0KDQoNCg0KLS0gDQpodHRw
czovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmliZTogPG1haWx0bzpydWJ5LWNvcmUt
cmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJzY3JpYmU+CjxodHRwOi8vbGlzdHMu
cnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9ucy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next