[#37959] [Bug:trunk] I can modify literals — Yusuke ENDOH <mame@...>

遠藤です。

13 messages 2009/02/10

[#38005] Is URI.decode() broken? — MOROHASHI Kyosuke <moronatural@...>

もろはしです。いつもお世話になっております。

39 messages 2009/02/14
[#38006] Re: Is URI.decode() broken? — Nobuyoshi Nakada <nobu@...> 2009/02/14

なかだです。

[#38009] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/02/14

成瀬です、

[#38016] Re: Is URI.decode() broken? — Fujioka <fuj@...> 2009/02/15

xibbarこと藤岡です。

[#38017] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/02/15

成瀬です。

[#38040] Re: Is URI.decode() broken? — akira yamada / やまだあきら <akira@...> 2009/02/17

NARUSE, Yui さんは書きました:

[#38124] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/03/03

成瀬です。

[#39214] Re: Is URI.decode() broken? — akira yamada / やまだあきら <akira@...> 2009/09/02

(2009年03月03日 22:45), NARUSE, Yui さんは書きました:

[#39218] Re: Is URI.decode() broken? — "NARUSE, Yui" <naruse@...> 2009/09/02

成瀬です。

[#39236] Re: Is URI.decode() broken? — Tanaka Akira <akr@...> 2009/09/05

In article <[email protected]>,

[#39242] Re: Is URI.decode() broken? — KOSAKI Motohiro <kosaki.motohiro@...> 2009/09/07

小崎@思いつきを適当に書いてみるテスト

[#39246] Re: Is URI.decode() broken? — Tanaka Akira <akr@...> 2009/09/07

In article <[email protected]>,

[#38098] ブロック引数と括弧・引数なしsuper — Shugo Maeda <shugo@...>

前田です。

12 messages 2009/02/27

[ruby-dev:38002] Re: [Feature:1.9] Enumerable#uniq

From: Yusuke ENDOH <mame@...>
Date: 2009-02-14 00:59:14 UTC
List: ruby-dev #38002
遠藤です。

2009/02/13 22:17 Nobuyoshi Nakada <[email protected]>:
> なかだです。
>
> Arrayだけでなく、Enumerableにもuniqがあってもいいんじゃないでしょ
> うか。

私もいいと思います。
便乗ですが、Enumerable#compact もほしいです。


Index: enum.c
===================================================================
--- enum.c	(revision 22297)
+++ enum.c	(working copy)
@@ -1793,6 +1793,32 @@
     return Qnil;		/* not reached */
 }

+static VALUE
+compact_i(VALUE i, VALUE ary, int argc, VALUE *argv)
+{
+    VALUE val = enum_values_pack(argc, argv);
+    if (!NIL_P(val)) rb_ary_push(ary, val);
+    return Qnil;
+}
+
+/*
+ *  call-seq:
+ *     enum.compact    ->   array
+ *
+ *  Returns an array containing the items in <i>enum</i> with all +nil+
+ *  elements removed.
+ *
+ *     [ "a", nil, "b", nil, "c" ].to_enum.compact #=> [ "a", "b", "c" ]
+ */
+
+static VALUE
+enum_compact(VALUE obj)
+{
+    VALUE ary = rb_ary_new();
+    rb_block_call(obj, id_each, 0, 0, compact_i, ary);
+    return ary;
+}
+
 /*
  *  The <code>Enumerable</code> mixin provides collection classes with
  *  several traversal and searching methods, and with the ability to
@@ -1852,6 +1878,7 @@
     rb_define_method(rb_mEnumerable, "drop", enum_drop, 1);
     rb_define_method(rb_mEnumerable, "drop_while", enum_drop_while, 0);
     rb_define_method(rb_mEnumerable, "cycle", enum_cycle, -1);
+    rb_define_method(rb_mEnumerable, "compact", enum_compact, 0);

     id_eqq  = rb_intern("===");
     id_each = rb_intern("each");

-- 
Yusuke ENDOH <[email protected]>

In This Thread