Fix amqplib and predis argument problems. (#92)

diff --git a/src/plugin/plugin_amqplib.rs b/src/plugin/plugin_amqplib.rs
index ea7ce10..7d7f9b1 100644
--- a/src/plugin/plugin_amqplib.rs
+++ b/src/plugin/plugin_amqplib.rs
@@ -69,7 +69,7 @@
         let function_name = function_name.to_owned();
         (
             Box::new(move |request_id, execute_data| {
-                validate_num_args(execute_data, 3)?;
+                validate_num_args(execute_data, 1)?;
 
                 let this = get_this_mut(execute_data)?;
 
diff --git a/src/plugin/plugin_predis.rs b/src/plugin/plugin_predis.rs
index a9c2aaa..6ed0ac8 100644
--- a/src/plugin/plugin_predis.rs
+++ b/src/plugin/plugin_predis.rs
@@ -279,7 +279,13 @@
                 let host = host.expect_z_str()?.to_str()?;
 
                 let port = parameters.call("__get", [ZVal::from("port")])?;
-                let port = port.expect_long()?;
+                let port = if let Some(port) = port.as_long() {
+                    port.to_string()
+                } else if let Some(port) = port.as_z_str() {
+                    port.to_str().unwrap_or("0").to_string()
+                } else {
+                    "0".to_string()
+                };
 
                 Ok(format!("{}:{}", host, port))
             }