[ruby-core:62511] [ruby-trunk - Feature #6687] Enumerable#with

From: akr@...
Date: 2014-05-10 15:23:01 UTC
List: ruby-core #62511
SXNzdWUgIzY2ODcgaGFzIGJlZW4gdXBkYXRlZCBieSBBa2lyYSBUYW5ha2Eu
CgpSZWxhdGVkIHRvIEZlYXR1cmUgIzczNDA6ICdlYWNoX3dpdGgnIG9yICdp
bnRvJyBhbGlhcyBmb3IgJ2VhY2hfd2l0aF9vYmplY3QnIGFkZGVkCgotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkZlYXR1cmUg
IzY2ODc6IEVudW1lcmFibGUjd2l0aApodHRwczovL2J1Z3MucnVieS1sYW5n
Lm9yZy9pc3N1ZXMvNjY4NyNjaGFuZ2UtNDY2NzMKCiogQXV0aG9yOiBreW8g
ZW5kbwoqIFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKKiBBc3Np
Z25lZTogCiogQ2F0ZWdvcnk6IGNvcmUKKiBUYXJnZXQgdmVyc2lvbjogbmV4
dCBtaW5vcgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCj1iZWdpbgpMZXQgbWUgcHJvcG9zZSBgRW51bWVyYWJsZSN3aXRoYCBm
b3IgYW4gYWxpYXMgb2YgYEVudW1lcmFibGUjZWFjaF93aXRoX29iamVjdGAg
b3IgcmVwbGFjZSBvZiBpdC4KCmBFbnVtZXJhYmxlI2VhY2hfd2l0aF9vYmpl
Y3Rg44Gu44Ko44Kk44Oq44Ki44K544CB44G+44Gf44Gv44Gd44Gu572u44GN
5o+b44GI44Go44GX44Gm44CBYEVudW1lcmFibGUjd2l0aGDjgpLmj5DmoYjj
gZfjgb7jgZnjgIIKCiMjUmVhc29uCgojI+eQhueUsQoKV2hlbiB5b3UgY3Jl
YXRlIGEgaGFzaCB1c2luZyBgRW51bWVyYWJsZSNpbmplY3RgLCB5b3Ugc2hv
dWxkIGVuc3VyZSB0aGF0IHRoZSBibG9jayByZXR1cm4gdGhlIGhhc2guCgpg
RW51bWVyYWJsZSNpbmplY3Rg44KS5L2/44Gj44Gm44OP44OD44K344Ol44KS
55Sf5oiQ44GZ44KL44Go44GN44Gr44Gv44CB44OW44Ot44OD44Kv44Gu6L+U
44KK5YCk44Go44GX44Gm44OP44OD44K344Ol44GM6L+U44KL44GT44Go44KS
5L+d6Ki844GZ44KL5b+F6KaB44GM44GC44KK44G+44GZ44CCCgogICAgd29y
ZHMuaW5qZWN0KEhhc2gubmV3KDApKSB7IHxoLCB3b3JkfCBoW3dvcmRdICs9
IDE7IGggfSAjID0+IHsiWW91Ij0+MywgInNheSI9PjEwLCAiWWVzIj0+MSwg
IkkiPT43LCAiTm8iPT4xLCAiU3RvcCI9PjEsICJhbmQiPT4yLCAiR28iPT4x
LCAiZ28iPT4yLCAiT2giPT4xLCAibm8iPT4xLCAiR29vZGJ5ZSI9PjIsICJI
ZWxsbyI9PjIsICJoZWxsbyI9PjUsICJkb24iPT4yLCAidCI9PjIsICJrbm93
Ij0+MiwgIndoeSI9PjIsICJ5b3UiPT4yLCAiZ29vZGJ5ZSI9PjF9CgpNYW55
IHJ1Ynlpc3RzLCBob3dldmVyLCBoYXRlIHRoaXMsIGFuZCB0aGVyZSBhcmUg
bWFueSBkaXNjdXNzaW9ucyBmb3IgaXQuCgrjgZfjgYvjgZfjgIHjgZPjgozj
gpLlq4zjgYZSdWJ5aXN044Gv5aSa44GP44CB44ON44OD44OI5LiK44Gn44Gd
44Gu5pS55ZaE44Gr44Gk44GE44Gm44Gu6K2w6KuW44KS44GX44Gw44GX44Gw
6KaL5o6b44GR44G+44GZ44CCCgogICAgRmVhdHVyZSAjNTY2MjogaW5qZWN0
LWFjY3VtdWxhdGUsIG9yIEhhc2tlbGwncyBtYXBBY2N1bSogLSBydWJ5LXRy
dW5rIC0gUnVieSBJc3N1ZSBUcmFja2luZyBTeXN0ZW0gaHR0cDovL2J1Z3Mu
cnVieS1sYW5nLm9yZy9pc3N1ZXMvNTY2MgogICAgCiAgICBSdWJ5IGluamVj
dCB3aXRoIGludGlhbCBiZWluZyBhIGhhc2ggLSBTdGFjayBPdmVyZmxvdyBo
dHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzk0MzQxNjIvcnVi
eS1pbmplY3Qtd2l0aC1pbnRpYWwtYmVpbmctYS1oYXNoCgpgRW51bWVyYWJs
ZSNlYWNoX3dpdGhfb2JqZWN0YCBpcyBvZnRlbiBwcmVzZW50ZWQgZm9yIG9u
ZSBvZiB0aGUgYmVzdCBzb2x1dGlvbnMgZm9yIGl0LgoK44Gd44GX44Gm44Gd
44Gu5pyJ5Yqb44Gq6Kej5rG6562W44Go44GX44Gm44CBRW51bWVyYWJsZSNl
YWNoX3dpdGhfb2JqZWN044GM5o+Q56S644GV44KM44Gm44GN44G+44GX44Gf
44CCCgogICAgd29yZHMuZWFjaF93aXRoX29iamVjdChIYXNoLm5ldygwKSkg
eyB8d29yZCwgaHwgaFt3b3JkXSArPSAxIH0gIyA9PiB7IllvdSI9PjMsICJz
YXkiPT4xMCwgIlllcyI9PjEsICJJIj0+NywgIk5vIj0+MSwgIlN0b3AiPT4x
LCAiYW5kIj0+MiwgIkdvIj0+MSwgImdvIj0+MiwgIk9oIj0+MSwgIm5vIj0+
MSwgIkdvb2RieWUiPT4yLCAiSGVsbG8iPT4yLCAiaGVsbG8iPT41LCAiZG9u
Ij0+MiwgInQiPT4yLCAia25vdyI9PjIsICJ3aHkiPT4yLCAieW91Ij0+Miwg
Imdvb2RieWUiPT4xfQoKSG93ZXZlciwgYGVhY2hfd2l0aF9vYmplY3RgIGlz
IHN0aWxsIHVuZmFtaWxpYXIgYW5kIHRoZW4gbm90IHVzZWQgZnJlcXVlbnRs
eS4gVGhlIGJpZ2dlc3QgcmVhc29uLCBJIHRoaW5rLCBpcyBpdHMgbGVuZ3Ro
eSBuYW1lLgoK44GX44GL44GX44CB44Gd44Gu5pyJ55So5oCn44Gr44KC5ouY
44KJ44Ga44CB5L6d54S244Go44GX44GmZWFjaF93aXRoX29iamVjdOOBruef
peWQjeW6puOBiuOCiOOBs+WIqeeUqOmgu+W6puOBr+S9juOBhOOBqOaAneOC
j+OCjOOBvuOBmeOAguOBneOBl+OBpuOAgeOBneOBruWOn+WboOOBr+OAgeOB
neOBruWQjeWJjeOBrumVt+OBleOBq+OBguOCi+OBqOiAg+OBiOOBvuOBmeOA
ggoKYGVhY2hfd2l0aF9vYmplY3RgIGlzIHRoZSAzOXRoIGxvbmdlc3QtbmFt
ZSBtZXRob2QgYW1vbmcgNzU0IGF0IFJ1YnkgMS45LjMsIGJhc2VkIG9uIGZv
bGxvd2luZyBjYWxjdWxhdGlvbjsKCuS7peS4i+OBrua8lOeul+OBq+OCiOOC
iuOAgVJ1YnkxLjkuM+OBrueSsOWig+S4i+OBp2VhY2hfd2l0aF9vYmplY3Tj
ga/jgIE3NTTku7bkuK0zOeeVquebruOBq+mVt+OBhOWQjeWJjeOBruODoeOC
veODg+ODieOBp+OBguOCi+OBk+OBqOOBjOWIhuOBi+OCiuOBvuOBl+OBn+OA
ggoKICAgIG1ldGhvZHMgPSBNb2R1bGUuY29uc3RhbnRzLmZsYXRfbWFwIGRv
IHxjfAogICAgICBuZXh0IFtdIGlmIGMgPT0gOkdlbQogICAgICBrID0gTW9k
dWxlLmNvbnN0X2dldChjKQogICAgICBrLm1ldGhvZHMoZmFsc2UpICsgay5p
bnN0YW5jZV9tZXRob2RzKGZhbHNlKSByZXNjdWUgW10KICAgIGVuZC51bmlx
LnJlamVjdCB7IHxtfCAiI3ttfSIuc3RhcnRfd2l0aD8gJ19kZXByZWNhdGVk
JyB9LnNvcnRfYnkgeyB8bXwgLW0uc2l6ZSB9CiAgICAKICAgIG1ldGhvZHMu
c2l6ZSAjID0+IDc1NAogICAgbWV0aG9kcy5pbmRleCg6ZWFjaF93aXRoX29i
amVjdCkgIyA9PiAzOQogICAgCiAgICBwdXRzIG1ldGhvZHMudGFrZSgxMDAp
Lmdyb3VwX2J5KCY6c2l6ZSkudG9fYQoKVGhlIG91dHB1dCBpcyBoZXJlLgoK
5Ye65Yqb44Gn44GZ44CCCgogICAgMjYKICAgIHByb3RlY3RlZF9pbnN0YW5j
ZV9tZXRob2RzCiAgICBpbnN0YW5jZV92YXJpYWJsZV9kZWZpbmVkPwogICAg
MjUKICAgIHByb3RlY3RlZF9tZXRob2RfZGVmaW5lZD8KICAgIDI0CiAgICBw
cml2YXRlX2luc3RhbmNlX21ldGhvZHMKICAgIDIzCiAgICBjbGFzc192YXJp
YWJsZV9kZWZpbmVkPwogICAgcHVibGljX2luc3RhbmNlX21ldGhvZHMKICAg
IGRlZmluZV9zaW5nbGV0b25fbWV0aG9kCiAgICBwcml2YXRlX21ldGhvZF9k
ZWZpbmVkPwogICAgMjIKICAgIHNpbmdsZXRvbl9tZXRob2RfYWRkZWQKICAg
IHB1YmxpY19pbnN0YW5jZV9tZXRob2QKICAgIHB1YmxpY19tZXRob2RfZGVm
aW5lZD8KICAgIDIxCiAgICBpbnN0YW5jZV92YXJpYWJsZV9nZXQKICAgIGlu
c3RhbmNlX3ZhcmlhYmxlX3NldAogICAgcmVtb3ZlX2NsYXNzX3ZhcmlhYmxl
CiAgICAyMAogICAgcHJpdmF0ZV9jbGFzc19tZXRob2QKICAgIHJlcGVhdGVk
X2NvbWJpbmF0aW9uCiAgICByZXBlYXRlZF9wZXJtdXRhdGlvbgogICAgY29t
cGFyZV9ieV9pZGVudGl0eT8KICAgIDE5CiAgICByZXNwb25kX3RvX21pc3Np
bmc/CiAgICBhYm9ydF9vbl9leGNlcHRpb249CiAgICBwdWJsaWNfY2xhc3Nf
bWV0aG9kCiAgICBjb21wYXJlX2J5X2lkZW50aXR5CiAgICAxOAogICAgdW5k
ZWZpbmVfZmluYWxpemVyCiAgICBpbnN0YW5jZV92YXJpYWJsZXMKICAgIGFi
b3J0X29uX2V4Y2VwdGlvbgogICAgY2xhc3NfdmFyaWFibGVfZ2V0CiAgICBj
bGFzc192YXJpYWJsZV9zZXQKICAgIHJlbGF0aXZlX3BhdGhfZnJvbQogICAg
MTcKICAgIGludGVybmFsX2VuY29kaW5nCiAgICBleHRlcm5hbF9lbmNvZGlu
ZwogICAgZGVmYXVsdF9pbnRlcm5hbD0KICAgIGRlZmF1bHRfZXh0ZXJuYWw9
CiAgICBwcm90ZWN0ZWRfbWV0aG9kcwogICAgc2luZ2xldG9uX21ldGhvZHMK
ICAgIGFzY2lpX2NvbXBhdGlibGU/CiAgICAxNgogICAgZ2xvYmFsX3Zhcmlh
YmxlcwogICAgZXhlY3V0YWJsZV9yZWFsPwogICAgaW5pdGlhbGl6ZV9jbG9u
ZQogICAgZWFjaF93aXRoX29iamVjdCAgICMgPD0gSGVyZSEKICAgIHJlcXVp
cmVfcmVsYXRpdmUKICAgIHByaXZhdGVfY29uc3RhbnQKICAgIGRlZmF1bHRf
ZXh0ZXJuYWwKICAgIGluY2x1ZGVkX21vZHVsZXMKICAgIGluc3RhbmNlX21l
dGhvZHMKICAgIGRlZmluZV9maW5hbGl6ZXIKICAgIGRlZmF1bHRfaW50ZXJu
YWwKICAgIDE1CiAgICBwcml2YXRlX21ldGhvZHMKICAgIGZpeGVkX2VuY29k
aW5nPwogICAgY2xhc3NfdmFyaWFibGVzCiAgICBpbnN0YW5jZV9tZXRob2QK
ICAgIGVhY2hfd2l0aF9pbmRleAogICAgcHVibGljX2NvbnN0YW50CiAgICBn
YXJiYWdlX2NvbGxlY3QKICAgIHNvdXJjZV9sb2NhdGlvbgogICAgdmFsaWRf
ZW5jb2Rpbmc/CiAgICBzaW5nbGV0b25fY2xhc3MKICAgIHdvcmxkX3dyaXRh
YmxlPwogICAgbG9jYWxfdmFyaWFibGVzCiAgICB3b3JsZF9yZWFkYWJsZT8K
ICAgIG1ldGhvZF9kZWZpbmVkPwogICAgMTQKICAgIHJlYWRhYmxlX3JlYWw/
CiAgICBsb2NhbGVfY2hhcm1hcAogICAgY29uc3RfZGVmaW5lZD8KICAgIGNv
bGxlY3RfY29uY2F0CiAgICBpbml0aWFsaXplX2R1cAogICAgYWRkX3RyYWNl
X2Z1bmMKICAgIGNsb3NlX29uX2V4ZWM9CiAgICBjbG9zZV9vbl9leGVjPwog
ICAgbmFtZWRfY2FwdHVyZXMKICAgIHNldF90cmFjZV9mdW5jCiAgICB3cml0
ZV9ub25ibG9jawogICAgd3JpdGFibGVfcmVhbD8KICAgIGVhY2hfY29kZXBv
aW50CiAgICBmb3JjZV9lbmNvZGluZwogICAgcHVibGljX21ldGhvZHMKICAg
IDEzCiAgICBjb25zdF9taXNzaW5nCiAgICBlYWNoX2ZpbGVuYW1lCiAgICBk
ZWZhdWx0X3Byb2M9CiAgICBzZXRfYmFja3RyYWNlCiAgICBwdWJsaWNfbWV0
aG9kCiAgICByZWFkX25vbmJsb2NrCiAgICBpbnN0YW5jZV9leGVjCiAgICBh
YnNvbHV0ZV9wYXRoCiAgICBjb3VudF9vYmplY3RzCiAgICBpbnN0YW5jZV9l
dmFsCiAgICAxMgogICAgbWFyc2hhbF9sb2FkCiAgICByZXZlcnNlX2VhY2gK
ICAgIGV4Y2x1ZGVfZW5kPwogICAgaW5zdGFuY2Vfb2Y/CiAgICBtYWtlX3N5
bWxpbmsKICAgIHNldF9lbmNvZGluZwogICAgYmxvY2tfZ2l2ZW4/CiAgICBk
ZWZhdWx0X3Byb2MKICAgIHNsaWNlX2JlZm9yZQogICAgbWFyc2hhbF9kdW1w
CiAgICAxMQogICAgcmF0aW9uYWxpemUKICAgIHJlYWxkaXJwYXRoCiAgICBl
YWNoX29iamVjdAogICAgZXhwYW5kX3BhdGgKICAgIHdpdGhfb2JqZWN0CgpU
aGlzIHJlc3VsdCBzaG93cyB0aGF0IG1ldGhvZHMgd2hpY2ggaGFzIDE1KyBu
YW1lIGxlbmd0aCBpcyBtb3N0bHkgZm9yIHJlZmxlY3Rpb24gb3IgZm9yIHNw
ZWNpYWwgcHVycG9zZS4gYGVhY2hfd2l0aF9vYmplY3RgIGlzIGEgZ2VuZXJh
bCBwdXJwb3NlIG1ldGhvZCwgdGhlIG5hbWUgc2hvdWxkIGJlIHNob3J0ZXIu
IAoK44GT44Gu44Oq44K544OI44GL44KJ5YiG44GL44KL44GT44Go44Gv44CB
6ZW344GVMTXjgpLotoXjgYjjgovjg6Hjgr3jg4Pjg4njga/jgZ3jga7lpKfl
jYrjgYzjg6rjg5Xjg6zjgq/jgrfjg6fjg7PnlKjjgYvnibnmrornm67nmoTn
lKjjga7jgoLjga7jgafjgYLjgovjgajjgYTjgYbkuovlrp/jgafjgZnjgIJl
YWNoX3dpdGhfb2JqZWN044Gv44KI44KK5rGO55So55qE44Gq44Oh44K944OD
44OJ44Gn44GZ44GL44KJ44CB44Gd44Gu5ZCN5YmN44Gv44KC44Gj44Go55+t
44GP44GC44KL44G544GN44Go6ICD44GI44G+44GZ44CC54++54q244Gu6ZW3
44GV44Gv44CB44Gd44Gu44Oh44K944OD44OJ44KS54Sh44GN44KC44Gu44Gr
44GX44Gm44GE44G+44GZ44CCCgpJIHByb3Bvc2UgRW51bWVyYWJsZSN3aXRo
IGZvciBpdC4gYSB3b3JkIGBvYmplY3RgIGluIGBlYWNoX3dpdGhfb2JqZWN0
YCBpcyBvYnZpb3VzIGFuZCBub3QgbmVjZXNzYXJ5IHRvIHNwY2lmeSB0aGUg
cHVycG9zZSwgYmVjYXVzZSBhbGwgZGF0YSBpbiBSdWJ5IGlzIGBvYmplY3Rg
LiBBbHNvLCBhIHdvcmQgYGVhY2hgIGluIGBlYWNoX3dpdGhfb2JqZWN0YCBp
cyBub3QgZXNzZW50aWFsLCB0aGVuIG9taXR0YWJsZSBpbiB2aWV3IG9mIHRo
ZSBmYWN0IHRoYXQgaXQgaXMgY2FsbGVkIHRvIEVudW1lcmFibGUgb2JqZWN0
LiBJIHRoaW5rIHRoYXQgYSB3b3JkIGB3aXRoYCBzdGlsbCB3b3JrcyBmb3Ig
ZGVzY3JpYmluZyB0aGUgc2FtZSBvZiBgZWFjaF93aXRoX29iamVjdGAuCgrj
gZ3jgZPjgadFbnVtZXJhYmxlI3dpdGjjgpLmj5DmoYjjgZfjgb7jgZnjgILj
gb7jgZrjgIFSdWJ544Gn5omx44KP44KM44KL44OH44O844K/44Gv44GZ44G5
44Gm44Kq44OW44K444Kn44Kv44OI44Gn44GZ44GL44KJ44CBZWFjaF93aXRo
X29iamVjdOOBq+OBiuOBkeOCi29iamVjdOOBr+iHquaYjuOBp+OBguOCiuS4
jeimgeOBqOiAg+OBiOOBvuOBmeOAguasoeOBq+OAgUVudW1lcmFibGXjgqrj
g5bjgrjjgqfjgq/jg4jjgavlr77jgZnjgovjg6Hjgr3jg4Pjg4nlkbzjgbPl
h7rjgZfjgajjgYTjgYbngrnjgYvjgonopovjgabjgIFlYWNo44KC5b+F6aCI
44Gu44KC44Gu44Go44Gv6KiA44GI44Ga44CB5YmK6Zmk5Y+v6IO944Go6ICD
44GI44G+44GZ44CC44Gd44GX44Gm5q6L44Gj44Gfd2l0aOOBp+WNgeWIhuOB
q+OBneOBruebrueahOOAgeOBpOOBvuOCikVudW1lcmFibGXjgaropoHntKDj
gpLku7vmhI/jga7jgqrjg5bjgrjjgqfjgq/jg4jjgajlhbHjgavmk43kvZzj
gZnjgovjgIHjgpLmhI/lm7PjgafjgY3jgabjgYTjgovjgajogIPjgYjjgb7j
gZnjgIIKCkxhc3RseSwgZm9sbG93aW5nIGlzIGV4YW1wbGVzIHdpdGggYEVu
dW1lcmFibGUjd2l0aGAKCuacgOW+jOOBq+OAgWBFbnVtZXJhYmxlI3dpdGhg
44KS5L2/44Gj44Gf5L6L44KS56S644GX44G+44GZ44CCCgogICAgRW51bWVy
YWJsZS5zZW5kKDphbGlhc19tZXRob2QsIDp3aXRoLCA6ZWFjaF93aXRoX29i
amVjdCkKCiAgICB3b3Jkcy53aXRoKEhhc2gubmV3KDApKSB7IHwgd29yZCwg
aHwgaFt3b3JkXSArPSAxIH0gIyA9PiB7IllvdSI9PjMsICJzYXkiPT4xMCwg
IlllcyI9PjEsICJJIj0+NywgIk5vIj0+MSwgIlN0b3AiPT4xLCAiYW5kIj0+
MiwgIkdvIj0+MSwgImdvIj0+MiwgIk9oIj0+MSwgIm5vIj0+MSwgIkdvb2Ri
eWUiPT4yLCAiSGVsbG8iPT4yLCAiaGVsbG8iPT41LCAiZG9uIj0+MiwgInQi
PT4yLCAia25vdyI9PjIsICJ3aHkiPT4yLCAieW91Ij0+MiwgImdvb2RieWUi
PT4xfQoKICAgIFsqMS4uMTBdLndpdGgoNSkubWFwKCY6KikgIyA9PiBbNSwg
MTAsIDE1LCAyMCwgMjUsIDMwLCAzNSwgNDAsIDQ1LCA1MF0KICAgIAogICAg
WydydWJ5JywgJ3B5dGhvbicsICdoYXNrZWxsJ10ud2l0aCgnaXN0JykubWFw
KCY6KykgIyA9PiBbInJ1Ynlpc3QiLCAicHl0aG9uaXN0IiwgImhhc2tlbGxp
c3QiXQoKClRoYW5rIHlvdSBmb3IgeW91ciBjb25zaWRlcmF0aW9uLgoK44GU
5qSc6KiO44Gu56iL44KI44KN44GX44GP44GK6aGY44GE6Ie044GX44G+44GZ
44CCCgo9ZW5kCgoKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv
Cg==

In This Thread

Prev Next