pusher-fake 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1a0baacfdc962376a761f7cae9a985206c7f342b
4
+ data.tar.gz: 3437e5854d08159a3bcb9ca3444330e359dfc973
5
+ SHA512:
6
+ metadata.gz: 87dd985dcb991ca210d6b8a6fa84f45b869fee5c4898cf4810f925fd71c1c45d02148928e1e3c5b1ceebef94deaf0959312b05fc5777366c4da1b0f7c649cda8
7
+ data.tar.gz: 91110daa9de7f58e8888672b6ac86fda72802083fc504d92dbb662900d9a97ac9b73087a8c47a265942da6923ee380b29acbebf185d5f6f31fbd8ee1c2a1c63e
@@ -19,10 +19,3 @@ Then "I should be connected" do
19
19
  state == "connected"
20
20
  end
21
21
  end
22
-
23
- Then "I should not be connected" do
24
- timeout_after(5) do
25
- state = page.evaluate_script("Pusher.instance.connection.state")
26
- state == "unavailable"
27
- end
28
- end
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Pusher JavaScript Library v2.0.4
2
+ * Pusher JavaScript Library v2.0.5
3
3
  * http://pusherapp.com/
4
4
  *
5
5
  * Copyright 2013, Pusher
@@ -28,7 +28,7 @@
28
28
  return new Pusher.Timeline(self.key, self.sessionID, {
29
29
  features: Pusher.Util.getClientFeatures(),
30
30
  params: self.options.timelineParams || {},
31
- limit: 25,
31
+ limit: 50,
32
32
  level: Pusher.Timeline.INFO,
33
33
  version: Pusher.VERSION
34
34
  });
@@ -99,13 +99,16 @@
99
99
  };
100
100
 
101
101
  Pusher.warn = function() {
102
- if (window.console && window.console.warn) {
103
- window.console.warn(Pusher.Util.stringify.apply(this, arguments));
104
- } else {
105
- if (!Pusher.log) {
106
- return;
102
+ var message = Pusher.Util.stringify.apply(this, arguments);
103
+ if (window.console) {
104
+ if (window.console.warn) {
105
+ window.console.warn(message);
106
+ } else if (window.console.log) {
107
+ window.console.log(message);
107
108
  }
108
- Pusher.log(Pusher.Util.stringify.apply(this, arguments));
109
+ }
110
+ if (Pusher.log) {
111
+ Pusher.log(message);
109
112
  }
110
113
  };
111
114
 
@@ -500,7 +503,7 @@
500
503
  }).call(this);
501
504
 
502
505
  ;(function() {
503
- Pusher.VERSION = '2.0.4';
506
+ Pusher.VERSION = '2.0.5';
504
507
  Pusher.PROTOCOL = 6;
505
508
 
506
509
  // WS connection parameters
@@ -1328,7 +1331,11 @@
1328
1331
  function flushTransportInfo() {
1329
1332
  var storage = Pusher.Util.getLocalStorage();
1330
1333
  if (storage && storage.pusherTransport) {
1331
- delete storage.pusherTransport;
1334
+ try {
1335
+ delete storage.pusherTransport;
1336
+ } catch(e) {
1337
+ storage.pusherTransport = undefined;
1338
+ }
1332
1339
  }
1333
1340
  }
1334
1341
 
@@ -1600,13 +1607,14 @@
1600
1607
  var transport = this.transport.createConnection(
1601
1608
  this.name, this.priority, this.options.key, this.options
1602
1609
  );
1610
+ var handshake = null;
1603
1611
 
1604
1612
  var onInitialized = function() {
1605
1613
  transport.unbind("initialized", onInitialized);
1606
1614
  transport.connect();
1607
1615
  };
1608
1616
  var onOpen = function() {
1609
- var handshake = new Pusher.Handshake(transport, function(result) {
1617
+ handshake = new Pusher.Handshake(transport, function(result) {
1610
1618
  connected = true;
1611
1619
  unbindListeners();
1612
1620
  callback(null, result);
@@ -1642,15 +1650,22 @@
1642
1650
  return;
1643
1651
  }
1644
1652
  unbindListeners();
1645
- transport.close();
1653
+ if (handshake) {
1654
+ handshake.close();
1655
+ } else {
1656
+ transport.close();
1657
+ }
1646
1658
  },
1647
1659
  forceMinPriority: function(p) {
1648
1660
  if (connected) {
1649
1661
  return;
1650
1662
  }
1651
1663
  if (self.priority < p) {
1652
- // TODO close transport in a nicer way
1653
- transport.close();
1664
+ if (handshake) {
1665
+ handshake.close();
1666
+ } else {
1667
+ transport.close();
1668
+ }
1654
1669
  }
1655
1670
  }
1656
1671
  };
@@ -2606,6 +2621,7 @@
2606
2621
  if (channel) {
2607
2622
  message.channel = channel;
2608
2623
  }
2624
+ Pusher.debug('Event sent', message);
2609
2625
  return this.send(Pusher.Protocol.encodeMessage(message));
2610
2626
  };
2611
2627
 
@@ -2716,17 +2732,18 @@
2716
2732
  }
2717
2733
  var prototype = Handshake.prototype;
2718
2734
 
2735
+ prototype.close = function() {
2736
+ this.unbindListeners();
2737
+ this.transport.close();
2738
+ };
2739
+
2719
2740
  /** @private */
2720
2741
  prototype.bindListeners = function() {
2721
2742
  var self = this;
2722
2743
 
2723
- var unbindListeners = function() {
2724
- self.transport.unbind("message", onMessage);
2725
- self.transport.unbind("closed", onClosed);
2726
- };
2744
+ self.onMessage = function(m) {
2745
+ self.unbindListeners();
2727
2746
 
2728
- var onMessage = function(m) {
2729
- unbindListeners();
2730
2747
  try {
2731
2748
  var result = Pusher.Protocol.processHandshake(m);
2732
2749
  if (result.action === "connected") {
@@ -2742,16 +2759,23 @@
2742
2759
  self.transport.close();
2743
2760
  }
2744
2761
  };
2745
- var onClosed = function(closeEvent) {
2746
- unbindListeners();
2762
+
2763
+ self.onClosed = function(closeEvent) {
2764
+ self.unbindListeners();
2747
2765
 
2748
2766
  var action = Pusher.Protocol.getCloseAction(closeEvent) || "backoff";
2749
2767
  var error = Pusher.Protocol.getCloseError(closeEvent);
2750
2768
  self.finish(action, { error: error });
2751
2769
  };
2752
2770
 
2753
- self.transport.bind("message", onMessage);
2754
- self.transport.bind("closed", onClosed);
2771
+ self.transport.bind("message", self.onMessage);
2772
+ self.transport.bind("closed", self.onClosed);
2773
+ };
2774
+
2775
+ /** @private */
2776
+ prototype.unbindListeners = function() {
2777
+ this.transport.unbind("message", this.onMessage);
2778
+ this.transport.unbind("closed", this.onClosed);
2755
2779
  };
2756
2780
 
2757
2781
  /** @private */
@@ -2807,11 +2831,13 @@
2807
2831
  var self = this;
2808
2832
 
2809
2833
  Pusher.Network.bind("online", function() {
2834
+ self.timeline.info({ netinfo: "online" });
2810
2835
  if (self.state === "unavailable") {
2811
2836
  self.connect();
2812
2837
  }
2813
2838
  });
2814
2839
  Pusher.Network.bind("offline", function() {
2840
+ self.timeline.info({ netinfo: "offline" });
2815
2841
  if (self.shouldRetry()) {
2816
2842
  self.disconnect();
2817
2843
  self.updateState("unavailable");
@@ -2932,7 +2958,8 @@
2932
2958
  /** @private */
2933
2959
  prototype.retryIn = function(delay) {
2934
2960
  var self = this;
2935
- this.retryTimer = new Pusher.Timer(delay || 0, function() {
2961
+ self.timeline.info({ action: "retry", delay: delay });
2962
+ self.retryTimer = new Pusher.Timer(delay || 0, function() {
2936
2963
  self.disconnect();
2937
2964
  self.connect();
2938
2965
  });
@@ -3036,21 +3063,31 @@
3036
3063
  /** @private */
3037
3064
  prototype.buildErrorCallbacks = function() {
3038
3065
  var self = this;
3066
+
3067
+ function withErrorEmitted(callback) {
3068
+ return function(result) {
3069
+ if (result.error) {
3070
+ self.emit("error", { type: "WebSocketError", error: result.error });
3071
+ }
3072
+ callback(result);
3073
+ };
3074
+ }
3075
+
3039
3076
  return {
3040
- ssl_only: function() {
3077
+ ssl_only: withErrorEmitted(function() {
3041
3078
  self.encrypted = true;
3042
3079
  self.updateStrategy();
3043
3080
  self.retryIn(0);
3044
- },
3045
- refused: function() {
3081
+ }),
3082
+ refused: withErrorEmitted(function() {
3046
3083
  self.disconnect();
3047
- },
3048
- backoff: function() {
3084
+ }),
3085
+ backoff: withErrorEmitted(function() {
3049
3086
  self.retryIn(1000);
3050
- },
3051
- retry: function() {
3087
+ }),
3088
+ retry: withErrorEmitted(function() {
3052
3089
  self.retryIn(0);
3053
- }
3090
+ })
3054
3091
  };
3055
3092
  };
3056
3093
 
@@ -3083,6 +3120,7 @@
3083
3120
  if (previousState !== newState) {
3084
3121
  Pusher.debug('State changed', previousState + ' -> ' + newState);
3085
3122
 
3123
+ this.timeline.info({ state: newState });
3086
3124
  this.emit('state_change', { previous: previousState, current: newState });
3087
3125
  this.emit(newState, data);
3088
3126
  }
@@ -3328,8 +3366,8 @@
3328
3366
 
3329
3367
  Pusher.Channel.Authorizer.prototype = {
3330
3368
  composeQuery: function(socketId) {
3331
- var query = '&socket_id=' + encodeURIComponent(socketId)
3332
- + '&channel_name=' + encodeURIComponent(this.channel.name);
3369
+ var query = '&socket_id=' + encodeURIComponent(socketId) +
3370
+ '&channel_name=' + encodeURIComponent(this.channel.name);
3333
3371
 
3334
3372
  for(var i in this.authOptions.params) {
3335
3373
  query += "&" + encodeURIComponent(i) + "=" + encodeURIComponent(this.authOptions.params[i]);
@@ -3343,6 +3381,7 @@
3343
3381
  }
3344
3382
  };
3345
3383
 
3384
+ var nextAuthCallbackID = 1;
3346
3385
 
3347
3386
  Pusher.auth_callbacks = {};
3348
3387
  Pusher.authorizers = {
@@ -3358,7 +3397,7 @@
3358
3397
  xhr.open("POST", Pusher.channel_auth_endpoint, true);
3359
3398
 
3360
3399
  // add request headers
3361
- xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
3400
+ xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
3362
3401
  for(var headerName in this.authOptions.headers) {
3363
3402
  xhr.setRequestHeader(headerName, this.authOptions.headers[headerName]);
3364
3403
  }
@@ -3394,17 +3433,20 @@
3394
3433
  Pusher.warn("Warn", "To send headers with the auth request, you must use AJAX, rather than JSONP.");
3395
3434
  }
3396
3435
 
3436
+ var callbackName = nextAuthCallbackID.toString();
3437
+ nextAuthCallbackID++;
3438
+
3397
3439
  var script = document.createElement("script");
3398
3440
  // Hacked wrapper.
3399
- Pusher.auth_callbacks[this.channel.name] = function(data) {
3441
+ Pusher.auth_callbacks[callbackName] = function(data) {
3400
3442
  callback(false, data);
3401
3443
  };
3402
3444
 
3403
- var callback_name = "Pusher.auth_callbacks['" + this.channel.name + "']";
3404
- script.src = Pusher.channel_auth_endpoint
3405
- + '?callback='
3406
- + encodeURIComponent(callback_name)
3407
- + this.composeQuery(socketId);
3445
+ var callback_name = "Pusher.auth_callbacks['" + callbackName + "']";
3446
+ script.src = Pusher.channel_auth_endpoint +
3447
+ '?callback=' +
3448
+ encodeURIComponent(callback_name) +
3449
+ this.composeQuery(socketId);
3408
3450
 
3409
3451
  var head = document.getElementsByTagName("head")[0] || document.documentElement;
3410
3452
  head.insertBefore( script, head.firstChild );
@@ -13,7 +13,7 @@
13
13
  <ul></ul>
14
14
  </section>
15
15
 
16
- <script src="/javascripts/vendor/pusher-2.0.4.js"></script>
16
+ <script src="/javascripts/vendor/pusher-2.0.5.js"></script>
17
17
  <script>
18
18
  window.addEventListener("DOMContentLoaded", function() {
19
19
  // Use the PusherFake server.
@@ -0,0 +1,3 @@
1
+ require "coveralls"
2
+
3
+ Coveralls.wear_merged!
data/lib/pusher-fake.rb CHANGED
@@ -16,7 +16,7 @@ require "pusher-fake/webhook"
16
16
 
17
17
  module PusherFake
18
18
  # The current version string.
19
- VERSION = "0.8.0"
19
+ VERSION = "0.9.0"
20
20
 
21
21
  # Call this method to modify the defaults.
22
22
  #
@@ -0,0 +1,3 @@
1
+ require "coveralls"
2
+
3
+ Coveralls.wear_merged!
metadata CHANGED
@@ -1,84 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pusher-fake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
5
- prerelease:
4
+ version: 0.9.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tristan Dunn
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-12 00:00:00.000000000 Z
11
+ date: 2013-06-11 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: em-http-request
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - '='
17
+ - - ~>
20
18
  - !ruby/object:Gem::Version
21
- version: 1.0.3
19
+ version: '1.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - '='
24
+ - - ~>
28
25
  - !ruby/object:Gem::Version
29
- version: 1.0.3
26
+ version: '1.0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: em-websocket
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - '='
31
+ - - ~>
36
32
  - !ruby/object:Gem::Version
37
- version: 0.5.0
33
+ version: '0.5'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - '='
38
+ - - ~>
44
39
  - !ruby/object:Gem::Version
45
- version: 0.5.0
40
+ version: '0.5'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: thin
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - '='
45
+ - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: 1.5.1
47
+ version: '1.5'
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - '='
52
+ - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: 1.5.1
54
+ version: '1.5'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: multi_json
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - '='
59
+ - - ~>
68
60
  - !ruby/object:Gem::Version
69
- version: 1.7.3
61
+ version: '1.6'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - '='
66
+ - - ~>
76
67
  - !ruby/object:Gem::Version
77
- version: 1.7.3
68
+ version: '1.6'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: bourne
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - '='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - '='
92
81
  - !ruby/object:Gem::Version
@@ -94,39 +83,48 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: capybara-webkit
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - '='
100
88
  - !ruby/object:Gem::Version
101
- version: 0.14.2
89
+ version: 1.0.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 0.6.7
102
104
  type: :development
103
105
  prerelease: false
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
107
  requirements:
107
108
  - - '='
108
109
  - !ruby/object:Gem::Version
109
- version: 0.14.2
110
+ version: 0.6.7
110
111
  - !ruby/object:Gem::Dependency
111
112
  name: cucumber
112
113
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 1.3.1
117
+ version: 1.3.2
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
121
  requirements:
123
122
  - - '='
124
123
  - !ruby/object:Gem::Version
125
- version: 1.3.1
124
+ version: 1.3.2
126
125
  - !ruby/object:Gem::Dependency
127
126
  name: pusher
128
127
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
128
  requirements:
131
129
  - - '='
132
130
  - !ruby/object:Gem::Version
@@ -134,7 +132,6 @@ dependencies:
134
132
  type: :development
135
133
  prerelease: false
136
134
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
135
  requirements:
139
136
  - - '='
140
137
  - !ruby/object:Gem::Version
@@ -142,7 +139,6 @@ dependencies:
142
139
  - !ruby/object:Gem::Dependency
143
140
  name: rake
144
141
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
142
  requirements:
147
143
  - - '='
148
144
  - !ruby/object:Gem::Version
@@ -150,7 +146,6 @@ dependencies:
150
146
  type: :development
151
147
  prerelease: false
152
148
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
149
  requirements:
155
150
  - - '='
156
151
  - !ruby/object:Gem::Version
@@ -158,23 +153,20 @@ dependencies:
158
153
  - !ruby/object:Gem::Dependency
159
154
  name: redcarpet
160
155
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
156
  requirements:
163
157
  - - '='
164
158
  - !ruby/object:Gem::Version
165
- version: 2.2.2
159
+ version: 2.3.0
166
160
  type: :development
167
161
  prerelease: false
168
162
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
163
  requirements:
171
164
  - - '='
172
165
  - !ruby/object:Gem::Version
173
- version: 2.2.2
166
+ version: 2.3.0
174
167
  - !ruby/object:Gem::Dependency
175
168
  name: rspec
176
169
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
170
  requirements:
179
171
  - - '='
180
172
  - !ruby/object:Gem::Version
@@ -182,7 +174,6 @@ dependencies:
182
174
  type: :development
183
175
  prerelease: false
184
176
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
177
  requirements:
187
178
  - - '='
188
179
  - !ruby/object:Gem::Version
@@ -190,23 +181,20 @@ dependencies:
190
181
  - !ruby/object:Gem::Dependency
191
182
  name: sinatra
192
183
  requirement: !ruby/object:Gem::Requirement
193
- none: false
194
184
  requirements:
195
185
  - - '='
196
186
  - !ruby/object:Gem::Version
197
- version: 1.4.2
187
+ version: 1.4.3
198
188
  type: :development
199
189
  prerelease: false
200
190
  version_requirements: !ruby/object:Gem::Requirement
201
- none: false
202
191
  requirements:
203
192
  - - '='
204
193
  - !ruby/object:Gem::Version
205
- version: 1.4.2
194
+ version: 1.4.3
206
195
  - !ruby/object:Gem::Dependency
207
196
  name: yard
208
197
  requirement: !ruby/object:Gem::Requirement
209
- none: false
210
198
  requirements:
211
199
  - - '='
212
200
  - !ruby/object:Gem::Version
@@ -214,7 +202,6 @@ dependencies:
214
202
  type: :development
215
203
  prerelease: false
216
204
  version_requirements: !ruby/object:Gem::Requirement
217
- none: false
218
205
  requirements:
219
206
  - - '='
220
207
  - !ruby/object:Gem::Version
@@ -249,9 +236,10 @@ files:
249
236
  - features/step_definitions/navigation_steps.rb
250
237
  - features/step_definitions/presence_steps.rb
251
238
  - features/step_definitions/webhook_steps.rb
252
- - features/support/application/public/javascripts/vendor/pusher-2.0.4.js
239
+ - features/support/application/public/javascripts/vendor/pusher-2.0.5.js
253
240
  - features/support/application/views/index.erb
254
241
  - features/support/application.rb
242
+ - features/support/coveralls.rb
255
243
  - features/support/environment.rb
256
244
  - features/support/pusher-fake.rb
257
245
  - features/support/timing.rb
@@ -268,37 +256,31 @@ files:
268
256
  - spec/lib/pusher-fake/webhook_spec.rb
269
257
  - spec/lib/pusher_fake_spec.rb
270
258
  - spec/spec_helper.rb
259
+ - spec/support/coveralls.rb
271
260
  - spec/support/have_configuration_option_matcher.rb
272
261
  homepage: https://github.com/tristandunn/pusher-fake
273
262
  licenses:
274
263
  - MIT
264
+ metadata: {}
275
265
  post_install_message:
276
266
  rdoc_options: []
277
267
  require_paths:
278
268
  - lib
279
269
  required_ruby_version: !ruby/object:Gem::Requirement
280
- none: false
281
270
  requirements:
282
- - - ! '>='
271
+ - - '>='
283
272
  - !ruby/object:Gem::Version
284
273
  version: '0'
285
- segments:
286
- - 0
287
- hash: -4438089056312273430
288
274
  required_rubygems_version: !ruby/object:Gem::Requirement
289
- none: false
290
275
  requirements:
291
- - - ! '>='
276
+ - - '>='
292
277
  - !ruby/object:Gem::Version
293
278
  version: '0'
294
- segments:
295
- - 0
296
- hash: -4438089056312273430
297
279
  requirements: []
298
280
  rubyforge_project:
299
- rubygems_version: 1.8.23
281
+ rubygems_version: 2.0.2
300
282
  signing_key:
301
- specification_version: 3
283
+ specification_version: 4
302
284
  summary: A fake Pusher server for development and testing.
303
285
  test_files:
304
286
  - features/channel.feature
@@ -314,9 +296,10 @@ test_files:
314
296
  - features/step_definitions/navigation_steps.rb
315
297
  - features/step_definitions/presence_steps.rb
316
298
  - features/step_definitions/webhook_steps.rb
317
- - features/support/application/public/javascripts/vendor/pusher-2.0.4.js
299
+ - features/support/application/public/javascripts/vendor/pusher-2.0.5.js
318
300
  - features/support/application/views/index.erb
319
301
  - features/support/application.rb
302
+ - features/support/coveralls.rb
320
303
  - features/support/environment.rb
321
304
  - features/support/pusher-fake.rb
322
305
  - features/support/timing.rb
@@ -333,5 +316,6 @@ test_files:
333
316
  - spec/lib/pusher-fake/webhook_spec.rb
334
317
  - spec/lib/pusher_fake_spec.rb
335
318
  - spec/spec_helper.rb
319
+ - spec/support/coveralls.rb
336
320
  - spec/support/have_configuration_option_matcher.rb
337
321
  has_rdoc: