wires 0.3.6 → 0.3.7

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: b89018baa293cf418580c299f57c87efc111ff84
4
- data.tar.gz: f99305a8263a8697bc87479f5abef918091182c4
3
+ metadata.gz: 95acdf9855630beb97ecabff1acb709c0251ad60
4
+ data.tar.gz: 43bd14f65cd614891e42f561bf4056245c7008c4
5
5
  SHA512:
6
- metadata.gz: 0a6b46c0f31c127d9b80221ba099c6f9f8252d2e442a33828a48a0514c0f95743f6ecb03893d26497b1073c41fd12e52d9fd3bb43cce99bb031a85d08321dd4f
7
- data.tar.gz: 700abbf49b2e3de5bd1396b89a7eef600100bcc865a649f3b0eb8274850fc7f7ae20205b11aa2a7b397111066a51b2f72e1ab09315f04b29e4548e4a55d4e7fe
6
+ metadata.gz: 474fb2acc06c4a06a19239cd56d7aa8a525bcd80d43cc1426babac2c0709343e9f009d8f7006d2ac2f8ea43f5ee18af8b00c094721c24ef9a98b0d8d97cd1614
7
+ data.tar.gz: 5b3122f9bd2cf537209527ab3c672c0f5bb15a8aff194dc5db14d212375299da73344b2db3b6a06ac3f155e7c52f3a977bdc41c339bfb0b926209e1170e5adfd
data/lib/wires/channel.rb CHANGED
@@ -46,19 +46,23 @@ module Wires
46
46
  end
47
47
 
48
48
  # Register a proc to be triggered by an event on this channel
49
- def register(events, proc)
50
-
49
+ # Return the proc that was passed in
50
+ def register(*events, &proc)
51
51
  if not proc.is_a?(Proc) then raise SyntaxError, \
52
52
  "No Proc given to execute on event: #{events}" end
53
-
54
- # Convert all events to strings
55
- events = [events] unless events.is_a? Array
56
- events.flatten!
57
- events.map! { |e| (e.is_a?(Class) ? e.codestring : e.to_s) }
58
- events.uniq!
59
-
53
+ _normalize_event_list(events)
60
54
  @target_list << [events, proc]
61
- nil end
55
+ proc
56
+ end
57
+
58
+ # Unregister a proc from the target list of this channel
59
+ # Return true if at least one matching target was unregistered, else false
60
+ def unregister(*events, &proc)
61
+ _normalize_event_list(events)
62
+ !!(@target_list.reject! do |e, p|
63
+ (proc and proc==p) and (events.map{|event| e.include? event}.all?)
64
+ end)
65
+ end
62
66
 
63
67
  # Register hook to execute before fire - can call multiple times
64
68
  def self.before_fire(retain=false, &block)
@@ -113,6 +117,14 @@ module Wires
113
117
 
114
118
  nil end
115
119
 
120
+ # Convert events to array of unique codestrings
121
+ def _normalize_event_list(events)
122
+ events = [events] unless events.is_a? Array
123
+ events.flatten!
124
+ events.map! { |e| (e.is_a?(Class) ? e.codestring : e.to_s) }
125
+ events.uniq!
126
+ end
127
+
116
128
  def _relevant_init
117
129
  @relevant_channels = [@@channel_star]
118
130
  @my_names = (self.name.is_a? Array) ? self.name : [self.name]
@@ -9,9 +9,10 @@ module Wires
9
9
  channels = [channels] unless channels.is_a? Array
10
10
  for channel in channels
11
11
  channel=Channel.new(channel) unless channel.is_a? Channel
12
- channel.register(events, codeblock)
12
+ channel.register(*events, &codeblock)
13
13
  end
14
- nil end
14
+ codeblock
15
+ end
15
16
 
16
17
  def fire(event, channel='*', **kwargs)
17
18
  channel = Channel.new(channel) unless channel.is_a? Channel
data/lib/wires/event.rb CHANGED
@@ -99,8 +99,8 @@ module Wires
99
99
  for key in kwargs.keys
100
100
  att = key.to_s
101
101
  obj.instance_variable_set("@#{att}", kwargs[key])
102
- class_eval("def #{att}; @#{att}; end")
103
- # class_eval("def #{att}=(val); @#{att}=val; end")
102
+ class_eval { attr_reader att }
103
+ # class_eval { attr_writer att }
104
104
  end
105
105
 
106
106
  obj
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wires
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe McIlvain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-20 00:00:00.000000000 Z
11
+ date: 2013-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport-core-ext