pusher-client-nc 0.2.1
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.
- data/.document +5 -0
- data/Gemfile +12 -0
- data/Gemfile.lock +31 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +103 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/examples/subscribe.rb +31 -0
- data/examples/subscribe_async.rb +18 -0
- data/lib/pusher-client.rb +26 -0
- data/lib/pusher-client/channel.rb +53 -0
- data/lib/pusher-client/channels.rb +37 -0
- data/lib/pusher-client/socket.rb +202 -0
- data/lib/pusher-client/subscription.rb +54 -0
- data/lib/pusher-client/subscriptions.rb +46 -0
- data/lib/pusher-client/websocket.rb +62 -0
- data/pusher-client-nc.gemspec +85 -0
- data/pusher-client.gemspec +84 -0
- data/test/pusherclient_test.rb +246 -0
- data/test/test.watchr +63 -0
- data/test/teststrap.rb +69 -0
- metadata +194 -0
data/test/test.watchr
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
ENV["WATCHR"] = "1"
|
2
|
+
system 'clear'
|
3
|
+
puts "Watchr: Ready! :-)"
|
4
|
+
|
5
|
+
def notify_send(result)
|
6
|
+
#title = "Watchr Test Results"
|
7
|
+
if result.include?("FAILED") or result.include?("ERROR")
|
8
|
+
title = "FAIL"
|
9
|
+
image = "~/.autotest_images/fail.png"
|
10
|
+
message = "One or more tests have failed"
|
11
|
+
else
|
12
|
+
title = "PASS"
|
13
|
+
image = "~/.autotest_images/pass.png"
|
14
|
+
message = "All tests pass"
|
15
|
+
end
|
16
|
+
|
17
|
+
options = "-c Watchr --icon '#{File.expand_path(image)}' '#{title}' '#{message}' --urgency=critical"
|
18
|
+
system %(notify-send #{options} &)
|
19
|
+
end
|
20
|
+
|
21
|
+
def run(cmd)
|
22
|
+
puts(cmd)
|
23
|
+
`#{cmd}`
|
24
|
+
end
|
25
|
+
|
26
|
+
def run_all_tests
|
27
|
+
system('clear')
|
28
|
+
result = run "bacon test/*_test.rb"
|
29
|
+
notify_send result
|
30
|
+
puts result
|
31
|
+
end
|
32
|
+
|
33
|
+
def run_suite
|
34
|
+
run_all_tests
|
35
|
+
end
|
36
|
+
|
37
|
+
watch('test/teststrap\.rb') { run_all_tests }
|
38
|
+
watch('test/factories\.rb') { run_all_tests }
|
39
|
+
watch('test/.*_test.*\.rb') { run_all_tests }
|
40
|
+
watch('lib/*\.rb') { run_all_tests }
|
41
|
+
watch('lib/.*/*\.rb') { run_all_tests }
|
42
|
+
|
43
|
+
# Ctrl-\
|
44
|
+
Signal.trap 'QUIT' do
|
45
|
+
puts " --- Running all tests ---\n\n"
|
46
|
+
run_all_tests
|
47
|
+
end
|
48
|
+
|
49
|
+
@interrupted = false
|
50
|
+
|
51
|
+
# Ctrl-C
|
52
|
+
Signal.trap 'INT' do
|
53
|
+
if @interrupted then
|
54
|
+
@wants_to_quit = true
|
55
|
+
abort("\n")
|
56
|
+
else
|
57
|
+
puts "Interrupt a second time to quit"
|
58
|
+
@interrupted = true
|
59
|
+
Kernel.sleep 1.5
|
60
|
+
# raise Interrupt, nil # let the run loop catch it
|
61
|
+
run_suite
|
62
|
+
end
|
63
|
+
end
|
data/test/teststrap.rb
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
begin
|
4
|
+
Bundler.setup(:default, :development)
|
5
|
+
rescue Bundler::BundlerError => e
|
6
|
+
$stderr.puts e.message
|
7
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
+
exit e.status_code
|
9
|
+
end
|
10
|
+
require 'bacon'
|
11
|
+
|
12
|
+
require File.dirname(__FILE__) + '/../lib/pusher-client.rb'
|
13
|
+
|
14
|
+
TEST_APP_KEY = "TEST_APP_KEY"
|
15
|
+
|
16
|
+
module PusherClient
|
17
|
+
class TestLogger < Logger
|
18
|
+
attr_reader :test_messages
|
19
|
+
|
20
|
+
def initialize(logdev, shift_age = 0, shift_size = 1048576)
|
21
|
+
@test_messages = []
|
22
|
+
super
|
23
|
+
end
|
24
|
+
def test(msg)
|
25
|
+
@test_messages << msg
|
26
|
+
debug msg
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class Socket
|
31
|
+
# Simulate a connection being established
|
32
|
+
def connect(async = false)
|
33
|
+
@connection_thread = Thread.new do
|
34
|
+
@connection = TestConnection.new
|
35
|
+
@global_channel.dispatch('pusher:connection_established', {'socket_id' => '123abc'}.to_json)
|
36
|
+
end
|
37
|
+
@connection_thread.run
|
38
|
+
@connection_thread.join unless async
|
39
|
+
return self
|
40
|
+
end
|
41
|
+
|
42
|
+
def fake_auth_data
|
43
|
+
"1e24bg5e98066bd16f27:e677cb1e1282b4f789f6f8f67473cfe5c2a9c6eed6cef9d0cdc0238b301f10b10f"
|
44
|
+
end
|
45
|
+
|
46
|
+
def get_presence_auth(subscription)
|
47
|
+
return fake_auth_data
|
48
|
+
end
|
49
|
+
|
50
|
+
def get_private_auth(subscription)
|
51
|
+
return fake_auth_data
|
52
|
+
end
|
53
|
+
|
54
|
+
def simulate_received(event_name, event_data, channel_name)
|
55
|
+
send_local_event(event_name, event_data, channel_name)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class TestConnection
|
60
|
+
def send(payload)
|
61
|
+
PusherClient.logger.test("SEND: #{payload}")
|
62
|
+
end
|
63
|
+
|
64
|
+
def close
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
PusherClient.logger = TestLogger.new('test.log')
|
69
|
+
end
|
metadata
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pusher-client-nc
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Logan Koester, Neil Cauldwell
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-05-28 00:00:00 +01:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: libwebsocket
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 29
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
- 1
|
32
|
+
- 3
|
33
|
+
version: 0.1.3
|
34
|
+
requirement: *id001
|
35
|
+
prerelease: false
|
36
|
+
type: :runtime
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: json
|
39
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
hash: 3
|
45
|
+
segments:
|
46
|
+
- 0
|
47
|
+
version: "0"
|
48
|
+
requirement: *id002
|
49
|
+
prerelease: false
|
50
|
+
type: :development
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: ruby-hmac
|
53
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
requirement: *id003
|
63
|
+
prerelease: false
|
64
|
+
type: :development
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: bacon
|
67
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
hash: 3
|
73
|
+
segments:
|
74
|
+
- 0
|
75
|
+
version: "0"
|
76
|
+
requirement: *id004
|
77
|
+
prerelease: false
|
78
|
+
type: :development
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: bundler
|
81
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - ~>
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
hash: 23
|
87
|
+
segments:
|
88
|
+
- 1
|
89
|
+
- 0
|
90
|
+
- 0
|
91
|
+
version: 1.0.0
|
92
|
+
requirement: *id005
|
93
|
+
prerelease: false
|
94
|
+
type: :development
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: jeweler
|
97
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - ~>
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
hash: 7
|
103
|
+
segments:
|
104
|
+
- 1
|
105
|
+
- 5
|
106
|
+
- 2
|
107
|
+
version: 1.5.2
|
108
|
+
requirement: *id006
|
109
|
+
prerelease: false
|
110
|
+
type: :development
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rcov
|
113
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
hash: 3
|
119
|
+
segments:
|
120
|
+
- 0
|
121
|
+
version: "0"
|
122
|
+
requirement: *id007
|
123
|
+
prerelease: false
|
124
|
+
type: :development
|
125
|
+
description: Ruby client for consuming WebSockets from http://pusherapp.com
|
126
|
+
email: support@nur.ph
|
127
|
+
executables: []
|
128
|
+
|
129
|
+
extensions: []
|
130
|
+
|
131
|
+
extra_rdoc_files:
|
132
|
+
- LICENSE.txt
|
133
|
+
- README.rdoc
|
134
|
+
files:
|
135
|
+
- .document
|
136
|
+
- Gemfile
|
137
|
+
- Gemfile.lock
|
138
|
+
- LICENSE.txt
|
139
|
+
- README.rdoc
|
140
|
+
- Rakefile
|
141
|
+
- VERSION
|
142
|
+
- examples/subscribe.rb
|
143
|
+
- examples/subscribe_async.rb
|
144
|
+
- lib/pusher-client.rb
|
145
|
+
- lib/pusher-client/channel.rb
|
146
|
+
- lib/pusher-client/channels.rb
|
147
|
+
- lib/pusher-client/socket.rb
|
148
|
+
- lib/pusher-client/subscription.rb
|
149
|
+
- lib/pusher-client/subscriptions.rb
|
150
|
+
- lib/pusher-client/websocket.rb
|
151
|
+
- pusher-client-nc.gemspec
|
152
|
+
- pusher-client.gemspec
|
153
|
+
- test/pusherclient_test.rb
|
154
|
+
- test/test.watchr
|
155
|
+
- test/teststrap.rb
|
156
|
+
has_rdoc: true
|
157
|
+
homepage: http://github.com/logankoester/pusher-client
|
158
|
+
licenses:
|
159
|
+
- MIT
|
160
|
+
post_install_message:
|
161
|
+
rdoc_options: []
|
162
|
+
|
163
|
+
require_paths:
|
164
|
+
- lib
|
165
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
166
|
+
none: false
|
167
|
+
requirements:
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
hash: 3
|
171
|
+
segments:
|
172
|
+
- 0
|
173
|
+
version: "0"
|
174
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
|
+
none: false
|
176
|
+
requirements:
|
177
|
+
- - ">="
|
178
|
+
- !ruby/object:Gem::Version
|
179
|
+
hash: 3
|
180
|
+
segments:
|
181
|
+
- 0
|
182
|
+
version: "0"
|
183
|
+
requirements: []
|
184
|
+
|
185
|
+
rubyforge_project:
|
186
|
+
rubygems_version: 1.3.7
|
187
|
+
signing_key:
|
188
|
+
specification_version: 3
|
189
|
+
summary: Ruby client for consuming WebSockets from http://pusherapp.com
|
190
|
+
test_files:
|
191
|
+
- examples/subscribe.rb
|
192
|
+
- examples/subscribe_async.rb
|
193
|
+
- test/pusherclient_test.rb
|
194
|
+
- test/teststrap.rb
|