em_remote_call 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,10 @@ module EM::RemoteCall
8
8
  end
9
9
 
10
10
  define_method name do |*method_opts, &callb|
11
- return unless self.class.remote_connection
11
+ remote_connection =
12
+ (self.class.respond_to?(:remote_connection) && self.class.remote_connection) ||
13
+ (self.respond_to?(:remote_connection) && self.remote_connection)
14
+ return unless remote_connection
12
15
 
13
16
  callback = EM::RemoteCall::Deferrable.new
14
17
  callback.callback(&callb) if callb
@@ -23,7 +26,7 @@ module EM::RemoteCall
23
26
  :deferrable_id => callback.object_id # store the callbacks object_id to retrieve it later
24
27
  }
25
28
 
26
- self.class.remote_connection.call call
29
+ remote_connection.call call
27
30
  return callback
28
31
  end
29
32
  end
@@ -23,11 +23,7 @@ class EM::RemoteCall::Call
23
23
  end
24
24
 
25
25
  def call(&callb)
26
- if @argument
27
- @instance.__send__ @method, @argument, &callb
28
- else
29
- @instance.__send__ @method, &callb
30
- end
26
+ @argument ? @instance.__send__(@method, @argument, &callb) : @instance.__send__(@method, &callb)
31
27
  end
32
28
  end
33
29
 
@@ -1,3 +1,3 @@
1
1
  module EmRemoteCall
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -28,7 +28,10 @@ class ServerTrack < Track
28
28
  "started #{id}"
29
29
  end
30
30
  def raise_hell
31
- EM.next_tick{raise 'foobar'}
31
+ raise 'foobar'
32
+ end
33
+ def self.some_class_meth
34
+ yield
32
35
  end
33
36
  end
34
37
 
@@ -37,6 +40,11 @@ class ClientTrack < Track
37
40
  remote_method :init_track_on_server, :class_name => 'ServerTrack', :calls => :new
38
41
  remote_method :play, :class_name => 'ServerTrack', :find_by => :id
39
42
  remote_method :raise_hell, :class_name => 'ServerTrack', :find_by => :id
43
+
44
+ class << self
45
+ extend EM::RemoteCall
46
+ remote_method :some_class_meth, :class_name => 'ServerTrack'
47
+ end
40
48
  end
41
49
 
42
50
  class EMController
@@ -94,4 +102,13 @@ describe EM::RemoteCall do
94
102
  end
95
103
  end
96
104
  end
105
+ describe "client side class method" do
106
+ it "should work :)" do
107
+ test_on_client do
108
+ callb = mock(:callb)
109
+ callb.should_receive(:foo)
110
+ ClientTrack.some_class_meth{callb.foo}
111
+ end
112
+ end
113
+ end
97
114
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 4
9
- version: 0.0.4
8
+ - 5
9
+ version: 0.0.5
10
10
  platform: ruby
11
11
  authors:
12
12
  - Niko Dittmann