statscloud.io-ruby-socket.io-client-simple 1.2.1.pre.2

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
+ SHA256:
3
+ metadata.gz: 4f454e59ca54831fe5027cfab76698df7093e04dc30209c0ec995ce14054e995
4
+ data.tar.gz: 727ae5656df991443b67d1004e5a73296b1dc4e4bad74bd526116b99ab6310c1
5
+ SHA512:
6
+ metadata.gz: 096b1ef313266d8c01504e5cf8a23e2c16ee6a28bc1f4661b6d6f44a5cccf74aa3b027d74ed355c6ddcc9212354ccf42c9944ca48b29ee33d214a42df212b4a6
7
+ data.tar.gz: 6e882a7c8a8ad18b7f47e8a29ebb033d4bf8f878dc441035d1d966eff90d475b02966e9ed943c5caf1b7cfafe99fcfa90792d3c726547877e4bd34ca70fbc914
data/.gitignore ADDED
@@ -0,0 +1,23 @@
1
+ *~
2
+ *#*
3
+ .DS_Store
4
+ *.gem
5
+ *.rbc
6
+ .bundle
7
+ .config
8
+ .yardoc
9
+ InstalledFiles
10
+ _yardoc
11
+ coverage
12
+ doc/
13
+ lib/bundler/man
14
+ pkg
15
+ rdoc
16
+ spec/reports
17
+ test/tmp
18
+ test/version_tmp
19
+ tmp
20
+ node_modules
21
+ *.log
22
+ vendor
23
+ .idea/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in statscloud.io-ruby-statscloud.io-ruby-socket.io-client-simple.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,35 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ statscloud.io-ruby-socket.io-client-simple (1.2.1.pre.1)
5
+ event_emitter
6
+ httparty
7
+ json
8
+ websocket-client-simple (~> 0.3.0)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ event_emitter (0.2.6)
14
+ httparty (0.16.2)
15
+ multi_xml (>= 0.5.2)
16
+ json (2.1.0)
17
+ minitest (5.8.4)
18
+ multi_xml (0.6.0)
19
+ rake (10.5.0)
20
+ websocket (1.2.8)
21
+ websocket-client-simple (0.3.0)
22
+ event_emitter
23
+ websocket
24
+
25
+ PLATFORMS
26
+ ruby
27
+
28
+ DEPENDENCIES
29
+ bundler (~> 1.3)
30
+ minitest
31
+ rake
32
+ statscloud.io-ruby-socket.io-client-simple!
33
+
34
+ BUNDLED WITH
35
+ 1.16.3
data/History.txt ADDED
@@ -0,0 +1,62 @@
1
+ === 1.2.1-1 2018-10-27
2
+
3
+ * implement namespaces (statscloud) v1.2.1-1
4
+ * implement simple binary support (statscloud) v1.2.1-1
5
+
6
+ === 1.2.1 2016-02-21
7
+
8
+ * update websocket-client-simple v0.3.x
9
+ * update socket.io 1.4.x
10
+
11
+ === 1.2.0 2016-02-19
12
+
13
+ * add "disconnect" method #16
14
+ * thank you for contributing @julianbei
15
+
16
+ === 1.1.3 2015-02-03
17
+
18
+ * update for socket.io 1.3.x
19
+
20
+ === 1.1.2 2014-10-20
21
+
22
+ * bugfix reconnection on websocket proxy #9
23
+ * fix samples
24
+ * bundle update, use websocket-client-simple v0.2.1 #9
25
+ * bugfix encoding handshake query parameter #5
26
+
27
+ === 1.1.0 2014-10-04
28
+
29
+ * support Socket.IO v1.1x
30
+
31
+ === 1.0.0 2014-07-03
32
+
33
+ * support Socket.IO v1.0.x #4
34
+ * add parameter Client#auto_reconnection to disable auto-reconneciton
35
+
36
+ === 0.0.6 2014-06-08
37
+
38
+ * use 2nd argment of method "SocketIO::Client::Simple.connect" as handshake query parameter #5
39
+ * thank you for contributing @mallowlabs
40
+
41
+ === 0.0.5 2014-04-03
42
+
43
+ * emit "error" event
44
+ * rescue only Errno::ECONNREFUSED
45
+
46
+ === 0.0.4 2014-01-20
47
+
48
+ * add accessor Client#url
49
+
50
+ === 0.0.3 2014-01-20
51
+
52
+ * reconnect on socket.io disconnect
53
+ * add Tests, use Travis-CI
54
+
55
+ === 0.0.2 2014-01-18
56
+
57
+ * bugfix "disconnect" event
58
+
59
+ === 0.0.1 2014-01-15
60
+
61
+ * first release
62
+ * implemented "emit" and "on"
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Sho Hashimoto
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # statscloud.io-ruby-socket.io-client-simple
2
+
3
+ A simple ruby client for Node.js's Socket.IO v1.4.x, Supports only WebSocket.
4
+
5
+ v 1.2.1-1 Implement namespaces and simple binary support.
6
+
7
+ - https://gitlab.com/agiliumlabs/statscloud.io-ruby-socket.io-client-simple
8
+
9
+
10
+ ## Install
11
+
12
+ gem install
13
+
14
+ % gem install statscloud.io-ruby-socket.io-client-simple
15
+
16
+
17
+ or use `Gemfile` with Bundler
18
+
19
+ gem 'statscloud.io-ruby-socket.io-client-simple'
20
+
21
+
22
+ ## Usage
23
+
24
+ ```ruby
25
+ require 'rubygems'
26
+ require 'statscloud.io-ruby-socket.io-client-simple'
27
+
28
+ def client
29
+ StatsCloudIO::SocketIO::Client::Simple
30
+ end
31
+
32
+ def configure
33
+ url = ARGV.shift || 'http://localhost:3000'
34
+ socket = client.connect url
35
+
36
+ socket.on :connect do
37
+ puts "connect!!!"
38
+ end
39
+
40
+ socket.on :disconnect do
41
+ puts "disconnected!!"
42
+ end
43
+
44
+ socket.on :error do |err|
45
+ p err
46
+ end
47
+ end
48
+
49
+ def send_data(chat, data)
50
+ socket.emit chat, data
51
+ end
52
+
53
+ def send_binary_data(chat, data)
54
+ socket.emit chat, client.as_byte_buffer(data)
55
+ end
56
+
57
+ ```
58
+
59
+ ## Test
60
+
61
+ % gem install bundler
62
+ % bundle install
63
+ % npm install
64
+ % bundle exec rake test
65
+
66
+
67
+ ## Contributing
68
+
69
+ 1. Fork it
70
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
71
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
72
+ 4. Push to the branch (`git push origin my-new-feature`)
73
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.pattern = "test/test_*.rb"
6
+ end
7
+
8
+ task :default => :test
@@ -0,0 +1,21 @@
1
+ module StatsCloudIO
2
+ module SocketIO
3
+ module Client
4
+ module Simple
5
+
6
+ def self.as_byte_buffer(data)
7
+ ByteBuffer.new(data)
8
+ end
9
+
10
+ class ByteBuffer
11
+ attr_accessor :buffer
12
+
13
+ def initialize(byte_array)
14
+ return unless byte_array.is_a?(Array)
15
+ @buffer = byte_array.unshift(4).pack('C*')
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,159 @@
1
+ module StatsCloudIO
2
+ module SocketIO
3
+ module Client
4
+ module Simple
5
+
6
+ def self.connect(url, opts={})
7
+ client = Client.new(url, opts)
8
+ client.connect
9
+ return client
10
+ end
11
+
12
+ class Client
13
+ include EventEmitter
14
+ alias_method :__emit, :emit
15
+
16
+ attr_accessor :auto_reconnection, :websocket, :url, :reconnecting, :state,
17
+ :session_id, :ping_interval, :ping_timeout, :last_pong_at, :last_ping_at
18
+
19
+ def initialize(url, opts={})
20
+ @url = url
21
+ @opts = opts
22
+ @opts[:transport] = :websocket
23
+ @path = @opts.delete(:path) || "/socket.io"
24
+ @reconnecting = false
25
+ @state = :disconnect
26
+ @auto_reconnection = true
27
+
28
+ Thread.new do
29
+ loop do
30
+ if @websocket
31
+ if @state == :connect
32
+ if Time.now.to_i - @last_ping_at > @ping_interval/1000
33
+ @websocket.send "2" ## ping
34
+ @last_ping_at = Time.now.to_i
35
+ end
36
+ end
37
+ if @websocket.open? && Time.now.to_i - @last_pong_at > @ping_timeout/100
38
+ @websocket.close
39
+ @state = :disconnect
40
+ __emit :disconnect
41
+ reconnect
42
+ end
43
+ end
44
+ sleep 1
45
+ end
46
+ end
47
+
48
+ end
49
+
50
+
51
+ def connect
52
+ query = @opts.map{|k,v| URI.encode "#{k}=#{v}" }.join '&'
53
+ begin
54
+ @websocket = WebSocket::Client::Simple.connect "#{@url}#{@path}/?#{query}"
55
+ rescue Errno::ECONNREFUSED => e
56
+ @state = :disconnect
57
+ @reconnecting = false
58
+ reconnect
59
+ return
60
+ end
61
+ @reconnecting = false
62
+
63
+ this = self
64
+
65
+ @websocket.on :error do |err|
66
+ if err.kind_of? Errno::ECONNRESET and this.state == :connect
67
+ this.state = :disconnect
68
+ this.__emit :disconnect
69
+ this.reconnect
70
+ next
71
+ end
72
+ this.__emit :error, err
73
+ end
74
+
75
+ @websocket.on :message do |msg|
76
+ next unless msg.data =~ /^\d+/
77
+ code, body = msg.data.scan(/^(\d+)(.*)$/)[0]
78
+ code = code.to_i
79
+ case code
80
+ when 0 ## socket.io connect
81
+ body = JSON.parse body rescue next
82
+ this.session_id = body["sid"] || "no_sid"
83
+ this.ping_interval = body["pingInterval"] || 25000
84
+ this.ping_timeout = body["pingTimeout"] || 60000
85
+ this.last_ping_at = Time.now.to_i
86
+ this.last_pong_at = Time.now.to_i
87
+ this.state = :connect
88
+ this.__emit :connect
89
+ when 3 ## pong
90
+ this.last_pong_at = Time.now.to_i
91
+ when 41 ## disconnect from server
92
+ this.websocket.close if this.websocket.open?
93
+ this.state = :disconnect
94
+ this.__emit :disconnect
95
+ reconnect
96
+ when 42 ## data
97
+ data = JSON.parse body rescue next
98
+ event_name = data.shift
99
+ this.__emit event_name, *data
100
+ end
101
+ end
102
+
103
+ return self
104
+ end
105
+
106
+ def reconnect
107
+ return unless @auto_reconnection
108
+ return if @reconnecting
109
+ @reconnecting = true
110
+ sleep rand(5) + 5
111
+ connect
112
+ end
113
+
114
+ def open?
115
+ @websocket and @websocket.open?
116
+ end
117
+
118
+ def emit(event_name, *data)
119
+ return unless open?
120
+ return unless @state == :connect
121
+ data.each do |packet|
122
+ is_binary?(packet) ? send_binary(event_name, packet) : send_data(event_name, packet)
123
+ end
124
+ end
125
+
126
+ def disconnect
127
+ @auto_reconnection = false
128
+ @websocket.close
129
+ @state = :disconnect
130
+ end
131
+
132
+ private
133
+
134
+ def is_binary?(packet)
135
+ packet.is_a?(SocketIO::Client::Simple::ByteBuffer)
136
+ end
137
+
138
+ def send_data(event_name, *data)
139
+ data.unshift event_name
140
+ @websocket.send "42#{data.to_json}"
141
+ end
142
+
143
+ def send_binary(event_name, packet)
144
+ header = binary_header.unshift event_name
145
+ @websocket.send "451-#{header.to_json}"
146
+ @websocket.send packet.buffer, type: :binary
147
+ end
148
+
149
+ def binary_header
150
+ [{
151
+ _placeholder: true,
152
+ num: 0
153
+ }]
154
+ end
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
@@ -0,0 +1,12 @@
1
+ module StatsCloudIO
2
+ module SocketIO
3
+ module Client
4
+ module Simple
5
+
6
+ class Error < StandardError
7
+ end
8
+
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,9 @@
1
+ module StatsCloudIO
2
+ module SocketIO
3
+ module Client
4
+ module Simple
5
+ VERSION = "1.2.1-2"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,19 @@
1
+ require 'uri'
2
+ require 'json'
3
+ require 'httparty'
4
+ require 'websocket-client-simple'
5
+ require 'event_emitter'
6
+
7
+ require 'statscloud.io-ruby-socket.io-client-simple/version'
8
+ require 'statscloud.io-ruby-socket.io-client-simple/error'
9
+ require 'statscloud.io-ruby-socket.io-client-simple/client'
10
+ require 'statscloud.io-ruby-socket.io-client-simple/byte_buffer'
11
+
12
+ module StatsCloudIO
13
+ module SocketIO
14
+ module Client
15
+ module Simple
16
+ end
17
+ end
18
+ end
19
+ end
data/package.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "statscloud.io-ruby-socket.io-client-simple/version",
3
+ "description": "A simple ruby client for node.js's socket.io. Supports only WebSocket.",
4
+ "private": true,
5
+ "author": "Sho Hashimoto <hashimoto@shokai.org>",
6
+ "license": "MIT",
7
+ "homepage": "https://gitlab.com/agiliumlabs/statscloud.io-ruby-socket.io-client-simple",
8
+ "dependencies": {
9
+ "socket.io": "^1.4",
10
+ "socket.io-client": "^1.4",
11
+ "coffee-script": "^1.10"
12
+ },
13
+ "devDependencies": {},
14
+ "scripts": {
15
+ "start": "coffee samples/chat_server.coffee"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git@gitlab.com:agiliumlabs/statscloud.io-ruby-socket.io-client-simple.git"
20
+ },
21
+ "bugs": {
22
+ "url": "https://gitlab.com/agiliumlabs/statscloud.io-ruby-socket.io-client-simple"
23
+ }
24
+ }
@@ -0,0 +1,19 @@
1
+ ## socket.io chat server
2
+
3
+ process.env.PORT ||= 3000;
4
+
5
+ io = require('socket.io').listen process.env.PORT
6
+ console.log "socket.io server start - port: #{process.env.PORT}"
7
+
8
+ io.sockets.on 'connection', (socket) ->
9
+ user = socket.handshake.query.user
10
+ socket.emit 'chat', {msg: 'hello world (from server)'}
11
+ socket.on 'chat', (data) ->
12
+ console.log data
13
+ data.user = user
14
+ io.sockets.emit 'chat', data; # broadcast echo
15
+
16
+ if process.env.EXIT_AT
17
+ setTimeout ->
18
+ process.exit();
19
+ , process.env.EXIT_AT-0
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env coffee
2
+ ## npm insatll socket.io-client coffee-script
3
+
4
+ url = process.argv[2] or 'http://localhost:3000'
5
+ socket = require('socket.io-client').connect url, {transports: ['websocket']}
6
+
7
+ socket.on 'connect', ->
8
+ console.log 'connect!!'
9
+
10
+ socket.on 'disconnect', ->
11
+ console.log 'disconnected'
12
+
13
+ socket.on 'chat', (data) ->
14
+ console.log "> " + data.msg
15
+
16
+ process.stdin.setEncoding 'utf8'
17
+ process.stdin.on 'data', (data) ->
18
+ msg = data.replace(/[\r\n]/g, '')
19
+ return if msg.length < 1
20
+ socket.emit 'chat', {msg: msg, at: Date.now()}
data/samples/sample.rb ADDED
@@ -0,0 +1,35 @@
1
+ $:.unshift File.expand_path '../lib', File.dirname(__FILE__)
2
+ require 'rubygems'
3
+ require 'statscloud.io-ruby-socket.io-client-simple'
4
+
5
+ url = ARGV.shift || 'http://localhost:3000'
6
+ socket = StatsCloudIO::SocketIO::Client::Simple.connect url
7
+
8
+ # socket.auto_reconnection = false
9
+
10
+ #socket.websocket.on :message do |msg| ## inspect websocket data
11
+ # p msg.data
12
+ #end
13
+
14
+ socket.on :connect do
15
+ puts "connect!!!"
16
+ end
17
+
18
+ socket.on :disconnect do
19
+ puts "disconnected!!"
20
+ end
21
+
22
+ socket.on :chat do |data|
23
+ puts "> " + data['msg']
24
+ end
25
+
26
+ socket.on :error do |err|
27
+ p err
28
+ end
29
+
30
+ puts "please input and press Enter key"
31
+ loop do
32
+ msg = STDIN.gets.strip
33
+ next if msg.empty?
34
+ socket.emit :chat, {:msg => msg, :at => Time.now}
35
+ end
@@ -0,0 +1,29 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'statscloud.io-ruby-socket.io-client-simple/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "statscloud.io-ruby-socket.io-client-simple"
8
+ spec.version = StatsCloudIO::SocketIO::Client::Simple::VERSION
9
+ spec.authors = ["Sho Hashimoto"]
10
+ spec.email = ["hashimoto@shokai.org"]
11
+ spec.description = "A simple ruby client for Node.js's Socket.IO v1.1.x, Supports only WebSocket."
12
+ spec.summary = spec.description
13
+ spec.homepage = "https://gitlab.com/agiliumlabs/statscloud.io-ruby-socket.io-client-simple"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "minitest"
24
+
25
+ spec.add_dependency "json"
26
+ spec.add_dependency "websocket-client-simple", '~> 0.3.0'
27
+ spec.add_dependency "httparty"
28
+ spec.add_dependency "event_emitter"
29
+ end
data/test/server.rb ADDED
@@ -0,0 +1,16 @@
1
+ class TestServer
2
+
3
+ def self.port
4
+ (ENV['PORT'] || 13000).to_i
5
+ end
6
+
7
+ def self.start(exit_at=4000)
8
+ system "PORT=#{port} EXIT_AT=#{exit_at} npm start > /dev/null &"
9
+ sleep 1
10
+ end
11
+
12
+ def self.url
13
+ "http://localhost:#{port}"
14
+ end
15
+
16
+ end
@@ -0,0 +1,8 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'minitest/autorun'
4
+
5
+ require File.expand_path 'server', File.dirname(__FILE__)
6
+
7
+ $:.unshift File.expand_path '../lib', File.dirname(__FILE__)
8
+ require 'statscloud.io-ruby-socket.io-client-simple'
@@ -0,0 +1,62 @@
1
+ require File.expand_path 'test_helper', File.dirname(__FILE__)
2
+
3
+ class TestSocketIOClientSimple < MiniTest::Test
4
+
5
+ TestServer.start
6
+
7
+ sleep 1
8
+
9
+ def test_connect
10
+ socket = StatsCloudIO::SocketIO::Client::Simple.connect TestServer.url
11
+ result = false
12
+ socket.on :connect do
13
+ result = true
14
+ end
15
+ sleep 0.5
16
+ assert result
17
+ end
18
+
19
+ def test_emit_on
20
+ socket = StatsCloudIO::SocketIO::Client::Simple.connect TestServer.url
21
+ result = nil
22
+ socket.on :chat do |data| ## receive echo
23
+ result = data
24
+ end
25
+
26
+ post_data = {"msg" => "hello", "at" => Time.now.to_s, "あいさつ" => "こんにちは"}
27
+ socket.on :connect do
28
+ socket.emit :chat, post_data
29
+ end
30
+
31
+ sleep 0.5
32
+ assert_equal post_data, result
33
+ end
34
+
35
+ def test_connect_with_query_parameter
36
+ user = "hashimoto.shokai"
37
+ socket = StatsCloudIO::SocketIO::Client::Simple.connect TestServer.url, :user => user
38
+
39
+ result = nil
40
+
41
+ socket.on :chat do |data|
42
+ result = data['user']
43
+ end
44
+
45
+ socket.on :connect do
46
+ socket.emit :chat, {"msg" => "hello (query parameter test)", "at" => Time.now.to_s}
47
+ end
48
+ sleep 0.5
49
+
50
+ assert_equal result, user
51
+ end
52
+
53
+ def test_disconnect
54
+ socket = StatsCloudIO::SocketIO::Client::Simple.connect TestServer.url
55
+
56
+ socket.on :connect do
57
+ socket.disconnect
58
+ end
59
+ sleep 0.5
60
+ assert_equal socket.open?, false
61
+ end
62
+ end
metadata ADDED
@@ -0,0 +1,165 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: statscloud.io-ruby-socket.io-client-simple
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.2.1.pre.2
5
+ platform: ruby
6
+ authors:
7
+ - Sho Hashimoto
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: websocket-client-simple
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 0.3.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 0.3.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: httparty
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: event_emitter
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: A simple ruby client for Node.js's Socket.IO v1.1.x, Supports only WebSocket.
112
+ email:
113
+ - hashimoto@shokai.org
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - Gemfile
120
+ - Gemfile.lock
121
+ - History.txt
122
+ - LICENSE.txt
123
+ - README.md
124
+ - Rakefile
125
+ - lib/statscloud.io-ruby-socket.io-client-simple.rb
126
+ - lib/statscloud.io-ruby-socket.io-client-simple/byte_buffer.rb
127
+ - lib/statscloud.io-ruby-socket.io-client-simple/client.rb
128
+ - lib/statscloud.io-ruby-socket.io-client-simple/error.rb
129
+ - lib/statscloud.io-ruby-socket.io-client-simple/version.rb
130
+ - package.json
131
+ - samples/chat_server.coffee
132
+ - samples/sample.coffee
133
+ - samples/sample.rb
134
+ - statscloud.io-ruby-socket.io-client-simple.gemspec
135
+ - test/server.rb
136
+ - test/test_helper.rb
137
+ - test/test_socket.io.rb
138
+ homepage: https://gitlab.com/agiliumlabs/statscloud.io-ruby-socket.io-client-simple
139
+ licenses:
140
+ - MIT
141
+ metadata: {}
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">"
154
+ - !ruby/object:Gem::Version
155
+ version: 1.3.1
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 2.7.7
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: A simple ruby client for Node.js's Socket.IO v1.1.x, Supports only WebSocket.
162
+ test_files:
163
+ - test/server.rb
164
+ - test/test_helper.rb
165
+ - test/test_socket.io.rb