basicjrpc 0.1.18 → 0.1.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/basicjrpc/client.rb +8 -5
- data/lib/basicjrpc/hash.rb +5 -0
- data/lib/basicjrpc/server.rb +2 -2
- data/lib/basicjrpc/version.rb +1 -1
- metadata +3 -3
- data/lib/basicjrpc/client/payload.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7930f78b3478426590b09c94e7fc74eb76b9ccde
|
4
|
+
data.tar.gz: d41ba8345db35635b569fd567246a99480cd4eab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d54fdabe946a4ad92d167d79554ae97cf059425d201464334ce738254f6d9d43771bf3f500fbb01ccd5d9d152170ea1467b2f59f49d2d07512216b0ea6bec16
|
7
|
+
data.tar.gz: 64166ea2d92d8d4f630afb8f7411045c054b75d110c57a8d537e36898669264c2bc8b3691682a43fc88429c2e1a7d6072cda7bf1492fc5814566322f01782879
|
data/lib/basicjrpc/client.rb
CHANGED
@@ -5,20 +5,22 @@ module BasicJRPC
|
|
5
5
|
def initialize(queue, timeout = 5)
|
6
6
|
@redis = Redis.new(host: "redis")
|
7
7
|
@queue = queue
|
8
|
-
@payload =
|
8
|
+
@payload = {}
|
9
9
|
@timeout = timeout
|
10
10
|
end
|
11
11
|
|
12
12
|
def method_missing(m, *args, &block)
|
13
|
-
send_request(
|
13
|
+
send_request({ method_name: m, method_arguments: *args })
|
14
14
|
end
|
15
15
|
|
16
16
|
def send_request payload
|
17
|
-
payload
|
17
|
+
payload[:message_id] = SecureRandom.uuid
|
18
|
+
payload[:response] = true
|
19
|
+
|
18
20
|
@redis.rpush(@queue, Oj.dump(payload))
|
19
21
|
|
20
22
|
Timeout::timeout(@timeout) {
|
21
|
-
return Oj.load(@redis.blpop(payload
|
23
|
+
return Oj.load(@redis.blpop(payload[:message_id])[1])
|
22
24
|
}
|
23
25
|
end
|
24
26
|
end
|
@@ -26,7 +28,8 @@ module BasicJRPC
|
|
26
28
|
# Fire And Forget Client
|
27
29
|
class FAFClient < Client
|
28
30
|
def send_request payload
|
29
|
-
payload
|
31
|
+
payload[:message_id] = SecureRandom.uuid
|
32
|
+
payload[:response] = true
|
30
33
|
@redis.rpush(@queue, Oj.dump(payload))
|
31
34
|
end
|
32
35
|
end
|
data/lib/basicjrpc/server.rb
CHANGED
@@ -12,10 +12,10 @@ module BasicJRPC
|
|
12
12
|
while true
|
13
13
|
payload = @redis.blpop(@queue)[1]
|
14
14
|
payload = Oj.load(payload)
|
15
|
-
puts "Processing message #{payload.method_name} #{payload.
|
15
|
+
puts "Processing message #{payload.method_name} #{payload.method_arguments}" if BasicJRPC::Config.debug
|
16
16
|
|
17
17
|
# Should always return a data object
|
18
|
-
response = @injected_class.send(payload.method_name, *payload.
|
18
|
+
response = @injected_class.send(payload.method_name, *payload.method_arguments)
|
19
19
|
|
20
20
|
# Bounce the response back if response is requested
|
21
21
|
@redis.rpush(payload.message_id, Oj.dump(response)) if payload.response_requested
|
data/lib/basicjrpc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: basicjrpc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Simpson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -97,7 +97,7 @@ files:
|
|
97
97
|
- bin/setup
|
98
98
|
- lib/basicjrpc.rb
|
99
99
|
- lib/basicjrpc/client.rb
|
100
|
-
- lib/basicjrpc/
|
100
|
+
- lib/basicjrpc/hash.rb
|
101
101
|
- lib/basicjrpc/server.rb
|
102
102
|
- lib/basicjrpc/version.rb
|
103
103
|
homepage: http://www.martin-simpson.net
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module BasicJRPC
|
2
|
-
class Client
|
3
|
-
|
4
|
-
class Payload
|
5
|
-
attr_reader :message_id, :method_name, :args
|
6
|
-
attr_accessor :response_requested
|
7
|
-
|
8
|
-
def initialize(method_name, args)
|
9
|
-
@message_id = SecureRandom.uuid
|
10
|
-
@method_name = method_name
|
11
|
-
@args = args
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
|
16
|
-
end
|
17
|
-
end
|