steamrb 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/steam/client.rb +9 -2
- data/lib/steam/networking/connection.rb +9 -2
- data/lib/steam/version.rb +1 -1
- data/lib/steam.rb +2 -0
- data/steamrb.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43b2947ca1e2d5310fb35fd32825ddb7e476b3f4
|
4
|
+
data.tar.gz: a1208cbc3d5fa376998c3cb01983af3bf2967558
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f179d337a3a20abb9830e4cb6b406e7994b03cc5093eae8a5e496ca07081e411d3ca4b9d5ee4ae4041877042daca77eba8f1442d341776632b3069ce92bf7434
|
7
|
+
data.tar.gz: dc94411505c1b272423ebe9d65951821710b0b792175af3132c403fefebc67dd0acf58f20cd564340ace4c165d7ef8a606bc62f7a2cbd26751d403f7617c1d9b
|
data/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# Steam
|
2
|
-
[![Build Status](https://travis-ci.org/fastpeek/steam.svg?branch=master)](https://travis-ci.org/fastpeek/
|
2
|
+
[![Build Status](https://travis-ci.org/fastpeek/steam.svg?branch=master)](https://travis-ci.org/fastpeek/steam)
|
3
3
|
![Gem Version](https://img.shields.io/gem/v/steamrb.svg)
|
4
4
|
|
5
5
|
Ruby Client for Steam.
|
data/lib/steam/client.rb
CHANGED
@@ -72,6 +72,7 @@ module Steam
|
|
72
72
|
def stop
|
73
73
|
steam_user.logoff if @steam_id && @session_id
|
74
74
|
connection.disconnect
|
75
|
+
@heartbeat_thread.join if @heartbeat_thread
|
75
76
|
@steam_id = default_steam_id
|
76
77
|
@session_id = nil
|
77
78
|
end
|
@@ -136,13 +137,19 @@ module Steam
|
|
136
137
|
# @param tick [Integer] the time to wait between
|
137
138
|
# heartbeat messages
|
138
139
|
def start_heartbeat(tick)
|
139
|
-
Thread.new do |t|
|
140
|
-
t.abort_on_exception = true
|
140
|
+
@heartbeat_thread = Thread.new do |t|
|
141
141
|
until connection.disconnected?
|
142
142
|
send_msg(heartbeat_message)
|
143
|
+
heartbeat
|
143
144
|
sleep(tick)
|
144
145
|
end
|
145
146
|
end
|
147
|
+
@heartbeat_thread.abort_on_exception = true
|
148
|
+
@heartbeat_thread
|
149
|
+
end
|
150
|
+
|
151
|
+
# Called every time client sends an alive message to Steam
|
152
|
+
def heartbeat
|
146
153
|
end
|
147
154
|
|
148
155
|
# Passes each GC message to any plugins.
|
@@ -133,7 +133,7 @@ module Steam
|
|
133
133
|
|
134
134
|
# @api private
|
135
135
|
def write_socket(data)
|
136
|
-
socket.write(data)
|
136
|
+
handle_timeout { socket.write(data) }
|
137
137
|
rescue IOError => e
|
138
138
|
# If we are disconnecting, the socket is allowed to be closed
|
139
139
|
return 0 if disconnecting
|
@@ -142,7 +142,7 @@ module Steam
|
|
142
142
|
|
143
143
|
# @api private
|
144
144
|
def read_socket(len)
|
145
|
-
socket.read(len)
|
145
|
+
handle_timeout { socket.read(len) }
|
146
146
|
rescue IOError => e
|
147
147
|
# If we are disconnecting, the socket is allowed to be closed
|
148
148
|
return nil if disconnecting
|
@@ -173,6 +173,13 @@ module Steam
|
|
173
173
|
def session_key
|
174
174
|
@mutex.synchronize { @session_key }
|
175
175
|
end
|
176
|
+
|
177
|
+
def handle_timeout(&block)
|
178
|
+
raise ArgumentError, 'requires block' unless block_given?
|
179
|
+
Retryable.retryable(tries: 3, sleep: 1, on: [Errno::ETIMEDOUT]) do
|
180
|
+
block.call
|
181
|
+
end
|
182
|
+
end
|
176
183
|
end
|
177
184
|
end
|
178
185
|
end
|
data/lib/steam/version.rb
CHANGED
data/lib/steam.rb
CHANGED
data/steamrb.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency 'steamd', '~> 0.1'
|
28
28
|
spec.add_dependency 'steam-proto', '~> 0.1'
|
29
29
|
spec.add_dependency 'steam-id', '~> 0.1'
|
30
|
+
spec.add_dependency 'retryable', '~> 2.0'
|
30
31
|
|
31
32
|
spec.add_development_dependency 'bundler', '~> 1.13'
|
32
33
|
spec.add_development_dependency 'rake', '~> 10.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: steamrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Taylor Finnell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: steamd
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: retryable
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: bundler
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|