lightstreamer 0.14 → 0.15

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
- SHA1:
3
- metadata.gz: 5be2ea3bcbc4b29ef2cb22a23ce50c362b061def
4
- data.tar.gz: c36185e84e238feacec3722cceb11035c14745f7
2
+ SHA256:
3
+ metadata.gz: e7a5166d6a0e3ab3612f9a13848ca9475ea0f0fae7139d5ad70bdf9fbe6b0a43
4
+ data.tar.gz: 3b0e4316482c751fedcc86b76fb7f202c3b5863df8559a47c7fc211c8556f1aa
5
5
  SHA512:
6
- metadata.gz: 5eea441e9b8630ec474746bd725653aacdabbaeae9b372f1a3446ac01c47c59d51b5853a10b5f2748028ac42ef9873045f7e8dd9fab461311dd2269e746cf754
7
- data.tar.gz: d0d534254bc9297b4860b42ced96c13c9a81bdbb6927c2a8189e93abef0015ed0c944d62183c59e3cbaa81ffca7e38bb6f7e6659ad98a88b83351c61365cef39
6
+ metadata.gz: 13f500f634589f1197eb2810b7f51f06a52b80827a7b62a8f8e37db4d3eac132651e7bde105b78b33c96df14d9c856c9ceadd673a00296a2ff06f5118da9103d
7
+ data.tar.gz: 17e84feb6e0b66561ee2b9d4b40be8ed70ab882fa374a3e49d217ec0f9aa542605fb2c6c57b68cb7e40cc6d0bc572d9ef5b6659351435481bfc2550135d89d4f
@@ -1,5 +1,10 @@
1
1
  # Lightstreamer Changelog
2
2
 
3
+ ### 0.15 — September 12, 2019
4
+
5
+ - Updated supported Ruby version range to 2.4 - 2.6.
6
+ - Switched to `cc-test-reporter` now that the `codeclimate-test-reporter` gem has been deprecated.
7
+
3
8
  ### 0.14 — December 7, 2016
4
9
 
5
10
  - Increased required Ruby version to >= 2.2.2
data/LICENSE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  The MIT License (MIT)
2
2
  =====================
3
3
 
4
- Copyright © 2015-2016 Richard Viney
4
+ Copyright © 2015-2019 Richard Viney
5
5
 
6
6
  Permission is hereby granted, free of charge, to any person
7
7
  obtaining a copy of this software and associated documentation
data/README.md CHANGED
@@ -4,7 +4,6 @@
4
4
  [![Build Status][travis-ci-badge]][travis-ci-link]
5
5
  [![Test Coverage][test-coverage-badge]][test-coverage-link]
6
6
  [![Code Climate][code-climate-badge]][code-climate-link]
7
- [![Dependencies][dependencies-badge]][dependencies-link]
8
7
  [![Documentation][documentation-badge]][documentation-link]
9
8
  [![License][license-badge]][license-link]
10
9
 
@@ -40,8 +39,8 @@ $ gem install lightstreamer
40
39
 
41
40
  The two primary classes that make up the public API are:
42
41
 
43
- - [`Lightstreamer::Session`](http://www.rubydoc.info/github/rviney/lightstreamer/master/Lightstreamer/Session)
44
- - [`Lightstreamer::Subscription`](http://www.rubydoc.info/github/rviney/lightstreamer/master/Lightstreamer/Subscription)
42
+ - [`Lightstreamer::Session`](http://www.rubydoc.info/github/richard-viney/lightstreamer/master/Lightstreamer/Session)
43
+ - [`Lightstreamer::Subscription`](http://www.rubydoc.info/github/richard-viney/lightstreamer/master/Lightstreamer/Subscription)
45
44
 
46
45
  The following code demonstrates how to create a Lightstreamer session, build a subscription, then use a thread-safe
47
46
  queue to print streaming output as it arrives.
@@ -106,7 +105,7 @@ lightstreamer help stream
106
105
 
107
106
  ## Documentation
108
107
 
109
- API documentation is available [here](http://www.rubydoc.info/github/rviney/lightstreamer/master).
108
+ API documentation is available [here](http://www.rubydoc.info/github/richard-viney/lightstreamer/master).
110
109
 
111
110
  ## Contributors
112
111
 
@@ -114,15 +113,13 @@ Gem created by Richard Viney. All contributions welcome.
114
113
 
115
114
  [gem-link]: https://rubygems.org/gems/lightstreamer
116
115
  [gem-badge]: https://badge.fury.io/rb/lightstreamer.svg
117
- [travis-ci-link]: http://travis-ci.org/rviney/lightstreamer
118
- [travis-ci-badge]: https://travis-ci.org/rviney/lightstreamer.svg?branch=master
119
- [test-coverage-link]: https://codeclimate.com/github/rviney/lightstreamer/coverage
120
- [test-coverage-badge]: https://codeclimate.com/github/rviney/lightstreamer/badges/coverage.svg
121
- [code-climate-link]: https://codeclimate.com/github/rviney/lightstreamer
122
- [code-climate-badge]: https://codeclimate.com/github/rviney/lightstreamer/badges/gpa.svg
123
- [dependencies-link]: https://gemnasium.com/rviney/lightstreamer
124
- [dependencies-badge]: https://gemnasium.com/rviney/lightstreamer.svg
125
- [documentation-link]: https://inch-ci.org/github/rviney/lightstreamer
126
- [documentation-badge]: https://inch-ci.org/github/rviney/lightstreamer.svg?branch=master
127
- [license-link]: https://github.com/rviney/lightstreamer/blob/master/LICENSE.md
116
+ [travis-ci-link]: http://travis-ci.org/richard-viney/lightstreamer
117
+ [travis-ci-badge]: https://travis-ci.org/richard-viney/lightstreamer.svg?branch=master
118
+ [test-coverage-link]: https://codeclimate.com/github/richard-viney/lightstreamer/test_coverage
119
+ [test-coverage-badge]: https://api.codeclimate.com/v1/badges/75ed2d421612ef3be0c1/test_coverage
120
+ [code-climate-link]: https://codeclimate.com/github/richard-viney/lightstreamer
121
+ [code-climate-badge]: https://api.codeclimate.com/v1/badges/75ed2d421612ef3be0c1/maintainability
122
+ [documentation-link]: https://inch-ci.org/github/richard-viney/lightstreamer
123
+ [documentation-badge]: https://inch-ci.org/github/richard-viney/lightstreamer.svg?branch=master
124
+ [license-link]: https://github.com/richard-viney/lightstreamer/blob/master/LICENSE.md
128
125
  [license-badge]: https://img.shields.io/badge/license-MIT-blue.svg
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.unshift File.dirname(File.realpath(__FILE__)) + '/../lib'
3
+ $LOAD_PATH.unshift "#{__dir__}/../lib"
4
4
 
5
5
  require 'lightstreamer'
6
6
 
@@ -1,4 +1,3 @@
1
- require 'thread'
2
1
  require 'uri'
3
2
  require 'weakref'
4
3
 
@@ -14,7 +14,7 @@ module Lightstreamer
14
14
  option :data_adapter, desc: 'The name of the data adapter to stream data from'
15
15
  option :items, type: :array, required: true, desc: 'The names of the item(s) to stream'
16
16
  option :fields, type: :array, required: true, desc: 'The field(s) to stream'
17
- option :mode, enum: %w(command distinct merge raw), desc: 'The operation mode'
17
+ option :mode, enum: %w[command distinct merge raw], desc: 'The operation mode'
18
18
  option :selector, desc: 'The selector for table items'
19
19
  option :snapshot, type: :boolean, desc: 'Whether to send snapshot data for the items'
20
20
  option :maximum_update_frequency, desc: 'The maximum number of updates per second for each item'
@@ -163,7 +163,7 @@ module Lightstreamer
163
163
  #
164
164
  # @param [String, Fixnum, nil] cause_code See {#cause_code} for details.
165
165
  def initialize(cause_code)
166
- @cause_code = cause_code && cause_code.to_i
166
+ @cause_code = cause_code&.to_i
167
167
  super()
168
168
  end
169
169
  end
@@ -52,7 +52,7 @@ module Lightstreamer
52
52
  return '' if value == '$'
53
53
  return nil if value == '#'
54
54
 
55
- value = value[1..-1] if value =~ /^(\$|#)/
55
+ value = value[1..-1] if /^(\$|#)/.match?(value)
56
56
 
57
57
  decode_escape_sequences value
58
58
  end
@@ -37,8 +37,8 @@ module Lightstreamer
37
37
  raise LightstreamerError if errors.size != bodies.size
38
38
 
39
39
  errors
40
- rescue Excon::Error => error
41
- raise Errors::ConnectionError, error.message
40
+ rescue Excon::Error => e
41
+ raise Errors::ConnectionError, e.message
42
42
  end
43
43
 
44
44
  # Returns the request body to send for a POST request with the given options.
@@ -51,6 +51,7 @@ module Lightstreamer
51
51
 
52
52
  query.each do |key, value|
53
53
  next if value.nil?
54
+
54
55
  value = value.map(&:to_s).join(' ') if value.is_a? Array
55
56
  params[key] = value
56
57
  end
@@ -73,7 +73,7 @@ module Lightstreamer
73
73
  @stream_connection.connect
74
74
 
75
75
  create_processing_thread
76
- rescue
76
+ rescue StandardError
77
77
  @stream_connection = nil
78
78
  raise
79
79
  end
@@ -89,7 +89,7 @@ module Lightstreamer
89
89
  #
90
90
  # @return [String, nil]
91
91
  def session_id
92
- @stream_connection && @stream_connection.session_id
92
+ @stream_connection&.session_id
93
93
  end
94
94
 
95
95
  # Disconnects this Lightstreamer session and terminates the session on the server. All worker threads are exited,
@@ -97,10 +97,10 @@ module Lightstreamer
97
97
  def disconnect
98
98
  control_request LS_op: :destroy if @stream_connection
99
99
 
100
- @processing_thread.join 5 if @processing_thread
100
+ @processing_thread&.join 5
101
101
  ensure
102
- @stream_connection.disconnect if @stream_connection
103
- @processing_thread.exit if @processing_thread
102
+ @stream_connection&.disconnect
103
+ @processing_thread&.exit
104
104
 
105
105
  @subscriptions.each { |subscription| subscription.after_control_request :stop }
106
106
  @subscriptions = []
@@ -35,6 +35,7 @@ module Lightstreamer
35
35
  # {#initialize}. Raises a {LightstreamerError} subclass on failure.
36
36
  def connect
37
37
  return if @thread
38
+
38
39
  @queue.clear
39
40
 
40
41
  @connect_result_mutex.synchronize do
@@ -132,8 +133,8 @@ module Lightstreamer
132
133
  options[:expects] = 200
133
134
 
134
135
  Excon.post url, options
135
- rescue Excon::Error => error
136
- @error = Errors::ConnectionError.new error.message
136
+ rescue Excon::Error => e
137
+ @error = Errors::ConnectionError.new e.message
137
138
  end
138
139
 
139
140
  def signal_connect_result_ready
@@ -141,7 +142,7 @@ module Lightstreamer
141
142
  end
142
143
 
143
144
  def process_stream_line(line)
144
- return if line =~ /^(PROBE|Preamble:.*)$/
145
+ return if /^(PROBE|Preamble:.*)$/.match?(line)
145
146
 
146
147
  if @header
147
148
  process_header_line line
@@ -164,15 +165,16 @@ module Lightstreamer
164
165
  @error = @header.error
165
166
 
166
167
  return if header_incomplete
168
+
167
169
  @header = nil
168
170
 
169
171
  signal_connect_result_ready
170
172
  end
171
173
 
172
174
  def process_body_line(line)
173
- if line =~ /^LOOP( \d+|)$/
175
+ if /^LOOP( \d+|)$/.match?(line)
174
176
  @loop = true
175
- elsif line =~ /^END( \d+|)$/
177
+ elsif /^END( \d+|)$/.match?(line)
176
178
  @error = Errors::SessionEndError.new line[4..-1]
177
179
  elsif !line.empty?
178
180
  @queue.push line
@@ -142,7 +142,7 @@ module Lightstreamer
142
142
  index = @items.index item_name
143
143
  raise ArgumentError, 'Unknown item' unless index
144
144
 
145
- @mutex.synchronize { @data[index].data && @data[index].data.dup }
145
+ @mutex.synchronize { @data[index].data&.dup }
146
146
  end
147
147
 
148
148
  # Sets the current data for the item with the specified name. This is only allowed when {mode} is `:command` or
@@ -14,7 +14,7 @@ module Lightstreamer
14
14
  # @param [Array, Hash] new_data The new data for the item.
15
15
  # @param [:command, :merge] mode The subscription mode.
16
16
  def set_data(new_data, mode)
17
- raise ArgumentError, "Data can't be set unless mode is :command or :merge" unless [:command, :merge].include? mode
17
+ raise ArgumentError, "Data can't be set unless mode is :command or :merge" unless %i[command merge].include? mode
18
18
  raise ArgumentError, 'Data must be a hash when in merge mode' if mode == :merge && !new_data.is_a?(Hash)
19
19
 
20
20
  validate_rows new_data if mode == :command
@@ -1,4 +1,4 @@
1
1
  module Lightstreamer
2
2
  # The version of this gem.
3
- VERSION = '0.14'.freeze
3
+ VERSION = '0.15'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lightstreamer
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.14'
4
+ version: '0.15'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Viney
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-07 00:00:00.000000000 Z
11
+ date: 2019-09-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -16,140 +16,154 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.51'
19
+ version: '0.66'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.51'
26
+ version: '0.66'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.19'
33
+ version: '0.20'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.19'
40
+ version: '0.20'
41
41
  - !ruby/object:Gem::Dependency
42
- name: codeclimate-test-reporter
42
+ name: factory_bot
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.0'
47
+ version: '5.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.0'
54
+ version: '5.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: factory_girl
56
+ name: github-markup
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '4.7'
61
+ version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '4.7'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: github-markup
70
+ name: redcarpet
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.4'
75
+ version: '3.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.4'
82
+ version: '3.3'
83
83
  - !ruby/object:Gem::Dependency
84
- name: redcarpet
84
+ name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.3'
89
+ version: '3.8'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '3.3'
96
+ version: '3.8'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rspec
98
+ name: rspec-mocks
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '3.5'
103
+ version: '3.8'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '3.5'
110
+ version: '3.8'
111
111
  - !ruby/object:Gem::Dependency
112
- name: rspec-mocks
112
+ name: rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '3.5'
117
+ version: '0.74'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '3.5'
124
+ version: '0.74'
125
125
  - !ruby/object:Gem::Dependency
126
- name: rubocop
126
+ name: rubocop-performance
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.4'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.4'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rubocop-rspec
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '0.45'
145
+ version: '1.35'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '0.45'
152
+ version: '1.35'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: simplecov
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - "~>"
144
158
  - !ruby/object:Gem::Version
145
- version: '0.12'
159
+ version: '0.17'
146
160
  type: :development
147
161
  prerelease: false
148
162
  version_requirements: !ruby/object:Gem::Requirement
149
163
  requirements:
150
164
  - - "~>"
151
165
  - !ruby/object:Gem::Version
152
- version: '0.12'
166
+ version: '0.17'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: yard
155
169
  requirement: !ruby/object:Gem::Requirement
@@ -191,7 +205,7 @@ files:
191
205
  - lib/lightstreamer/subscription.rb
192
206
  - lib/lightstreamer/subscription_item_data.rb
193
207
  - lib/lightstreamer/version.rb
194
- homepage: https://github.com/rviney/lightstreamer
208
+ homepage: https://github.com/richard-viney/lightstreamer
195
209
  licenses:
196
210
  - MIT
197
211
  metadata: {}
@@ -203,7 +217,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
203
217
  requirements:
204
218
  - - ">="
205
219
  - !ruby/object:Gem::Version
206
- version: 2.2.2
220
+ version: 2.4.0
207
221
  required_rubygems_version: !ruby/object:Gem::Requirement
208
222
  requirements:
209
223
  - - ">="
@@ -211,7 +225,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
225
  version: '0'
212
226
  requirements: []
213
227
  rubyforge_project:
214
- rubygems_version: 2.5.1
228
+ rubygems_version: 2.7.6
215
229
  signing_key:
216
230
  specification_version: 4
217
231
  summary: Library and command-line client for accessing a Lightstreamer server.