Added port, port=, username, username= to LmProxy ruby bindings
authorMikael Hallendal <micke@imendio.com>
Thu, 10 Apr 2008 15:40:20 +0200
changeset 379 bc14607827e8
parent 378 f757ef1a9d72
child 380 56e6d95df49e
Added port, port=, username, username= to LmProxy ruby bindings
bindings/ruby/rblm-proxy.c
--- a/bindings/ruby/rblm-proxy.c	Thu Apr 10 15:09:27 2008 +0200
+++ b/bindings/ruby/rblm-proxy.c	Thu Apr 10 15:40:20 2008 +0200
@@ -80,7 +80,11 @@
 {
 	LmProxy *proxy = rb_lm_proxy_from_ruby_object (self);
 
-	return rb_str_new2 (lm_proxy_get_server (proxy));
+	if (lm_proxy_get_server (proxy)) {
+		return rb_str_new2 (lm_proxy_get_server (proxy));
+	}
+
+	return Qnil;
 }
 
 VALUE
@@ -99,6 +103,53 @@
 	return Qnil;
 }
 
+VALUE 
+proxy_get_port (VALUE self)
+{
+	LmProxy *proxy = rb_lm_proxy_from_ruby_object (self);
+
+	return UINT2NUM (lm_proxy_get_port (proxy));
+}
+
+VALUE
+proxy_set_port (VALUE self, VALUE port)
+{
+	LmProxy *proxy = rb_lm_proxy_from_ruby_object (self);
+
+	lm_proxy_set_port (proxy, NUM2UINT (port));
+
+	return Qnil;
+}
+
+VALUE
+proxy_get_username (VALUE self)
+{
+	LmProxy *proxy = rb_lm_proxy_from_ruby_object (self);
+
+	if (lm_proxy_get_username (proxy)) {
+		return rb_str_new2 (lm_proxy_get_username (proxy));
+	}
+
+	return Qnil;
+}
+
+VALUE
+proxy_set_username (VALUE self, VALUE username)
+{
+	LmProxy *proxy = rb_lm_proxy_from_ruby_object (self);
+	VALUE    str_val;
+
+	if (!rb_respond_to (username, rb_intern ("to_s"))) {
+		rb_raise (rb_eArgError, "username should respond to to_s");
+	} 
+
+	str_val = rb_funcall (username, rb_intern ("to_s"), 0);
+	lm_proxy_set_username (proxy, StringValuePtr (str_val));
+
+	return Qnil;
+}
+
+
 extern void
 Init_lm_proxy (VALUE lm_mLM)
 {
@@ -111,5 +162,9 @@
 	rb_define_method (lm_cProxy, "type=", proxy_set_type, 1);
 	rb_define_method (lm_cProxy, "server", proxy_get_server, 0);
 	rb_define_method (lm_cProxy, "server=", proxy_set_server, 1);
+	rb_define_method (lm_cProxy, "port", proxy_get_port, 0);
+	rb_define_method (lm_cProxy, "port=", proxy_set_port, 1);
+	rb_define_method (lm_cProxy, "username", proxy_get_username, 0);
+	rb_define_method (lm_cProxy, "username=", proxy_set_username, 1);
 }