From 3ff87cc53f6705959db82c8a4270bbdd5b8eabbd Mon Sep 17 00:00:00 2001 From: suke Date: Sat, 1 Apr 2006 06:23:07 +0000 Subject: add WIN32OLE_TYPE#inspect, WIN32OLE_VARIABLE#inspect add test/win32ole and remove some test script from ext/win32ole/tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/win32ole/tests/testall.rb | 3 --- ext/win32ole/win32ole.c | 59 +++++++++++++++++++++++++++++++++---------- 2 files changed, 46 insertions(+), 16 deletions(-) (limited to 'ext') diff --git a/ext/win32ole/tests/testall.rb b/ext/win32ole/tests/testall.rb index c3e2b9499a..727cb992e0 100644 --- a/ext/win32ole/tests/testall.rb +++ b/ext/win32ole/tests/testall.rb @@ -2,12 +2,9 @@ require 'test/unit' require 'win32ole' puts "Now Test Win32OLE version #{WIN32OLE::VERSION}" require "testWIN32OLE" -require "testOLETYPE" require "testOLEPARAM" require "testOLEMETHOD" -require "testOLEVARIABLE" require "testVARIANT" -require "testOLETYPELIB" require "testOLEVARIANT" require "testOLEEVENT" require "testNIL2VTEMPTY" diff --git a/ext/win32ole/win32ole.c b/ext/win32ole/win32ole.c index 6a226ab434..f19203ad2c 100644 --- a/ext/win32ole/win32ole.c +++ b/ext/win32ole/win32ole.c @@ -1242,6 +1242,29 @@ ole_val2variant2(val, var) g_nil_to = VT_ERROR; } +static VALUE +make_inspect(class_name, detail) + const char *class_name; + VALUE detail; +{ + VALUE str; + str = rb_str_new2("#<"); + rb_str_cat2(str, class_name); + rb_str_cat2(str, ":"); + rb_str_concat(str, detail); + rb_str_cat2(str, ">"); + return str; +} + +static VALUE +default_inspect(self, class_name) + VALUE self; + const char *class_name; +{ + VALUE detail = rb_funcall(self, rb_intern("to_s"), 0); + return make_inspect(class_name, detail); +} + static VALUE ole_set_member(self, dispatch) VALUE self; @@ -1257,6 +1280,7 @@ ole_set_member(self, dispatch) return self; } + static VALUE fole_s_allocate _((VALUE)); static VALUE fole_s_allocate(klass) @@ -4454,13 +4478,7 @@ static VALUE foletypelib_inspect(self) VALUE self; { - VALUE str; - VALUE to_s; - str = rb_str_new2("#"); - return str; + return default_inspect(self, "WIN32OLE_TYPELIB"); } /* @@ -4999,6 +5017,13 @@ foletype_impl_ole_types(self) return ole_type_impl_ole_types(ptype->pTypeInfo); } +static VALUE +foletype_inspect(self) + VALUE self; +{ + return default_inspect(self, "WIN32OLE_TYPE"); +} + static VALUE ole_variables(pTypeInfo) ITypeInfo *pTypeInfo; @@ -5086,9 +5111,7 @@ foletype_variables(self) * # => ['Activate', 'Copy', 'Delete',....] */ static VALUE -foletype_methods(argc, argv, self) - int argc; - VALUE *argv; +foletype_methods(self) VALUE self; { struct oletypedata *ptype; @@ -5409,6 +5432,16 @@ folevariable_varkind(self) return ole_variable_varkind(pvar->pTypeInfo, pvar->index); } +static VALUE +folevariable_inspect(self) + VALUE self; +{ + VALUE detail = rb_funcall(self, rb_intern("to_s"), 0); + rb_str_cat2(detail, "="); + rb_str_concat(detail, rb_funcall(rb_funcall(self, rb_intern("value"), 0), rb_intern("inspect"), 0)); + return make_inspect("WIN32OLE_VARIABLE", detail); +} + /* * Document-class: WIN32OLE_METHOD * @@ -7375,7 +7408,6 @@ Init_win32ole() rb_define_method(cWIN32OLE_TYPE, "progid", foletype_progid, 0); rb_define_method(cWIN32OLE_TYPE, "visible?", foletype_visible, 0); rb_define_alias(cWIN32OLE_TYPE, "to_s", "name"); - rb_define_method(cWIN32OLE_TYPE, "major_version", foletype_major_version, 0); rb_define_method(cWIN32OLE_TYPE, "minor_version", foletype_minor_version, 0); rb_define_method(cWIN32OLE_TYPE, "typekind", foletype_typekind, 0); @@ -7384,9 +7416,10 @@ Init_win32ole() rb_define_method(cWIN32OLE_TYPE, "helpfile", foletype_helpfile, 0); rb_define_method(cWIN32OLE_TYPE, "helpcontext", foletype_helpcontext, 0); rb_define_method(cWIN32OLE_TYPE, "variables", foletype_variables, 0); - rb_define_method(cWIN32OLE_TYPE, "ole_methods", foletype_methods, -1); + rb_define_method(cWIN32OLE_TYPE, "ole_methods", foletype_methods, 0); rb_define_method(cWIN32OLE_TYPE, "ole_typelib", foletype_ole_typelib, 0); rb_define_method(cWIN32OLE_TYPE, "implemented_ole_types", foletype_impl_ole_types, 0); + rb_define_method(cWIN32OLE_TYPE, "inspect", foletype_inspect, 0); cWIN32OLE_VARIABLE = rb_define_class("WIN32OLE_VARIABLE", rb_cObject); rb_define_method(cWIN32OLE_VARIABLE, "name", folevariable_name, 0); @@ -7396,12 +7429,12 @@ Init_win32ole() rb_define_method(cWIN32OLE_VARIABLE, "visible?", folevariable_visible, 0); rb_define_method(cWIN32OLE_VARIABLE, "variable_kind", folevariable_variable_kind, 0); rb_define_method(cWIN32OLE_VARIABLE, "varkind", folevariable_varkind, 0); + rb_define_method(cWIN32OLE_VARIABLE, "inspect", folevariable_inspect, 0); rb_define_alias(cWIN32OLE_VARIABLE, "to_s", "name"); cWIN32OLE_METHOD = rb_define_class("WIN32OLE_METHOD", rb_cObject); rb_define_alloc_func(cWIN32OLE_METHOD, folemethod_s_allocate); rb_define_method(cWIN32OLE_METHOD, "initialize", folemethod_initialize, 2); - rb_define_method(cWIN32OLE_METHOD, "name", folemethod_name, 0); rb_define_method(cWIN32OLE_METHOD, "return_type", folemethod_return_type, 0); rb_define_method(cWIN32OLE_METHOD, "return_vtype", folemethod_return_vtype, 0); -- cgit v1.2.3