wires 0.3.3 → 0.3.4
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/wires/convenience.rb +5 -0
- data/lib/wires/core_ext.rb +49 -0
- data/lib/wires/hub.rb +1 -1
- data/lib/wires/time.rb +0 -52
- data/lib/wires.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba088fc39b2036139e5a89f2d89d57f76fa345c7
|
4
|
+
data.tar.gz: df9a99b434ea93b343142cae93583aac4e654128
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f684f5c1d7d636a9c57b2f6a65b912cfc6408a8a81f79747786705cb8248d68907f6ba6b02bb2c79d938f78431062310a0b97cd198fc755b18771167beecc073
|
7
|
+
data.tar.gz: 8b6b36cd2763e2a5a24516248cc87c510f67bf2833aa70d845745e30c346e8a32b9d8dc3f8aedff34df74a8667624e3aad25dbe1f2d90cc232e40feade372020
|
data/lib/wires/convenience.rb
CHANGED
@@ -3,6 +3,8 @@ module Wires
|
|
3
3
|
|
4
4
|
module Convenience
|
5
5
|
|
6
|
+
# @original_instance_methods =
|
7
|
+
|
6
8
|
def on(events, channels='*', &codeblock)
|
7
9
|
channels = [channels] unless channels.is_a? Array
|
8
10
|
for channel in channels
|
@@ -25,6 +27,7 @@ module Wires
|
|
25
27
|
|
26
28
|
def Channel(*args) Channel.new(*args) end
|
27
29
|
|
30
|
+
|
28
31
|
class << self
|
29
32
|
def prefix_methods(prefix)
|
30
33
|
|
@@ -40,6 +43,8 @@ module Wires
|
|
40
43
|
remove_method thing
|
41
44
|
end
|
42
45
|
|
46
|
+
# remove_method :prefix_methods
|
47
|
+
|
43
48
|
end
|
44
49
|
end
|
45
50
|
|
@@ -0,0 +1,49 @@
|
|
1
|
+
|
2
|
+
# Reopen the Time class and add the fire method to enable nifty syntax like:
|
3
|
+
# 32.minutes.from_now.fire :event
|
4
|
+
class ::Time
|
5
|
+
unless instance_methods.include? :fire
|
6
|
+
def fire(event, channel='*', **kwargs)
|
7
|
+
Wires::TimeScheduler << \
|
8
|
+
Wires::TimeSchedulerItem.new(self, event, channel, **kwargs)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
# Reopen ActiveSupport::Duration to enable nifty syntax like:
|
15
|
+
# 32.minutes.from_now do some_stuff end
|
16
|
+
class ::ActiveSupport::Duration
|
17
|
+
|
18
|
+
unless instance_methods.include? :__original_since
|
19
|
+
alias_method :__original_since, :since
|
20
|
+
def since(*args, &block)
|
21
|
+
|
22
|
+
if block
|
23
|
+
on :time_scheduler_anon, block.object_id do |e| block.call(e) end
|
24
|
+
__original_since(*args).fire(:time_scheduler_anon,
|
25
|
+
block.object_id)
|
26
|
+
nil
|
27
|
+
else
|
28
|
+
__original_since(*args)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
alias :from_now :since
|
32
|
+
end
|
33
|
+
|
34
|
+
unless instance_methods.include? :__original_ago
|
35
|
+
alias :__original_ago :ago
|
36
|
+
def ago(*args, &block)
|
37
|
+
if block
|
38
|
+
on :time_scheduler_anon, block.object_id do |e| block.call(e) end
|
39
|
+
__original_ago(*args).fire(:time_scheduler_anon,
|
40
|
+
block.object_id)
|
41
|
+
nil
|
42
|
+
else
|
43
|
+
__original_ago(*args)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
alias :until :ago
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/lib/wires/hub.rb
CHANGED
data/lib/wires/time.rb
CHANGED
@@ -195,60 +195,8 @@ module Wires
|
|
195
195
|
|
196
196
|
end
|
197
197
|
|
198
|
-
end # End Wires module.
|
199
|
-
|
200
|
-
# Reopen the Time class and add the fire method to enable nifty syntax like:
|
201
|
-
# 32.minutes.from_now.fire :event
|
202
|
-
class Time
|
203
|
-
def fire(event, channel='*', **kwargs)
|
204
|
-
Wires::TimeScheduler << \
|
205
|
-
Wires::TimeSchedulerItem.new(self, event, channel, **kwargs)
|
206
|
-
end
|
207
|
-
end
|
208
|
-
|
209
|
-
|
210
|
-
# Reopen ActiveSupport::Duration to enable nifty syntax like:
|
211
|
-
# 32.minutes.from_now do some_stuff end
|
212
|
-
class ActiveSupport::Duration
|
213
|
-
|
214
|
-
alias :__original_since :since
|
215
|
-
def since(*args, &block)
|
216
|
-
if block
|
217
|
-
on :time_scheduler_anon, block.object_id do |e| block.call(e) end
|
218
|
-
__original_since(*args).fire(:time_scheduler_anon,
|
219
|
-
block.object_id)
|
220
|
-
nil
|
221
|
-
else
|
222
|
-
__original_since(*args)
|
223
|
-
end
|
224
|
-
end
|
225
|
-
alias :from_now :since
|
226
|
-
|
227
|
-
alias :__original_ago :ago
|
228
|
-
def ago(*args, &block)
|
229
|
-
if block
|
230
|
-
on :time_scheduler_anon, block.object_id do |e| block.call(e) end
|
231
|
-
__original_ago(*args).fire(:time_scheduler_anon,
|
232
|
-
block.object_id)
|
233
|
-
nil
|
234
|
-
else
|
235
|
-
__original_ago(*args)
|
236
|
-
end
|
237
|
-
end
|
238
|
-
alias :until :ago
|
239
|
-
|
240
198
|
end
|
241
199
|
|
242
|
-
module Wires
|
243
|
-
module Convenience
|
244
|
-
|
245
|
-
def fire_every(interval, event, channel='*', **kwargs)
|
246
|
-
Wires::TimeScheduler << \
|
247
|
-
Wires::TimeSchedulerItem.new(self, event, channel, **kwargs)
|
248
|
-
end
|
249
|
-
|
250
|
-
end
|
251
|
-
end
|
252
200
|
|
253
201
|
# TODO: Repeatable event sugar?
|
254
202
|
# TODO: Tests for all new functionality
|
data/lib/wires.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wires
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe McIlvain
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- lib/wires.rb
|
105
105
|
- lib/wires/time.rb
|
106
106
|
- lib/wires/hub.rb
|
107
|
+
- lib/wires/core_ext.rb
|
107
108
|
- lib/wires/expect_type.rb
|
108
109
|
- lib/wires/clean.rb
|
109
110
|
- lib/wires/convenience.rb
|