pusher-client-nc 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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