From 1e8c0f77dcf936849cf534c4b12264710dd648a8 Mon Sep 17 00:00:00 2001 From: dmacvicar Date: Fri, 23 Nov 2007 13:01:18 +0000 Subject: [PATCH] fix the method call, and learned to use the * operator in the way. git-svn-id: http://svn.opensuse.org/svn/yast/trunk/ruby-bindings@42364 e0cc52ee-31ee-0310-8b87-e83c4596d67c --- examples/ruby/module-arch.rb | 9 +++++---- examples/ruby/module-storage-2.rb | 10 ---------- examples/ruby/module-storage.rb | 7 +++++-- src/ruby/YCP.cc | 5 +++-- src/ruby/yast.rb | 9 +++------ 5 files changed, 16 insertions(+), 24 deletions(-) delete mode 100644 examples/ruby/module-storage-2.rb diff --git a/examples/ruby/module-arch.rb b/examples/ruby/module-arch.rb index a813d97..e6448be 100644 --- a/examples/ruby/module-arch.rb +++ b/examples/ruby/module-arch.rb @@ -1,6 +1,7 @@ require 'yast' +require 'ycp/arch' + +puts YCP::Arch::sparc32 +puts YCP::Arch::arch_short +puts YCP::Arch::is_xen -m = YaST::Module.new("Arch") -puts m.sparc32 -puts m.arch_short -puts m.is_xen diff --git a/examples/ruby/module-storage-2.rb b/examples/ruby/module-storage-2.rb deleted file mode 100644 index ea89a9f..0000000 --- a/examples/ruby/module-storage-2.rb +++ /dev/null @@ -1,10 +0,0 @@ -require 'yast' -require 'ycp/storage' - - -puts YCP::Storage.methods - -dp = YCP::Storage::GetDiskPartition("/dev/sda1") -dp.each do | key, value | - puts "#{key} #{value}" -end \ No newline at end of file diff --git a/examples/ruby/module-storage.rb b/examples/ruby/module-storage.rb index a47825e..ea89a9f 100644 --- a/examples/ruby/module-storage.rb +++ b/examples/ruby/module-storage.rb @@ -1,7 +1,10 @@ require 'yast' +require 'ycp/storage' -m = YaST::Module.new("Storage") -dp = m.GetDiskPartition("/dev/sda1") + +puts YCP::Storage.methods + +dp = YCP::Storage::GetDiskPartition("/dev/sda1") dp.each do | key, value | puts "#{key} #{value}" end \ No newline at end of file diff --git a/src/ruby/YCP.cc b/src/ruby/YCP.cc index 3ffb58b..e17ed3a 100644 --- a/src/ruby/YCP.cc +++ b/src/ruby/YCP.cc @@ -294,6 +294,7 @@ ycp_module_each_symbol(VALUE self, VALUE namespace_name) VALUE ycp_module_forward_call(int argc, VALUE *argv, VALUE self) { + y2internal("Dynamic Proxy: [%d] params\n", argc); VALUE symbol = argv[1]; VALUE namespace_name = argv[0]; @@ -370,8 +371,8 @@ ycp_module_forward_call(int argc, VALUE *argv, VALUE self) { VALUE arg = argv[i]; y2internal ("Appending parameter #%d\n", i); - YCPValue v = rbvalue_2_ycpvalue(arg); - y2internal ("Appending parameter #%s : %s\n", i, v->toString()); + YCPValue v = rbvalue_2_ycpvalue(argv[i]); + y2internal ("Appending parameter #%d : %s\n", i, v->toString().c_str()); call->appendParameter (v); } call->finishParameters (); diff --git a/src/ruby/yast.rb b/src/ruby/yast.rb index 9bc01e9..444306c 100644 --- a/src/ruby/yast.rb +++ b/src/ruby/yast.rb @@ -36,13 +36,10 @@ module YCP if (stype == :function) and !sname.empty? m.module_eval <<-"END" def self.#{sname}(*args) - args.insert(0, "#{mname}") - args.insert(0, :#{sname}) - puts "to forward call #{sname.to_s} in #{mname}" - return YCP::forward_call(args) + return YCP::forward_call("#{mname}", :#{sname}, *args) end END - end + end # if function end YCP.const_set(mname, m) end @@ -61,7 +58,7 @@ module Kernel end -module YaST +module YCP module Ui #my @e_logging = qw(y2debug y2milestone y2warning y2error y2security y2internal); -- 2.39.2