lightstreamer 0.14 → 0.15

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