add Object::Remote->connect
Matt S Trout [Wed, 6 Jun 2012 18:23:22 +0000 (18:23 +0000)]
lib/Object/Remote.pm
lib/Object/Remote/Connection.pm
t/basic.t

index 6cfb9bb..8894cc7 100644 (file)
@@ -6,7 +6,7 @@ use Module::Runtime qw(use_module);
 
 sub new::on {
   my ($class, $on, @args) = @_;
-  my $conn = use_module('Object::Remote::Connection')->new_from_spec($on);
+  my $conn = __PACKAGE__->connect($on);
   return $conn->new_remote(class => $class, args => \@args);
 }
 
@@ -15,6 +15,11 @@ sub new {
   Object::Remote::Handle->new(@_)->proxy;
 }
 
+sub connect {
+  my ($class, $to) = @_;
+  use_module('Object::Remote::Connection')->new_from_spec($to);
+}
+
 sub current_loop {
   our $Current_Loop ||= Object::Remote::MiniLoop->new
 }
index 3e35d53..f466452 100644 (file)
@@ -106,6 +106,13 @@ sub new_remote {
   )->proxy;
 }
 
+sub connect {
+  my ($self, $to) = @_;
+  return await_future($self->send(
+    class_call => 'Object::Remote', 0, connect => $to
+  ));
+}
+
 sub get_remote_sub {
   my ($self, $sub) = @_;
   my ($pkg, $name) = $sub =~ m/^(.*)::([^:]+)$/;
index 4529e55..0289dc0 100644 (file)
--- a/t/basic.t
+++ b/t/basic.t
@@ -2,21 +2,17 @@ use strictures 1;
 use Test::More;
 use Sys::Hostname qw(hostname);
 
-use Object::Remote::Connector::Local;
 use Object::Remote;
 
 $ENV{PERL5LIB} = join(
   ':', ($ENV{PERL5LIB} ? $ENV{PERL5LIB} : ()), qw(lib t/lib)
 );
 
-my $connection = Object::Remote::Connector::Local->new->connect;
+my $connection = Object::Remote->connect('-');
 
 #$Object::Remote::Connection::DEBUG = 1;
 
-my $remote = Object::Remote->new(
-  connection => $connection,
-  class => 'ORTestClass'
-);
+my $remote = ORTestClass->new::on($connection);
 
 isnt($$, $remote->pid, 'Different pid on the other side');