hpfeeds 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|