basicjrpc 0.1.18 → 0.1.19
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.
- 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
|