From: Takaaki Tateishi Date: 2002-07-02T00:38:44+09:00 Subject: [ruby-dev:17615] substitution at when-clause --Multipart_Tue_Jul__2_00:40:06_2002-1 Content-Type: text/plain; charset=ISO-2022-JP 立石です. case文のwhen節において,'==='の比較による計算結果を変数に代入 できると便利だと思うことがあるので,試しに実装してみました. 添付ファイルがpatchです. 作りはちゃちですが,このようなものは提案としていかがでしょうか? 具体的には,次のようなことができます. case "abc100def" when /\d+/ => pos p pos # => 3 end case "abc" when /\w+/, /c/ => pos p pos # => 0 end # あるライブラリのXPathを拡張したものですが,該当するノードが # 存在すれば取り出すということを行っているつもりです. case doc when XPath["//name"] => names ... when XPath["//uids"] => uids ... end -- Takaaki Tateishi --Multipart_Tue_Jul__2_00:40:06_2002-1 Content-Type: application/octet-stream; type=gzip Content-Disposition: attachment; filename="when.diff.gz" Content-Transfer-Encoding: base64 H4sICF50ID0AA3doZW4uZGlmZgC1VP9v2kYU/9n+K16RVUyMg23ABJOkoA6tlaZ0I1mralusAx/m FOdMzwcN6vq/790ZiAldtmraSXBf3nufe+/jz723PKEPEdA1yU5n5sV/H+bk9TXMWUYjaBVi1hKr 6aZVwjfXpqBSMLpmPAWBU8FyDv5p22ubCZvPwV2BK/R+l5HrutulEXhe0PLCVtABrxcFXtQJjDLW cZxDp17L88HvRr4f+WfmcAhu1+s1Q3DU1IPh0AT6IKngwLgElWLMeDzL75eY+MAEE96Pfvp1XFqo EIzPc7iAXzjLBqZTsX1eUI4X72072Kt3P4zhpAxHeywFpfGUpow/7zM4Tozj/cVAFxG0u2eYvoNz f1uGCYZhsDnYNx9/HtvrBry4gJt4NJmMPjZgjXmJaUzEJpa5mtBhoCPmuQCbXXgDYOcT7Y0m9zKj HE8cpwFfTBfdAIcCn9yMr29shJqv+IxkWWBXgpZS/Mb+aAL99KkJfhNeYjGNRuOL6RwjHHL2vYAq c4PnCcVYNbmXPImnebIpizLSXOZAUqJZ3l7+dctcGJbMhTsBoF2SFJHwXwNxZL6Mm+VcMr6ieleC uM+RgWv1Be2CZvPmHm9BSdI4qgI0L/+alu+EhmcJesLPIz2hF/bV8wi9nrcXlhp4fULnjNN4zYRc oUrXRDAyzahds4Y1TEEIIuOUShTtblfonVLaIcQiz+9oUkV4gQgvq4+sCZ5GUetHHOefcG73OFsW NY7XGBzXkWb5FMtQBEvsPnZN0YvhinRNdRNc/zj3ozCGqRGZi1e72GmWz+7ilK0pj5fl5W/L5rok oqCnm/+tu27x/7a9+v3woL3ifp+T6q/b9WODPQO/E7X7UbdvlNGqwR56VTpsO9Aa8nteoDSkZ7+z fWOKxVKWloWivBp/iD+8GV/ZVtAEq4O/bqOiRf2hq+NPuFPuoD4rNrC0ADm6vn73GrIFLvHwOARA 9fFC3stv2khBi28Z4PFhqmF1tk8oJkXBUm6rZFX2P74fTdSrxP6MbVprD5/eQDc7K8SgUgdkuaQ8 0VFWWJr30MdEhPjr7YT+dHxV/Ggl71kwIlCT5r3jeZ7iHeezXWsr64T6eT0yjNYJWOcRCoIkShhK PZzcUzhpVTwvd56XEaDkySqTkK/kciVhQXiSPXH/vbbzr2EqmcLeQJaThCb6gkK5O3v323p0UJIK vI10Pe4sI6tiDw8g8zuSJHbdqmtlVI5m1YM5e7Bx/xeQQ3q4wAgAAA== --Multipart_Tue_Jul__2_00:40:06_2002-1--