hpfeeds 0.1.6 → 0.1.7
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/CHANGELOG.md +17 -10
- data/README.md +1 -1
- data/lib/hpfeeds/client.rb +21 -15
- data/lib/hpfeeds/exception.rb +1 -0
- data/lib/hpfeeds/version.rb +1 -1
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4b13652c42715d1615773a7ba11efc138b1db62
|
4
|
+
data.tar.gz: eb42bc92b8126e3233570207b65358624b75b6f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c913b2ac6cd2c27550ca5e46d507d9aee14599b9c93eac30ebadc4809c5c39aa1c9a5899f98b5d51908e549f6181ae85963d6b4e1bcf740505a9e43f219576ae
|
7
|
+
data.tar.gz: a7bed4d118ad9bcc03e0d56602d003ea36f877cb47dee06639e43f601280e0228de7b9e387d2b36834fb063a7b0960156620f9e8c8a489fe49d5388048126414
|
data/CHANGELOG.md
CHANGED
@@ -1,31 +1,38 @@
|
|
1
|
+
#### 0.1.7
|
2
|
+
- Fix `reconnect: false` options
|
3
|
+
|
4
|
+
#### 0.1.6
|
5
|
+
- minor changes:
|
6
|
+
- minor fixes in README
|
7
|
+
|
1
8
|
#### 0.1.5
|
2
9
|
- major changes:
|
3
|
-
|
10
|
+
- fixed bug in socket data receiving (feed split in different TCP packets)
|
4
11
|
|
5
12
|
#### 0.1.4
|
6
13
|
- major changes:
|
7
|
-
|
14
|
+
- fixed bug in socket data receiving
|
8
15
|
|
9
16
|
#### 0.1.3
|
10
17
|
- major changes:
|
11
|
-
|
12
|
-
|
13
|
-
|
18
|
+
- fixed bug in large feeds receiving
|
19
|
+
- added automatic subscription on reconnection
|
20
|
+
- fixed debug messages
|
14
21
|
|
15
22
|
- minor changes:
|
16
|
-
|
23
|
+
- housekeeping
|
17
24
|
|
18
25
|
#### 0.1.2
|
19
26
|
- major changes:
|
20
|
-
|
27
|
+
- added log_to and log_level options to HPFeeds::Client constructor
|
21
28
|
|
22
29
|
#### 0.1.1
|
23
30
|
- major changes:
|
24
|
-
|
25
|
-
|
31
|
+
- separate handlers for messages from different chanels
|
32
|
+
- better error messages handling
|
26
33
|
|
27
34
|
- minor changes:
|
28
|
-
|
35
|
+
- documentation, indentation
|
29
36
|
|
30
37
|
#### 0.1.0
|
31
38
|
First release
|
data/README.md
CHANGED
data/lib/hpfeeds/client.rb
CHANGED
@@ -12,20 +12,20 @@ module HPFeeds
|
|
12
12
|
|
13
13
|
class Client
|
14
14
|
def initialize(options)
|
15
|
-
@host = options
|
16
|
-
@port = options
|
17
|
-
@ident = options
|
18
|
-
@secret = options
|
15
|
+
@host = options.fetch(:host)
|
16
|
+
@port = options.fetch(:port, 10000)
|
17
|
+
@ident = options.fetch(:ident)
|
18
|
+
@secret = options.fetch(:secret)
|
19
19
|
|
20
|
-
@timeout = options
|
21
|
-
@reconnect = options
|
22
|
-
@sleepwait = options
|
20
|
+
@timeout = options.fetch(:timeout, 30)
|
21
|
+
@reconnect = options.fetch(:reconnect, true)
|
22
|
+
@sleepwait = options.fetch(:sleepwait, 20)
|
23
23
|
|
24
24
|
@connected = false
|
25
25
|
@stopped = false
|
26
26
|
|
27
|
-
log_to = options
|
28
|
-
log_level = options
|
27
|
+
log_to = options.fetch(:log_to, STDOUT)
|
28
|
+
log_level = options.fetch(:log_level, :info)
|
29
29
|
@logger = Logger.new(log_to)
|
30
30
|
@logger.level = get_log_level(log_level)
|
31
31
|
|
@@ -45,7 +45,8 @@ module HPFeeds
|
|
45
45
|
end
|
46
46
|
break
|
47
47
|
rescue => e
|
48
|
-
@logger.warn("#{e.class}
|
48
|
+
@logger.warn("#{e.class} caught while connecting: #{e}. Reconnecting in #{@sleepwait} seconds...")
|
49
|
+
raise(e) unless @reconnect
|
49
50
|
sleep(@sleepwait)
|
50
51
|
end
|
51
52
|
end
|
@@ -118,14 +119,14 @@ module HPFeeds
|
|
118
119
|
begin
|
119
120
|
while !@stopped
|
120
121
|
while @connected
|
121
|
-
header = receive_data(HEADERSIZE)
|
122
|
+
header = receive_data(HEADERSIZE, @timeout)
|
122
123
|
if header.empty?
|
123
124
|
@connected = false
|
124
125
|
break
|
125
126
|
end
|
126
127
|
opcode, len = @decoder.parse_header(header)
|
127
128
|
@logger.debug("received header, opcode = #{opcode}, len = #{len}")
|
128
|
-
data = receive_data(len - HEADERSIZE)
|
129
|
+
data = receive_data(len - HEADERSIZE, @timeout)
|
129
130
|
if opcode == OP_ERROR
|
130
131
|
unless error_callback.nil?
|
131
132
|
error_callback.call(data)
|
@@ -145,11 +146,16 @@ module HPFeeds
|
|
145
146
|
@logger.debug("Lost connection, trying to connect again...")
|
146
147
|
tryconnect
|
147
148
|
end
|
149
|
+
rescue Timeout => e
|
150
|
+
@logger.warn("#{e.class} caught while connecting: #{e}. Reconnecting in #{@sleepwait} seconds...")
|
151
|
+
raise(e) unless @reconnect
|
152
|
+
sleep(@sleepwait)
|
153
|
+
tryconnect
|
148
154
|
rescue ErrorMessage => e
|
149
|
-
@logger.warn("#{e.class}
|
155
|
+
@logger.warn("#{e.class} caught in main loop: #{e}")
|
150
156
|
raise e
|
151
157
|
rescue => e
|
152
|
-
message = "#{e.class}
|
158
|
+
message = "#{e.class} caught in main loop: #{e}\n"
|
153
159
|
message += e.backtrace.join("\n")
|
154
160
|
@logger.error(message)
|
155
161
|
end
|
@@ -176,7 +182,7 @@ module HPFeeds
|
|
176
182
|
if IO.select([@socket], nil, nil, timeout)
|
177
183
|
read_from_socket(max)
|
178
184
|
else
|
179
|
-
raise
|
185
|
+
raise Timeout.new("Connection receive timeout.")
|
180
186
|
end
|
181
187
|
end
|
182
188
|
|
data/lib/hpfeeds/exception.rb
CHANGED
data/lib/hpfeeds/version.rb
CHANGED
metadata
CHANGED
@@ -1,41 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hpfeeds
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francesco Coda Zabetta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.3'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
description: Ruby client for HPFeeds protocol
|
@@ -45,15 +45,15 @@ executables: []
|
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
-
|
49
|
-
- lib/hpfeeds/exception.rb
|
50
|
-
- lib/hpfeeds/decoder.rb
|
51
|
-
- lib/hpfeeds/client.rb
|
52
|
-
- lib/hpfeeds.rb
|
48
|
+
- CHANGELOG.md
|
53
49
|
- LICENSE.txt
|
54
|
-
- Rakefile
|
55
50
|
- README.md
|
56
|
-
-
|
51
|
+
- Rakefile
|
52
|
+
- lib/hpfeeds.rb
|
53
|
+
- lib/hpfeeds/client.rb
|
54
|
+
- lib/hpfeeds/decoder.rb
|
55
|
+
- lib/hpfeeds/exception.rb
|
56
|
+
- lib/hpfeeds/version.rb
|
57
57
|
homepage: https://github.com/vicvega/hpfeeds-ruby
|
58
58
|
licenses:
|
59
59
|
- MIT
|
@@ -64,17 +64,17 @@ require_paths:
|
|
64
64
|
- lib
|
65
65
|
required_ruby_version: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
requirements: []
|
76
76
|
rubyforge_project:
|
77
|
-
rubygems_version: 2.
|
77
|
+
rubygems_version: 2.6.8
|
78
78
|
signing_key:
|
79
79
|
specification_version: 4
|
80
80
|
summary: Ruby client for HPFeeds protocol
|