[#37892] 配列の重複検出用Hashの使いまわし — wanabe <s.wanabe@...>
ワナベと申します。
[#37898] [Bug #1105] Ruby1.9でのrescue節の例外ハンドラのマッチの処理 — Tatsuji Kawai <redmine@...>
Bug #1105: Ruby1.9でのrescue節の例外ハンドラのマッチの処理
[#37910] [Bug:1.9] lack consistency in hash iteration — Yusuke ENDOH <mame@...>
遠藤です。
まつもと ゆきひろです
[#37918] [BUG: 1.9] encoding warning — SASADA Koichi <ko1@...>
ささだです.
[#37921] [Feature:trunk] with_index_from — Yusuke ENDOH <mame@...>
遠藤です。
At Thu, 5 Feb 2009 23:18:49 +0900,
遠藤です。
At Fri, 6 Feb 2009 00:58:59 +0900,
[#37936] zombie processes by drb tests — Tanaka Akira <akr@...>
OpenBSD で、test-all をすると、drb のところで、テストに 100
咳といいます。
[#37956] proposal: Module#method_adding — SASADA Koichi <ko1@...>
ささだです.
[#37959] [Bug:trunk] I can modify literals — Yusuke ENDOH <mame@...>
遠藤です。
[#37980] Re: [ruby-changes:10687] Ruby:r22250 (trunk): * iseq.c (simple_default_value): allow plain strings as default — SASADA Koichi <ko1@...>
ささだです.
[#37995] Add POSTARG support to rb_scan_args() — Akinori MUSHA <akinori.musha@...>
rb_scan_args()をPOSTARG対応にするパッチです。
[#37998] [Feature:1.9] {Array,Enumerable}#uniq_by, #uniq_by! — Nobuyoshi Nakada <nobu@...>
なかだです。
[#38005] Is URI.decode() broken? — MOROHASHI Kyosuke <moronatural@...>
もろはしです。いつもお世話になっております。
なかだです。
成瀬です、
xibbarこと藤岡です。
成瀬です。
NARUSE, Yui さんは書きました:
成瀬です。
(2009年03月03日 22:45), NARUSE, Yui さんは書きました:
成瀬です。
In article <4A9E44DD.6050706@airemix.jp>,
成瀬です。
小崎@思いつきを適当に書いてみるテスト
In article <20090907091830.2C7A.A69D9226@jp.fujitsu.com>,
> In article <20090907091830.2C7A.A69D9226@jp.fujitsu.com>,
2009/09/07 14:38, Tanaka Akira wrote:
In article <4AA5EA67.1040504@airemix.jp>,
[#38007] [Feature #1159] StringScanner に文字ベースでのインデックスを返すメソッドがほしい — Akira Matsuda <redmine@...>
Feature #1159: StringScanner に文字ベースでのインデックスを返すメソッドがほしい
[#38018] circular require in openssl — Tanaka Akira <akr@...>
以下のように、openssl には環状の require があり、警告が出ます。
In article <87vdrcul7y.fsf@fsij.org>,
まつもと ゆきひろです
In article <E1LYyoE-0005P0-Hi@x61.netlab.jp>,
[#38022] ENCODING_FIXED と ENCODING_NONE の廃止 — "NARUSE, Yui" <naruse@...>
成瀬です。
In article <49986A0A.5060602@airemix.jp>,
成瀬です。
In article <49995412.6040000@airemix.jp>,
[#38048] Add option hash support to rb_scan_args() — "Akinori MUSHA" <knu@...>
rb_scan_args() にoption hash対応を組み込むのはどうでしょうか。
[#38067] Re: [ruby-cvs:29304] Ruby:r22086 (trunk): * ruby.c (process_options): set initial default_external before -r. — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
[#38075] [Bug #1198] corrupted iteratoin during "enum_for :inject" — Shyouhei Urabe <redmine@...>
Bug #1198: corrupted iteratoin during "enum_for :inject"
[#38080] [Feature:trunk] nested loop construct — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
ささだです.
[#38096] 多重代入やメソッド引数の展開でto_aが呼ばれます — nagachika <nagachika00@...>
nagachika と申します。
前田です。
まつもと ゆきひろです
前田です。
In article <704d5db90907141754p285e6e51xdd3208b27d556906@mail.gmail.com>,
[#38098] ブロック引数と括弧・引数なしsuper — Shugo Maeda <shugo@...>
前田です。
まつもと ゆきひろです
[ruby-dev:37932] Re: [Feature:trunk] with_index_from
遠藤です。
2009/2/6 Yukihiro Matsumoto <matz@ruby-lang.org>:
> まつもと ゆきひろです
>
> In message "Re: [ruby-dev:37928] Re: [Feature:trunk] with_index_from"
> on Fri, 6 Feb 2009 12:04:30 +0900, "Akinori MUSHA" <knu@iDaemons.org> writes:
>
> | しかし、 each_with_index_from という名前は長すぎると思います。
> |また each_with_index 自体、 Enumerator が導入された今となっては
> |each.with_index よりも若干実行効率がよいことを除けば存在意義が
> |薄いですね。
> |
> | ここは、 with_index にだけ引数を追加して each_with_index は
> |そのままにしてはどうでしょう。
> |
> |StringIO.new("foo|bar|baz").each("|").with_index(1) { ... }
> |
> | ちょっと凝ったことをしたければ Enumerator 経由で行ってね、
> |というスタンスは悪くはないと思います。
なるほど! 感服しました。
> each_with_indexは放置。Enumerator#with_indexの方で手当てする
> 方に賛成します。が、現時点では簡潔なwith_index(1)にするのか、
> より明確なwith_index_from(1)にするのかは決断できません。どっ
> ちがよいでしょうねえ。
with_index_from はやむなく考えたものなので、with_index にだけ
引数を持たせていいならそっちに一票投じます。
with_index だけ引数を持たせるパッチです。
Index: enumerator.c
===================================================================
--- enumerator.c (revision 22101)
+++ enumerator.c (working copy)
@@ -406,32 +406,51 @@
/*
* call-seq:
- * e.with_index {|(*args), idx| ... }
+ * e.with_index(offset = 0) {|(*args), idx| ... }
* e.with_index
*
* Iterates the given block for each element with an index, which
- * start from 0. If no block is given, returns an enumerator.
+ * start from +offset+. If no block is given, returns an enumerator.
*
*/
static VALUE
-enumerator_with_index(VALUE obj)
+enumerator_with_index(int argc, VALUE *argv, VALUE obj)
{
struct enumerator *e;
- VALUE memo = 0;
- int argc = 0;
- VALUE *argv = 0;
+ VALUE memo;
- RETURN_ENUMERATOR(obj, 0, 0);
+ rb_scan_args(argc, argv, "01", &memo);
+ RETURN_ENUMERATOR(obj, argc, argv);
+ memo = NIL_P(memo) ? 0 : (VALUE)NUM2LONG(memo);
e = enumerator_ptr(obj);
if (e->args) {
argc = RARRAY_LEN(e->args);
argv = RARRAY_PTR(e->args);
}
+ else {
+ argc = 0;
+ argv = NULL;
+ }
return rb_block_call(e->obj, e->meth, argc, argv,
enumerator_with_index_i, (VALUE)&memo);
}
+/*
+ * call-seq:
+ * e.each_with_index {|(*args), idx| ... }
+ * e.each_with_index
+ *
+ * Same as Enumeartor#with_index, except each_with_index does not
+ * receive an offset argument.
+ *
+ */
static VALUE
+enumerator_each_with_index(VALUE obj)
+{
+ return enumerator_with_index(0, NULL, obj);
+}
+
+static VALUE
enumerator_with_object_i(VALUE val, VALUE memo)
{
return rb_yield_values(2, val, memo);
@@ -841,9 +860,9 @@
rb_define_method(rb_cEnumerator, "initialize", enumerator_initialize, -1);
rb_define_method(rb_cEnumerator, "initialize_copy",
enumerator_init_copy, 1);
rb_define_method(rb_cEnumerator, "each", enumerator_each, 0);
- rb_define_method(rb_cEnumerator, "each_with_index",
enumerator_with_index, 0);
+ rb_define_method(rb_cEnumerator, "each_with_index",
enumerator_each_with_index, 0);
rb_define_method(rb_cEnumerator, "each_with_object",
enumerator_with_object, 1);
- rb_define_method(rb_cEnumerator, "with_index", enumerator_with_index, 0);
+ rb_define_method(rb_cEnumerator, "with_index", enumerator_with_index, -1);
rb_define_method(rb_cEnumerator, "with_object", enumerator_with_object, 1);
rb_define_method(rb_cEnumerator, "next", enumerator_next, 0);
rb_define_method(rb_cEnumerator, "rewind", enumerator_rewind, 0);
--
Yusuke ENDOH <mame@tsg.ne.jp>