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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b1b84d1db3f1b16870c6f5ee648e92d63ca80d6
4
- data.tar.gz: 596e8ec9bcaea8a9416c91055970d04fb668f949
3
+ metadata.gz: 43b2947ca1e2d5310fb35fd32825ddb7e476b3f4
4
+ data.tar.gz: a1208cbc3d5fa376998c3cb01983af3bf2967558
5
5
  SHA512:
6
- metadata.gz: 61a3e00b660a8b68b8a16fdc65ef4371a355b65c89fb2e9d981072db2c2eb3492fba7125d1a13100f542f35e413947a73eef941e793f99d1e90758090f05e7a1
7
- data.tar.gz: c88a674ece9968ebb3c9a4079652bd958c75dceae9b4dfa8de1bab2ca8b6655a4332af9d598fcf98896ac56c7d919cf9db7e39c9a540ebca715dfb0485a6683d
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/steamrb)
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
@@ -7,7 +7,7 @@ module Steam
7
7
  MINOR = '1'
8
8
 
9
9
  # Patch version of the gem
10
- PATCH = '1'
10
+ PATCH = '2'
11
11
 
12
12
  # Current Steam gem version
13
13
  VERSION = [MAJOR, MINOR, PATCH].join('.')
data/lib/steam.rb CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  require 'ext/string'
4
4
 
5
+ require 'retryable'
6
+
5
7
  require 'steam/id'
6
8
 
7
9
  # Require Steam Language from the steamd gem
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.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: 2016-12-31 00:00:00.000000000 Z
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