observ 0.1.3 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 33e14edc732f7311cc4ee11be91395ab11716637
4
- data.tar.gz: a947a8f8de9231cc3098228a72e0a857d2570e2c
3
+ metadata.gz: e2ac87dcf723d6c1034daf19ef75bcfc79c2b0de
4
+ data.tar.gz: 411bc603a41941f80748c541bdc8a0c35474ed97
5
5
  SHA512:
6
- metadata.gz: 43500bc593a79e57a0926053b996759d73dae5ecf711ceb3a5f6f518c19e14b9958387764e39144b806f4267af95c6fcbc27cddd245f3888cbac77c5b7fb0272
7
- data.tar.gz: bbddffd2335acfa31066cf7d126224549e8a476ce7226f4485f43b9bd399c00788981643e219aee2cda8430eee84138d9aac8df08c021d0e54b11ff11c7a77bf
6
+ metadata.gz: e92639fcb46b6db95bb4e71d92c089fa2fa73084b597a69a01b6a332480ef6a2fa3f1b600234ab232840b249ad23e83afd88cb5e2fc196cf5e5a60d9589e5a65
7
+ data.tar.gz: 15f5256df328f97fffaf53a8576430fe31ff5471c94394d3b6bf142a95154d2c60bfcb946e6f1239ba1fb4d9d42359257e5c0c46276268bfa12dc8eda89d75a7
@@ -1,9 +1,10 @@
1
1
  require "ob_serv/version"
2
2
  module ObServ
3
3
  module DSL
4
- def subscribe(event, on: :receive)
5
- return ObServ.register self, event, on: on, &Proc.new if block_given?
6
- ObServ.register self, event, on: on
4
+ def subscribe(event, options = {})
5
+ options[:on] = event unless options.include?(:on)
6
+ return ObServ.register self, event, options, &Proc.new if block_given?
7
+ ObServ.register self, event, options
7
8
  end
8
9
 
9
10
  def publish(event, *args)
@@ -21,21 +22,21 @@ module ObServ
21
22
  }
22
23
  end
23
24
 
24
- def register(obj, event, on: :receive)
25
+ def register(obj, event, options = {})
25
26
  @notifies ||= {}
26
27
  block = block_given? ? Proc.new : nil
27
28
  @notifies[event] ||= {}
28
- @notifies[event][obj.__id__] = [obj, on, block]
29
+ @notifies[event][obj.__id__] = [obj, options, block]
29
30
  end
30
31
 
31
32
  def publish(event, *args)
32
- @notifies[event]&.each do |_, (obj, m, blk)|
33
+ @notifies[event]&.each do |_, (obj, opts, blk)|
33
34
  next blk.call(*args) if blk
35
+ m = opts[:on]
34
36
  if obj.respond_to?(m) && obj.respond_to?(:name) && obj.to_s == obj.name
35
37
  next obj.send m, *args if obj.respond_to? m
36
38
  end
37
39
  obj.send m, *args if obj.respond_to? m
38
- obj.send event, *args if obj.respond_to? event
39
40
  end
40
41
  end
41
42
  end
@@ -1,3 +1,3 @@
1
1
  module ObServ
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: observ
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - watsy0007