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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6e6f4cca54e87a4b17094ae0cc49257e219747873c769791b4b7b0c9d9a878d
4
- data.tar.gz: 3bf2021dbc5e36329693df377722d3f756de7ccd7744967c88e02eda94e3fedc
3
+ metadata.gz: 2830c68dcefb84d4a784ae99beac330b30647119ed7d99a5bef6080324fd1671
4
+ data.tar.gz: 0f5868e61b20eb59282ffd4fad7bcf3e1f05881c13b80ee0cb7d6655586325c9
5
5
  SHA512:
6
- metadata.gz: 45ff134030d6f75704b326508c6b667b5240d93d2210fd01130a3f3c9b0c74aff40025a38adf139c0e3ceffbdbf0eaa82d4cda9b4a7564725bc5374d332a01fb
7
- data.tar.gz: acef4ccb3cd5c9100ea7236f90ec9803f20f3b9703fbc6a86eb9d5f83a326185f0ffbef28be4d781448073d28d33422a687d11de2bea7e771fe22534e1130a46
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 debounce_event(descriptor, event, timeout)
33
+ def debounce(descriptor, object, timeout)
34
34
  if socket.nil?
35
35
  log_debug("No connection to #{server_name}; publishing event immediately.")
36
- event.publish if event.respond_to?(:publish)
36
+ object_callback(object)
37
37
  else
38
- log_debug("Sending #{event_name(event)} event to #{server_name}")
39
- transmit(debounce_request(descriptor, event, timeout))
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
- publish_event(payload['data'])
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
@@ -1,3 +1,3 @@
1
1
  module Debounced
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debounced
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary Passero