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