debounced 0.1.5 → 0.1.6
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/debounced/service_proxy.rb +15 -19
- data/lib/debounced/version.rb +1 -1
- data/lib/debounced.rb +2 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2830c68dcefb84d4a784ae99beac330b30647119ed7d99a5bef6080324fd1671
|
4
|
+
data.tar.gz: 0f5868e61b20eb59282ffd4fad7bcf3e1f05881c13b80ee0cb7d6655586325c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7f523c394b97d67da7d0b3ccbd2d55e9913667b4f84e1958e8fdc0ea540d08858aa72c3fc648644a525ff1bf392ac1b26b7d6c349f9d80c9fc5bc84cdd996df
|
7
|
+
data.tar.gz: b5146a1dbce3d60ae08d1582779edd21383f90d29ee7083fc530d122ab962f67e1d8626ce4a9ea11861d61ecca6c2da4cddfe0a09907f753a7fdeb291a8c2358
|
@@ -30,13 +30,13 @@ module Debounced
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def debounce(descriptor, object, timeout)
|
34
34
|
if socket.nil?
|
35
35
|
log_debug("No connection to #{server_name}; publishing event immediately.")
|
36
|
-
|
36
|
+
object_callback(object)
|
37
37
|
else
|
38
|
-
log_debug("Sending #{
|
39
|
-
transmit(debounce_request(descriptor,
|
38
|
+
log_debug("Sending #{object.inspect} to #{server_name}")
|
39
|
+
transmit(debounce_request(descriptor, object, timeout))
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -63,7 +63,7 @@ module Debounced
|
|
63
63
|
payload = deserialize_payload(message)
|
64
64
|
next unless payload['type'] == 'publishEvent'
|
65
65
|
|
66
|
-
|
66
|
+
class_callback(payload['data'])
|
67
67
|
rescue IO::TimeoutError
|
68
68
|
# Ignored
|
69
69
|
end
|
@@ -81,12 +81,6 @@ module Debounced
|
|
81
81
|
@socket = nil
|
82
82
|
end
|
83
83
|
|
84
|
-
def publish_event(data)
|
85
|
-
event_klass = data['klass'].constantize
|
86
|
-
event_data = data['attributes']
|
87
|
-
event_klass.publish(event_data)
|
88
|
-
end
|
89
|
-
|
90
84
|
def debounce_request(descriptor, event, timeout)
|
91
85
|
{
|
92
86
|
type: 'debounceEvent',
|
@@ -108,14 +102,6 @@ module Debounced
|
|
108
102
|
end
|
109
103
|
end
|
110
104
|
end
|
111
|
-
|
112
|
-
def event_name(event)
|
113
|
-
if event.respond_to?(:event_name)
|
114
|
-
event.event_name
|
115
|
-
else
|
116
|
-
event.class.name
|
117
|
-
end
|
118
|
-
end
|
119
105
|
|
120
106
|
def transmit(request)
|
121
107
|
socket.send serialize_payload(request), 0
|
@@ -133,6 +119,16 @@ module Debounced
|
|
133
119
|
ActiveSupport::JSON.decode(payload)
|
134
120
|
end
|
135
121
|
|
122
|
+
def object_callback(object)
|
123
|
+
object.send(Debounced.configuration.callback_method, args)
|
124
|
+
end
|
125
|
+
|
126
|
+
def class_callback(data)
|
127
|
+
klass = data['klass'].constantize
|
128
|
+
data = data['attributes']
|
129
|
+
klass.send(Debounced.configuration.callback_method, data)
|
130
|
+
end
|
131
|
+
|
136
132
|
def socket_descriptor
|
137
133
|
@socket_descriptor ||= Debounced.configuration.socket_descriptor
|
138
134
|
end
|
data/lib/debounced/version.rb
CHANGED
data/lib/debounced.rb
CHANGED
@@ -15,11 +15,12 @@ module Debounced
|
|
15
15
|
end
|
16
16
|
|
17
17
|
class Configuration
|
18
|
-
attr_accessor :socket_descriptor, :wait_timeout
|
18
|
+
attr_accessor :socket_descriptor, :wait_timeout, :callback_method
|
19
19
|
|
20
20
|
def initialize
|
21
21
|
@socket_descriptor = ENV['DEBOUNCED_SOCKET'] || '/tmp/app.debounceEvents'
|
22
22
|
@wait_timeout = ENV['DEBOUNCED_TIMEOUT']&.to_i || 3
|
23
|
+
@callback_method = :publish
|
23
24
|
end
|
24
25
|
end
|
25
26
|
end
|