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/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