steamrb 0.1.1 → 0.1.2
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.
- 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
|
-
[](https://travis-ci.org/fastpeek/
|
2
|
+
[](https://travis-ci.org/fastpeek/steam)
|
3
3
|

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