Added LmConnection::send to ruby bindings
authorMikael Hallendal <micke@imendio.com>
Thu, 10 Apr 2008 17:33:43 +0200
changeset 386 d4549fc19801
parent 385 b27d2a2b37a1
child 387 39e105c72094
Added LmConnection::send to ruby bindings
bindings/ruby/rblm-connection.c
bindings/ruby/rblm-message-node.c
bindings/ruby/rblm-message.c
bindings/ruby/rblm-private.h
bindings/ruby/rblm-proxy.c
bindings/ruby/rblm-ssl.c
--- a/bindings/ruby/rblm-connection.c	Thu Apr 10 17:03:00 2008 +0200
+++ b/bindings/ruby/rblm-connection.c	Thu Apr 10 17:33:43 2008 +0200
@@ -5,7 +5,7 @@
 
 VALUE conn_set_server (VALUE self, VALUE server);
 
-static LmConnection *
+LmConnection *
 rb_lm_connection_from_ruby_object (VALUE obj)
 {
 	LmConnection *conn;
@@ -209,6 +209,15 @@
 }
 
 VALUE
+conn_send (VALUE self, VALUE msg)
+{
+	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
+	LmMessage    *m = rb_lm_message_from_ruby_object (msg);
+
+	return GBOOL2RVAL (lm_connection_send (conn, m, NULL));
+}
+
+VALUE
 conn_get_state (VALUE self)
 {
 	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
@@ -247,8 +256,9 @@
 	*/
 
 	/* Use one send message and check if there is a block passed? */
+	
+	rb_define_method (lm_cConnection, "send", conn_send, 1);
 	/*
-	rb_define_method (lm_cConnection, "send", conn_send, 1);
 	rb_define_method (lm_cConnection, "send_with_reply", conn_send_with_reply, -1);
 	rb_define_method (lm_cConnection, "send_raw", conn_send_raw, 1);
 	*/
--- a/bindings/ruby/rblm-message-node.c	Thu Apr 10 17:03:00 2008 +0200
+++ b/bindings/ruby/rblm-message-node.c	Thu Apr 10 17:33:43 2008 +0200
@@ -3,7 +3,7 @@
 
 VALUE lm_cMessageNode;
 
-static LmMessageNode *
+LmMessageNode *
 rb_lm_message_node_from_ruby_object (VALUE obj)
 {
 	LmMessageNode *node;
@@ -88,7 +88,12 @@
 	rb_scan_args (argc, argv, "11", &name, &value);
 
 	if (!NIL_P (value)) {
-		value_str = StringValuePtr (value);
+		if (!rb_respond_to (value, rb_intern ("to_s"))) {
+			rb_raise (rb_eArgError, "value should respond to to_s");
+		} else {
+			VALUE str_val = rb_funcall (value, rb_intern ("to_s"), 0);
+			value_str = StringValuePtr (str_val);
+		}
 	}
 
 	child = lm_message_node_add_child (node, StringValuePtr (name),
--- a/bindings/ruby/rblm-message.c	Thu Apr 10 17:03:00 2008 +0200
+++ b/bindings/ruby/rblm-message.c	Thu Apr 10 17:33:43 2008 +0200
@@ -5,7 +5,7 @@
 
 VALUE lm_cMessage;
 
-static LmMessage *
+LmMessage *
 rb_lm_message_from_ruby_object (VALUE obj)
 {
 	LmMessage *m;
@@ -99,5 +99,7 @@
 	rb_define_method (lm_cMessage, "type", msg_get_type, 0);
 	rb_define_method (lm_cMessage, "sub_type", msg_get_sub_type, 0);
 	rb_define_method (lm_cMessage, "root_node", msg_get_root_node, 0);
+
+	rb_define_alias (lm_cMessage, "node", "root_node");
 }
 
--- a/bindings/ruby/rblm-private.h	Thu Apr 10 17:03:00 2008 +0200
+++ b/bindings/ruby/rblm-private.h	Thu Apr 10 17:33:43 2008 +0200
@@ -15,6 +15,12 @@
 
 VALUE               rb_lm_message_node_to_ruby_object (LmMessageNode *node);
 
+LmConnection *      rb_lm_connection_from_ruby_object         (VALUE obj);
+LmMessage *         rb_lm_message_from_ruby_object            (VALUE obj);
+LmMessageNode *     rb_lm_message_node_from_ruby_object       (VALUE obj);
+LmSSL *             rb_lm_ssl_from_ruby_object                (VALUE obj);
+LmProxy *           rb_lm_proxy_from_ruby_object              (VALUE obj);
+
 LmConnectionState   rb_lm_connection_state_from_ruby_object   (VALUE obj);
 LmDisconnectReason  rb_lm_disconnect_reason_from_ruby_object  (VALUE obj);
 LmMessageType       rb_lm_message_type_from_ruby_object       (VALUE obj);
--- a/bindings/ruby/rblm-proxy.c	Thu Apr 10 17:03:00 2008 +0200
+++ b/bindings/ruby/rblm-proxy.c	Thu Apr 10 17:33:43 2008 +0200
@@ -2,7 +2,7 @@
 
 VALUE lm_cProxy;
 
-static LmProxy *
+LmProxy *
 rb_lm_proxy_from_ruby_object (VALUE obj)
 {
 	LmProxy *proxy;
--- a/bindings/ruby/rblm-ssl.c	Thu Apr 10 17:03:00 2008 +0200
+++ b/bindings/ruby/rblm-ssl.c	Thu Apr 10 17:33:43 2008 +0200
@@ -3,7 +3,7 @@
 
 VALUE lm_cSSL;
 
-static LmSSL *
+LmSSL *
 rb_lm_ssl_from_ruby_object (VALUE obj)
 {
 	LmSSL *ssl;