jsbus 0.1.2 → 0.1.3

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.
@@ -1,3 +1,3 @@
1
1
  module JsBus
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -7,9 +7,13 @@
7
7
  EventBus = (function() {
8
8
 
9
9
  function EventBus() {
10
- this.subscribers = [];
10
+ this.subscribers = {};
11
11
  }
12
12
 
13
+ EventBus.prototype.createEvent = function(eventType, data, callback) {
14
+ return new Event(eventType, data, callback);
15
+ };
16
+
13
17
  EventBus.prototype.publish = function(eventType, data, callback) {
14
18
  var eventTypes;
15
19
  eventTypes = [].concat(eventType);
@@ -21,7 +25,7 @@
21
25
  };
22
26
 
23
27
  EventBus.prototype.reset = function() {
24
- return this.subscribers = [];
28
+ return this.subscribers = {};
25
29
  };
26
30
 
27
31
  EventBus.prototype.subscribe = function(eventType, callback) {
@@ -31,24 +35,19 @@
31
35
  };
32
36
 
33
37
  EventBus.prototype.unsubscribe = function(eventType) {
34
- var eventTypes, subscriber, tmpSubscribers, _i, _j, _len, _len1, _ref, _results;
38
+ var eventTypes, subscriber, _i, _j, _len, _len1, _ref, _results;
35
39
  eventTypes = [].concat(eventType);
36
40
  _results = [];
37
41
  for (_i = 0, _len = eventTypes.length; _i < _len; _i++) {
38
42
  eventType = eventTypes[_i];
39
- tmpSubscribers = [];
40
- _ref = this.subscribers;
43
+ _ref = this.subscribers[eventType];
41
44
  for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {
42
45
  subscriber = _ref[_j];
43
- if (subscriber.eventType !== eventType) {
44
- tmpSubscribers.push(subscriber);
45
- } else {
46
- this.publish("EventBus.unsubscribed", {
47
- subscriber: subscriber
48
- });
49
- }
46
+ this.publish("EventBus.unsubscribed", {
47
+ subscriber: subscriber
48
+ });
50
49
  }
51
- _results.push(this.subscribers = tmpSubscribers);
50
+ _results.push(this.subscribers[eventType] = []);
52
51
  }
53
52
  return _results;
54
53
  };
@@ -63,6 +62,7 @@
63
62
  this.eventType = eventType;
64
63
  this.data = data != null ? data : {};
65
64
  this.callback = callback;
65
+ this.timestamp = Date.now().toString();
66
66
  }
67
67
 
68
68
  Event.prototype.push = function(subscriber) {
@@ -93,7 +93,7 @@
93
93
  _results = [];
94
94
  for (_i = 0, _len = eventTypes.length; _i < _len; _i++) {
95
95
  eventType = eventTypes[_i];
96
- event = new Event(eventType, eventData, callback);
96
+ event = eventBus.createEvent(eventType, eventData, callback);
97
97
  _results.push(pushEventToSubscribers(eventBus, event));
98
98
  }
99
99
  return _results;
@@ -104,25 +104,24 @@
104
104
  };
105
105
 
106
106
  pushEventToSubscribers = function(eventBus, event) {
107
- var subscriber, _i, _len, _ref, _results;
108
- _ref = eventBus.subscribers;
107
+ var subscriber, subscribers, _i, _len, _ref, _results;
108
+ subscribers = (_ref = eventBus.subscribers[event.eventType]) != null ? _ref : [];
109
109
  _results = [];
110
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
111
- subscriber = _ref[_i];
112
- if (subscriber.eventType === event.eventType) {
113
- _results.push(event.push(subscriber));
114
- }
110
+ for (_i = 0, _len = subscribers.length; _i < _len; _i++) {
111
+ subscriber = subscribers[_i];
112
+ _results.push(event.push(subscriber));
115
113
  }
116
114
  return _results;
117
115
  };
118
116
 
119
117
  subscribeToEventType = function(eventBus, eventTypes, callback) {
120
- var eventType, subscriber, _i, _len, _results;
118
+ var eventType, subscriber, _i, _len, _ref, _results;
121
119
  _results = [];
122
120
  for (_i = 0, _len = eventTypes.length; _i < _len; _i++) {
123
121
  eventType = eventTypes[_i];
124
122
  subscriber = new Subscriber(eventType, callback);
125
- eventBus.subscribers.push(subscriber);
123
+ eventBus.subscribers[eventType] = (_ref = eventBus.subscribers[eventType]) != null ? _ref : [];
124
+ eventBus.subscribers[eventType].push(subscriber);
126
125
  _results.push(eventBus.publish("EventBus.subscribed", {
127
126
  subscriber: subscriber
128
127
  }));
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsbus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-07 00:00:00.000000000 Z
12
+ date: 2013-02-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties