Author: dmacvicar
Date: Wed Sep 19 17:50:57 2007
New Revision: 40969
URL: http://svn.opensuse.org/viewcvs/yast?rev=40969&view=rev
Log:
- Lot of fixes and support for the UI!!!
Added:
trunk/ruby-bindings/examples/ruby/libycp.rb
trunk/ruby-bindings/examples/ruby/module-arch.rb
trunk/ruby-bindings/examples/ruby/module-storage.rb
trunk/ruby-bindings/examples/ruby/module-timezone.rb
Modified:
trunk/ruby-bindings/VERSION.cmake
trunk/ruby-bindings/examples/ruby/ui.rb
trunk/ruby-bindings/package/yast2-ruby-bindings.changes
trunk/ruby-bindings/src/ruby/Y2RubyTypeConv.cc
trunk/ruby-bindings/src/ruby/Y2RubyTypeTerm.cc
trunk/ruby-bindings/src/ruby/YCP.cc
trunk/ruby-bindings/src/ruby/yast.rb
Modified: trunk/ruby-bindings/VERSION.cmake
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/VERSION.cmake?rev=40969&r1=40968&r2=40969&view=diff
==============================================================================
--- trunk/ruby-bindings/VERSION.cmake (original)
+++ trunk/ruby-bindings/VERSION.cmake Wed Sep 19 17:50:57 2007
@@ -1,3 +1,3 @@
SET(VERSION_MAJOR "0")
-SET(VERSION_MINOR "1")
+SET(VERSION_MINOR "2")
SET(VERSION_PATCH "0")
\ No newline at end of file
Added: trunk/ruby-bindings/examples/ruby/libycp.rb
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/examples/ruby/libycp.rb?rev=40969&view=auto
==============================================================================
--- trunk/ruby-bindings/examples/ruby/libycp.rb (added)
+++ trunk/ruby-bindings/examples/ruby/libycp.rb Wed Sep 19 17:50:57 2007
@@ -0,0 +1,45 @@
+require 'ryast'
+include Ryast
+
+def get_ns(name)
+ import = Import.new(name)
+ ns = import.name_space
+ puts ns.filename
+ #ns.initialize
+
+ return ns
+end
+
+component = Y2ComponentBroker.get_namespace_component("Arch");
+#puts component.methods
+#Y2Namespace *ns = c->import(RSTRING (namespace_name)->ptr);
+nsname = "Arch"
+fncname = "sparc32"
+ns = get_ns(nsname)
+#/**/
+#t = Type.from_signature("bool()")
+#puts t
+sym = ns.table.find(fncname);
+puts sym.class
+if (sym.nil?)
+ raise ("No such symbol #{nsname}::#{fncname}")
+elsif (sym.sentry.is_variable or sym.sentry.reference? )
+ # set the variable
+ #ret_yv = YCP_getset_variable (aTHX_ ns_name, sym_te->sentry (), args);
+else
+ fnccall = ns.create_function_call(fncname, nil)
+ if fnccall.nil?
+ raise("No such function #{nsname}::#{fncname}")
+ end
+end
+exit
+
+h = ns.lookup_symbol("sparc32")
+puts h.class
+exit
+function = ns.create_function_call("sparc32",0)
+#call->appendParameter (v);
+function.finish_parameters
+res = function.evaluate_call
+puts res
+exit
Added: trunk/ruby-bindings/examples/ruby/module-arch.rb
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/examples/ruby/module-arch.rb?rev=40969&view=auto
==============================================================================
--- trunk/ruby-bindings/examples/ruby/module-arch.rb (added)
+++ trunk/ruby-bindings/examples/ruby/module-arch.rb Wed Sep 19 17:50:57 2007
@@ -0,0 +1,6 @@
+require 'yast'
+
+m = YaST::Module.new("Arch")
+puts m.sparc32
+puts m.arch_short
+puts m.is_xen
Added: trunk/ruby-bindings/examples/ruby/module-storage.rb
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/examples/ruby/module-storage.rb?rev=40969&view=auto
==============================================================================
--- trunk/ruby-bindings/examples/ruby/module-storage.rb (added)
+++ trunk/ruby-bindings/examples/ruby/module-storage.rb Wed Sep 19 17:50:57 2007
@@ -0,0 +1,7 @@
+require 'yast'
+
+m = YaST::Module.new("Storage")
+dp = m.GetDiskPartition("/dev/sda1")
+dp.each do | key, value |
+ puts "#{key} #{value}"
+end
\ No newline at end of file
Added: trunk/ruby-bindings/examples/ruby/module-timezone.rb
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/examples/ruby/module-timezone.rb?rev=40969&view=auto
==============================================================================
--- trunk/ruby-bindings/examples/ruby/module-timezone.rb (added)
+++ trunk/ruby-bindings/examples/ruby/module-timezone.rb Wed Sep 19 17:50:57 2007
@@ -0,0 +1,12 @@
+require 'yast'
+
+m = YaST::Module.new("Timezone")
+zonemap = m.get_zonemap()
+puts zonemap.class
+zonemap.each do | element |
+ element.each do | key, value |
+ value.each do | k, v |
+ puts "#{k} #{v}"
+ end
+ end
+end
Modified: trunk/ruby-bindings/examples/ruby/ui.rb
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/examples/ruby/ui.rb?rev=40969&r1=40968&r2=40969&view=diff
==============================================================================
--- trunk/ruby-bindings/examples/ruby/ui.rb (original)
+++ trunk/ruby-bindings/examples/ruby/ui.rb Wed Sep 19 17:50:57 2007
@@ -1,6 +1,6 @@
require 'yast'
ui = YaST::Module.new("UI")
-
+YaST::Ui::init("qt")
include YaST::Ui
t = HBox( Label("Welcome to Ruby!"), PushButton("Push me") )
Modified: trunk/ruby-bindings/package/yast2-ruby-bindings.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/package/yast2-ruby-bindings.changes?rev=40969&r1=40968&r2=40969&view=diff
==============================================================================
--- trunk/ruby-bindings/package/yast2-ruby-bindings.changes (original)
+++ trunk/ruby-bindings/package/yast2-ruby-bindings.changes Wed Sep 19 17:50:57 2007
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Wed Sep 19 16:42:35 CEST 2007 - dmacvicar@suse.de
+
+- Lot of improvements, examples and
+ support for the YaST UI
+- 0.2.0
+
+-------------------------------------------------------------------
Thu Aug 9 12:01:39 CEST 2007 - dmacvicar@suse.de
- Fix build on 64 bits
Modified: trunk/ruby-bindings/src/ruby/Y2RubyTypeConv.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/src/ruby/Y2RubyTypeConv.cc?rev=40969&r1=40968&r2=40969&view=diff
==============================================================================
--- trunk/ruby-bindings/src/ruby/Y2RubyTypeConv.cc (original)
+++ trunk/ruby-bindings/src/ruby/Y2RubyTypeConv.cc Wed Sep 19 17:50:57 2007
@@ -40,6 +40,8 @@
#include "Y2RubyTypeConv.h"
+#define IS_A(obj,klass) ((rb_obj_is_kind_of((obj),(klass))==Qtrue)?1:0)
+
static YCPMap rbhash_2_ycpmap( VALUE value )
{
YCPMap map;
@@ -138,7 +140,7 @@
YCPSymbol symbol = ycpval->asSymbol();
return rb_intern(symbol->symbol_cstr());
}
- rb_raise( rb_eRuntimeError, "Conversion of YCP type %s not supported", ycpval->toString().c_str() );
+ rb_raise( rb_eTypeError, "Conversion of YCP type %s not supported", ycpval->toString().c_str() );
return Qnil;
}
@@ -147,7 +149,7 @@
rbvalue_2_ycpvalue( VALUE value )
{
VALUE klass = rb_funcall( value, rb_intern("class"), 0);
- std::cout << RSTRING( rb_funcall( klass, rb_intern("to_s"), 0))->ptr << " | " << RSTRING(rb_funcall( value, rb_intern("inspect"), 0))->ptr << std::endl;
+ //std::cout << RSTRING( rb_funcall( klass, rb_intern("to_s"), 0))->ptr << " | " << RSTRING(rb_funcall( value, rb_intern("inspect"), 0))->ptr << std::endl;
//y2internal("type: '%d'", TYPE(value));
// TODO conver integers, and add support for lists, ah, and boleans!
switch (TYPE(value))
@@ -177,23 +179,17 @@
break;
case T_SYMBOL:
return YCPSymbol(rb_id2name(rb_to_id(value)));
- case T_DATA:
- rb_raise( rb_eRuntimeError, "Object");
+ //case T_DATA:
+ // rb_raise( rb_eRuntimeError, "Object");
break;
default:
+ string class_name(RSTRING(rb_funcall(rb_funcall(value, rb_intern("class"), 0), rb_intern("to_s"), 0))->ptr);
/* get the Term class object */
- VALUE cTerm = rb_funcall( rb_mKernel, rb_intern("const_get"), 1, rb_str_new2("YaST::Term") );
- VALUE is_term = rb_funcall(value, rb_intern("is_a?"), cTerm);
- if ( TYPE(is_term) == T_TRUE )
+ if ( class_name == "YaST::Term" )
{
return ryast_yterm_from_rterm(value);
}
- else
- {
- std::cout << "no term" << std::endl;
- }
- std::cout << TYPE(value) << std::endl;
- rb_raise( rb_eRuntimeError, "Conversion of Ruby type not supported");
+ rb_raise( rb_eTypeError, "Conversion of Ruby type not supported");
return YCPValue();
}
}
Modified: trunk/ruby-bindings/src/ruby/Y2RubyTypeTerm.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ruby-bindings/src/ruby/Y2RubyTypeTerm.cc?rev=40969&r1=40968&r2=40969&view=diff
==============================================================================
--- trunk/ruby-bindings/src/ruby/Y2RubyTypeTerm.cc (original)
+++ trunk/ruby-bindings/src/ruby/Y2RubyTypeTerm.cc Wed Sep 19 17:50:57 2007
@@ -112,7 +112,7 @@
int i=0;
for ( ; i