[前][次][番号順一覧][スレッド一覧]

ruby-changes:23734

From: nobu <ko1@a...>
Date: Fri, 25 May 2012 11:20:45 +0900 (JST)
Subject: [ruby-changes:23734] nobu:r35785 (trunk): * test/-ext-/test_printf.rb: tests for [Feature #5896].

nobu	2012-05-25 11:20:36 +0900 (Fri, 25 May 2012)

  New Revision: 35785

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35785

  Log:
    * test/-ext-/test_printf.rb: tests for [Feature #5896].

  Added directories:
    trunk/ext/-test-/printf/
  Added files:
    trunk/ext/-test-/printf/extconf.rb
    trunk/ext/-test-/printf/printf.c
    trunk/test/-ext-/test_printf.rb

Index: ext/-test-/printf/printf.c
===================================================================
--- ext/-test-/printf/printf.c	(revision 0)
+++ ext/-test-/printf/printf.c	(revision 35785)
@@ -0,0 +1,31 @@
+#include <ruby.h>
+#include <ruby/encoding.h>
+
+static VALUE
+printf_i(VALUE self, VALUE obj)
+{
+    char buf[256];
+    snprintf(buf, sizeof(buf), "<%"PRIsVALUE">", obj);
+    return rb_usascii_str_new2(buf);
+}
+
+static VALUE
+printf_s(VALUE self, VALUE obj)
+{
+    return rb_enc_sprintf(rb_usascii_encoding(), "<%"PRIsVALUE">", obj);
+}
+
+static VALUE
+printf_v(VALUE self, VALUE obj)
+{
+    return rb_enc_sprintf(rb_usascii_encoding(), "{%+"PRIsVALUE"}", obj);
+}
+
+void
+Init_printf(void)
+{
+    VALUE m = rb_define_module_under(rb_define_module("Bug"), "Printf");
+    rb_define_singleton_method(m, "i", printf_i, 1);
+    rb_define_singleton_method(m, "s", printf_s, 1);
+    rb_define_singleton_method(m, "v", printf_v, 1);
+}

Property changes on: ext/-test-/printf/printf.c
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ext/-test-/printf/extconf.rb
===================================================================
--- ext/-test-/printf/extconf.rb	(revision 0)
+++ ext/-test-/printf/extconf.rb	(revision 35785)
@@ -0,0 +1 @@
+create_makefile("-test-/printf")

Property changes on: ext/-test-/printf/extconf.rb
___________________________________________________________________
Added: svn:eol-style
   + LF


Property changes on: ext/-test-/printf
___________________________________________________________________
Added: svn:ignore
   + Makefile
extconf.h
mkmf.log


Index: test/-ext-/test_printf.rb
===================================================================
--- test/-ext-/test_printf.rb	(revision 0)
+++ test/-ext-/test_printf.rb	(revision 35785)
@@ -0,0 +1,24 @@
+require 'test/unit'
+require "-test-/printf"
+
+class Test_SPrintf < Test::Unit::TestCase
+  def to_s
+    "#{self.class}:#{object_id}"
+  end
+
+  def inspect
+    "<#{self.class}:#{object_id}>"
+  end
+
+  def test_int
+    assert_match(/\A<-?\d+>\z/, Bug::Printf.i(self))
+  end
+
+  def test_to_str
+    assert_equal("<#{self.class}:#{object_id}>", Bug::Printf.s(self))
+  end
+
+  def test_inspect
+    assert_equal("{<#{self.class}:#{object_id}>}", Bug::Printf.v(self))
+  end
+end

Property changes on: test/-ext-/test_printf.rb
___________________________________________________________________
Added: svn:eol-style
   + LF


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]