salesforce_streamer 2.1.1 → 2.5.0

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
2
  SHA256:
3
- metadata.gz: 4a92bbc0eaffa8152b8cdcc6b8eb35248a8fe1e996bc73410dc1ed4043acde08
4
- data.tar.gz: '0787479213ab7bc07c07a6cc5d8c9034f5593aee613a28529e25dd51e8c3d9c2'
3
+ metadata.gz: ee0a8f25e58071aab321354f7a419407d70f764c50c84999406dc20d798df147
4
+ data.tar.gz: 3ba160a1abe2748d2bd54191a36a84de8839f4f590654ef71250fdb59172fe42
5
5
  SHA512:
6
- metadata.gz: 95e9b7ba4133fe7c7840e413677cff3121b6d4c94c9f1037b4fd91fe1a111dd6a1ac350075b987d68cd1fbcb72b733fbed3bd087353b6a075789a8fd15c014cb
7
- data.tar.gz: 573892b3222c3240fb8d171b32f03f446bae3a0ff2184aa7bbbdf71f940ecc961cd84a634dda824a9ecb42acb13446e44b8d0d8f4f4dacb4cae0f1c555658cf0
6
+ metadata.gz: 04e3729da95d7ab24d3d4ca76f37323fdaecf5dcdcd825d8dbae03fa183126fa5b919f9eb6602e3cf2815700ae1b7479638c850c2628acfe9e9932111c3933bf
7
+ data.tar.gz: af5151cc9d9d38af500085077328afa77a6d63c6786039e29b32942ebafa76074ee67c005bc3aa38d70cefc1bf79c471838c25e62660fc9445fc7b1ddfb3a451
data/.bundler-version ADDED
@@ -0,0 +1 @@
1
+ 2.2.22
@@ -3,9 +3,14 @@ version: 1
3
3
  update_configs:
4
4
  - package_manager: "ruby:bundler"
5
5
  directory: "/"
6
- update_schedule: "monthly"
6
+ update_schedule: "daily"
7
7
  commit_message:
8
8
  prefix: "[dependabot]"
9
9
  allowed_updates:
10
10
  - match:
11
- update_type: "all"
11
+ dependency_type: "all"
12
+ update_type: "security"
13
+ automerged_updates:
14
+ - match:
15
+ dependency_type: "all"
16
+ update_type: "security:patch"
@@ -1,7 +1,7 @@
1
- # automatically approve PRs submitted by Dependabot
1
+ # automatically approve PRs submitted by Dependabot or Renofidev
2
2
  # this will allow Dependabot to automatically merge dependency update PRs where CI passes
3
3
  # from: https://github.com/hmarr/auto-approve-action
4
- name: Auto approve Dependabot PRs
4
+ name: Auto approve dependency upgrades PRs
5
5
 
6
6
  on:
7
7
  pull_request
@@ -11,6 +11,6 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: hmarr/auto-approve-action@v2.0.0
14
- if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]'
14
+ if: github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]' || github.actor == 'renofidev'
15
15
  with:
16
16
  github-token: "${{ secrets.GITHUB_TOKEN }}"
@@ -0,0 +1,19 @@
1
+ name: automerge
2
+ on:
3
+ pull_request_review:
4
+ types:
5
+ - submitted
6
+ check_suite:
7
+ types:
8
+ - completed
9
+ status: {}
10
+ jobs:
11
+ automerge:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: automerge
15
+ uses: "pascalgn/automerge-action@v0.12.0"
16
+ env:
17
+ GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
18
+ MERGE_METHOD: squash
19
+ MERGE_DELETE_BRANCH: true
data/.travis.yml CHANGED
@@ -3,8 +3,8 @@ sudo: false
3
3
  language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.6
7
6
  - 2.7
7
+ - 3.0
8
8
  before_install: gem install bundler
9
9
  script:
10
10
  - bundle exec rake spec
data/Gemfile.lock CHANGED
@@ -1,25 +1,26 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- salesforce_streamer (2.1.1)
4
+ salesforce_streamer (2.5.0)
5
+ cookiejar (~> 0.3.0)
5
6
  dry-initializer (~> 3.0)
7
+ eventmachine (~> 1.2)
6
8
  faye (~> 1.4)
7
- restforce (>= 4.2, < 6.0)
9
+ restforce (~> 5.0)
8
10
 
9
11
  GEM
10
12
  remote: https://rubygems.org/
11
13
  specs:
12
- addressable (2.7.0)
14
+ addressable (2.8.0)
13
15
  public_suffix (>= 2.0.2, < 5.0)
14
- ast (2.4.1)
16
+ ast (2.4.2)
15
17
  byebug (11.1.3)
16
- codecov (0.2.9)
17
- json
18
- simplecov
18
+ codecov (0.5.2)
19
+ simplecov (>= 0.15, < 0.22)
19
20
  cookiejar (0.3.3)
20
21
  diff-lcs (1.4.4)
21
- docile (1.3.2)
22
- dry-initializer (3.0.3)
22
+ docile (1.4.0)
23
+ dry-initializer (3.0.4)
23
24
  em-http-request (1.1.7)
24
25
  addressable (>= 2.3.4)
25
26
  cookiejar (!= 0.3.1)
@@ -29,8 +30,23 @@ GEM
29
30
  em-socksify (0.3.2)
30
31
  eventmachine (>= 1.0.0.beta.4)
31
32
  eventmachine (1.2.7)
32
- faraday (1.0.1)
33
+ faraday (1.5.0)
34
+ faraday-em_http (~> 1.0)
35
+ faraday-em_synchrony (~> 1.0)
36
+ faraday-excon (~> 1.1)
37
+ faraday-httpclient (~> 1.0.1)
38
+ faraday-net_http (~> 1.0)
39
+ faraday-net_http_persistent (~> 1.1)
40
+ faraday-patron (~> 1.0)
33
41
  multipart-post (>= 1.2, < 3)
42
+ ruby2_keywords (>= 0.0.4)
43
+ faraday-em_http (1.0.0)
44
+ faraday-em_synchrony (1.0.0)
45
+ faraday-excon (1.1.0)
46
+ faraday-httpclient (1.0.1)
47
+ faraday-net_http (1.0.1)
48
+ faraday-net_http_persistent (1.1.0)
49
+ faraday-patron (1.0.0)
34
50
  faraday_middleware (1.0.0)
35
51
  faraday (~> 1.0)
36
52
  faye (1.4.0)
@@ -41,69 +57,74 @@ GEM
41
57
  multi_json (>= 1.0.0)
42
58
  rack (>= 1.0.0)
43
59
  websocket-driver (>= 0.5.1)
44
- faye-websocket (0.11.0)
60
+ faye-websocket (0.11.1)
45
61
  eventmachine (>= 0.12.0)
46
62
  websocket-driver (>= 0.5.1)
47
63
  hashie (4.1.0)
48
- http_parser.rb (0.6.0)
49
- json (2.3.1)
50
- jwt (2.2.2)
64
+ http_parser.rb (0.7.0)
65
+ jwt (2.2.3)
51
66
  multi_json (1.15.0)
52
67
  multipart-post (2.1.1)
53
- parallel (1.19.2)
54
- parser (2.7.1.4)
68
+ parallel (1.20.1)
69
+ parser (3.0.1.1)
55
70
  ast (~> 2.4.1)
56
- public_suffix (4.0.5)
71
+ public_suffix (4.0.6)
57
72
  rack (2.2.3)
58
73
  rainbow (3.0.0)
59
- rake (13.0.1)
60
- regexp_parser (1.7.1)
61
- restforce (5.0.1)
74
+ rake (13.0.4)
75
+ regexp_parser (2.1.1)
76
+ restforce (5.0.6)
62
77
  faraday (>= 0.9.0, <= 2.0)
63
78
  faraday_middleware (>= 0.8.8, <= 2.0)
64
79
  hashie (>= 1.2.0, < 5.0)
65
80
  jwt (>= 1.5.6)
66
- rexml (3.2.4)
67
- rspec (3.9.0)
68
- rspec-core (~> 3.9.0)
69
- rspec-expectations (~> 3.9.0)
70
- rspec-mocks (~> 3.9.0)
71
- rspec-core (3.9.2)
72
- rspec-support (~> 3.9.3)
73
- rspec-expectations (3.9.2)
81
+ rexml (3.2.5)
82
+ rspec (3.10.0)
83
+ rspec-core (~> 3.10.0)
84
+ rspec-expectations (~> 3.10.0)
85
+ rspec-mocks (~> 3.10.0)
86
+ rspec-core (3.10.1)
87
+ rspec-support (~> 3.10.0)
88
+ rspec-expectations (3.10.1)
74
89
  diff-lcs (>= 1.2.0, < 2.0)
75
- rspec-support (~> 3.9.0)
76
- rspec-mocks (3.9.1)
90
+ rspec-support (~> 3.10.0)
91
+ rspec-mocks (3.10.2)
77
92
  diff-lcs (>= 1.2.0, < 2.0)
78
- rspec-support (~> 3.9.0)
79
- rspec-support (3.9.3)
80
- rubocop (0.90.0)
93
+ rspec-support (~> 3.10.0)
94
+ rspec-support (3.10.2)
95
+ rubocop (1.18.3)
81
96
  parallel (~> 1.10)
82
- parser (>= 2.7.1.1)
97
+ parser (>= 3.0.0.0)
83
98
  rainbow (>= 2.2.2, < 4.0)
84
- regexp_parser (>= 1.7)
99
+ regexp_parser (>= 1.8, < 3.0)
85
100
  rexml
86
- rubocop-ast (>= 0.3.0, < 1.0)
101
+ rubocop-ast (>= 1.7.0, < 2.0)
87
102
  ruby-progressbar (~> 1.7)
88
- unicode-display_width (>= 1.4.0, < 2.0)
89
- rubocop-ast (0.3.0)
90
- parser (>= 2.7.1.4)
91
- rubocop-performance (1.7.1)
92
- rubocop (>= 0.82.0)
93
- rubocop-rspec (1.43.2)
94
- rubocop (~> 0.87)
95
- ruby-progressbar (1.10.1)
96
- simplecov (0.19.0)
103
+ unicode-display_width (>= 1.4.0, < 3.0)
104
+ rubocop-ast (1.7.0)
105
+ parser (>= 3.0.1.1)
106
+ rubocop-rake (0.6.0)
107
+ rubocop (~> 1.0)
108
+ rubocop-rspec (2.4.0)
109
+ rubocop (~> 1.0)
110
+ rubocop-ast (>= 1.1.0)
111
+ ruby-progressbar (1.11.0)
112
+ ruby2_keywords (0.0.4)
113
+ simplecov (0.21.2)
97
114
  docile (~> 1.1)
98
115
  simplecov-html (~> 0.11)
99
- simplecov-html (0.12.2)
100
- unicode-display_width (1.7.0)
101
- websocket-driver (0.7.3)
116
+ simplecov_json_formatter (~> 0.1)
117
+ simplecov-html (0.12.3)
118
+ simplecov_json_formatter (0.1.3)
119
+ unicode-display_width (2.0.0)
120
+ websocket-driver (0.7.5)
102
121
  websocket-extensions (>= 0.1.0)
103
122
  websocket-extensions (0.1.5)
104
123
 
105
124
  PLATFORMS
106
- ruby
125
+ x86_64-darwin-19
126
+ x86_64-darwin-20
127
+ x86_64-linux
107
128
 
108
129
  DEPENDENCIES
109
130
  byebug
@@ -111,9 +132,9 @@ DEPENDENCIES
111
132
  rake
112
133
  rspec
113
134
  rubocop
114
- rubocop-performance
135
+ rubocop-rake
115
136
  rubocop-rspec
116
137
  salesforce_streamer!
117
138
 
118
139
  BUNDLED WITH
119
- 2.1.4
140
+ 2.2.22
data/README.md CHANGED
@@ -91,6 +91,7 @@ SalesforceStreamer.configure do |config|
91
91
  config.exception_adapter = proc { |e| puts e }
92
92
  config.replay_adapter = MyReplayAdapter
93
93
  config.use_middleware AfterMessageReceived
94
+ config.use_faye_extension ErrorLoggingExtension.new
94
95
  config.manage_topics = true
95
96
  end
96
97
  ```
@@ -173,6 +174,32 @@ end
173
174
 
174
175
  This adapter will be used directly by `Restforce::ReplayExtension`.
175
176
 
177
+ ### Use Faye Extension
178
+
179
+ The `config.use_faye_extension` should be given an object that responds to
180
+ `.incoming(message, callback)` or `.outgoing(message, callback)` or both. Find
181
+ out more about extensions from
182
+ [Faye](https://github.com/faye/faye/blob/master/spec/ruby/server/extensions_spec.rb)
183
+ specs.
184
+
185
+ Any configured extensions are added to the Faye client used by the Restforce
186
+ client when starting up the server. If the extension responds to `.server=` then
187
+ the instance of `SalesforceStreamer::Server` is assigned. This may be convenient
188
+ to restart the server subscriptions if an error requires a reset.
189
+
190
+ ```ruby
191
+ class MyRestartFayeExtension
192
+ attr_accessor :server
193
+
194
+ def incoming(message, callback)
195
+ callback.call(message).tap |message|
196
+ server.restart if message['error'] == 'tragic'
197
+ end
198
+ end
199
+ end
200
+
201
+ SalesforceStreamer.config.use_faye_extension MyRestartFayeExtension.new
202
+ ```
176
203
  ## Development
177
204
 
178
205
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake rspec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -1,27 +1,69 @@
1
+ require 'cookiejar/cookie_validation'
2
+
1
3
  # Original source code at
2
4
  # https://github.com/dwaite/cookiejar/blob/master/lib/cookiejar/cookie_validation.rb
3
- # Re-opening the CookieValidation module to rewrite the domains_match method to
4
- # skip the validation of domains. Open issue at
5
- # https://github.com/restforce/restforce/issues/120
6
- module CoreExtensions
7
- module CookieJar
8
- module CookieValidation
9
- def self.extended(base)
10
- base.class_eval do
11
- def self.domains_match(tested_domain, base_domain)
12
- return true if tested_domain[-15..].eql?('.salesforce.com')
5
+ module CookieJar
6
+ module CookieValidation
7
+ # Re-opening the CookieValidation module to rewrite the domains_match method to
8
+ # skip the validation of domains. Open issue at
9
+ # https://github.com/restforce/restforce/issues/120
10
+ def self.domains_match(tested_domain, base_domain)
11
+ return true if tested_domain[-15..].eql?('.salesforce.com')
12
+
13
+ # original implementation
14
+ base = effective_host base_domain
15
+ search_domains = compute_search_domains_for_host base
16
+ search_domains.find do |domain|
17
+ domain == tested_domain
18
+ end
19
+ end
13
20
 
14
- # original implementation
15
- base = effective_host base_domain
16
- search_domains = compute_search_domains_for_host base
17
- search_domains.find do |domain|
18
- domain == tested_domain
21
+ # Implements https://github.com/dwaite/cookiejar/commit/adb79c0a14c2b347c5289e79379a1acfe34bf388
22
+ # which is not part of the cookiejar gem yet and is required to prevent
23
+ # Unknown cookie parameter 'samesite' (CookieJar::InvalidCookieError)
24
+ def self.parse_set_cookie(set_cookie_value)
25
+ args = {}
26
+ params = set_cookie_value.split(/;\s*/)
27
+
28
+ first = true
29
+ params.each do |param|
30
+ result = PARAM1.match param
31
+ unless result
32
+ fail InvalidCookieError,
33
+ "Invalid cookie parameter in cookie '#{set_cookie_value}'"
34
+ end
35
+ key = result[1].downcase.to_sym
36
+ keyvalue = result[2]
37
+ if first
38
+ args[:name] = result[1]
39
+ args[:value] = keyvalue
40
+ first = false
41
+ else
42
+ case key
43
+ when :expires
44
+ begin
45
+ args[:expires_at] = Time.parse keyvalue
46
+ rescue ArgumentError
47
+ raise unless $ERROR_INFO.message == 'time out of range'
48
+ args[:expires_at] = Time.at(0x7FFFFFFF)
19
49
  end
50
+ when :'max-age'
51
+ args[:max_age] = keyvalue.to_i
52
+ when :domain, :path
53
+ args[key] = keyvalue
54
+ when :secure
55
+ args[:secure] = true
56
+ when :httponly
57
+ args[:http_only] = true
58
+ when :samesite
59
+ args[:samesite] = keyvalue.downcase
60
+ else
61
+ fail InvalidCookieError, "Unknown cookie parameter '#{key}'"
20
62
  end
21
63
  end
22
64
  end
65
+ args[:version] = 0
66
+ args
23
67
  end
24
68
  end
25
69
  end
26
-
27
- CookieJar::CookieValidation.extend(CoreExtensions::CookieJar::CookieValidation)
@@ -3,7 +3,7 @@ module SalesforceStreamer
3
3
  class Configuration
4
4
  attr_accessor :environment, :logger, :require_path, :config_file,
5
5
  :manage_topics, :exception_adapter, :replay_adapter
6
- attr_reader :middleware
6
+ attr_reader :middleware, :faye_extensions
7
7
 
8
8
  class << self
9
9
  attr_writer :instance
@@ -26,6 +26,7 @@ module SalesforceStreamer
26
26
  @config_file = './config/streamer.yml'
27
27
  @require_path = './config/environment'
28
28
  @middleware = []
29
+ @faye_extensions = [ReplayIdErrorExtension.new]
29
30
  end
30
31
 
31
32
  def manage_topics?
@@ -37,6 +38,11 @@ module SalesforceStreamer
37
38
  @middleware << [klass, args, block]
38
39
  end
39
40
 
41
+ # adds a Faye extension
42
+ def use_faye_extension(extension)
43
+ @faye_extensions << extension
44
+ end
45
+
40
46
  # returns a ready to use chain of middleware
41
47
  def middleware_runner(last_handler)
42
48
  @middleware.reduce(last_handler) do |next_handler, current_handler|
@@ -36,7 +36,7 @@ module SalesforceStreamer
36
36
  @push_topics = []
37
37
  Configuration.instance.push_topic_data.each_value do |topic_data|
38
38
  Log.debug topic_data.to_s
39
- @push_topics << PushTopic.new(topic_data.transform_keys(&:to_sym))
39
+ @push_topics << PushTopic.new(**topic_data.transform_keys(&:to_sym))
40
40
  end
41
41
  end
42
42
  end
@@ -4,11 +4,11 @@ module SalesforceStreamer
4
4
  extend Dry::Initializer
5
5
 
6
6
  option :name
7
- option :query, proc { |str| str.gsub(/\s+/, ' ') }
8
- option :handler, proc { |str| prepare_handler_proc Object.const_get(str) }
9
- option :replay, proc(&:to_i), default: proc { -1 }
10
- option :api_version, proc(&:to_s), default: proc { '49.0' }
11
- option :notify_for_fields, default: proc { 'Referenced' }
7
+ option :query, ->(v) { v.gsub(/\s+/, ' ') }
8
+ option :handler, ->(v) { prepare_handler_proc(Object.const_get(v)) }
9
+ option :replay, ->(v) { v.to_i }, default: -> { -1 }
10
+ option :api_version, proc(&:to_s), default: -> { '49.0' }
11
+ option :notify_for_fields, default: -> { 'Referenced' }
12
12
  option :id, optional: true
13
13
  option :description, optional: true
14
14
 
@@ -1,6 +1,6 @@
1
1
  module SalesforceStreamer
2
2
  class ReplayIdErrorExtension
3
- REPLAY_ERROR_REGEX = /^400::The replayId /.freeze
3
+ REPLAY_ERROR_REGEX = /^400::The replayId /
4
4
 
5
5
  def incoming(message, callback)
6
6
  if message['error']&.match?(REPLAY_ERROR_REGEX)
@@ -1,15 +1,23 @@
1
1
  module SalesforceStreamer
2
2
  class Server
3
3
  attr_writer :push_topics
4
+ attr_reader :client
4
5
 
5
6
  def initialize(push_topics: [])
6
7
  @push_topics = push_topics
7
8
  end
8
9
 
9
10
  def run
10
- Log.info 'Starting Server'
11
+ Log.info 'Starting server'
11
12
  catch_signals
12
- start_em
13
+ reset_client
14
+ EM.run { subscribe }
15
+ end
16
+
17
+ def restart
18
+ Log.info 'Restarting server'
19
+ reset_client
20
+ EM.next_tick { subscribe }
13
21
  end
14
22
 
15
23
  private
@@ -23,21 +31,21 @@ module SalesforceStreamer
23
31
  end
24
32
  end
25
33
 
26
- def client
27
- return @client if @client
34
+ def reset_client
28
35
  @client = Restforce.new
29
- @client.authenticate!
30
- @client.faye.add_extension ReplayIdErrorExtension.new
31
- @client
36
+ client.authenticate!
37
+ Configuration.instance.faye_extensions.each do |extension|
38
+ Log.debug %(adding Faye extension #{extension})
39
+ extension.server = self if extension.respond_to?(:server=)
40
+ client.faye.add_extension extension
41
+ end
32
42
  end
33
43
 
34
- def start_em
35
- EM.run do
36
- @push_topics.map do |topic|
37
- client.subscribe topic.name, replay: Configuration.instance.replay_adapter do |message|
38
- Log.info "Message #{message.dig('event', 'replayId')} received from topic #{topic.name}"
39
- topic.handle message
40
- end
44
+ def subscribe
45
+ @push_topics.each do |topic|
46
+ client.subscribe topic.name, replay: Configuration.instance.replay_adapter do |message|
47
+ Log.info "Message #{message.dig('event', 'replayId')} received from topic #{topic.name}"
48
+ topic.handle message
41
49
  end
42
50
  end
43
51
  end
@@ -1,3 +1,3 @@
1
1
  module SalesforceStreamer
2
- VERSION = '2.1.1'.freeze
2
+ VERSION = '2.5.0'.freeze
3
3
  end
@@ -25,15 +25,19 @@ Gem::Specification.new do |spec|
25
25
 
26
26
  spec.required_ruby_version = '>= 2.6'
27
27
 
28
+ spec.add_dependency 'cookiejar', '~> 0.3.0'
28
29
  spec.add_dependency 'dry-initializer', '~> 3.0'
29
30
  spec.add_dependency 'faye', '~> 1.4'
30
- spec.add_dependency 'restforce', '>= 4.2', '< 6.0'
31
+ spec.add_dependency 'restforce', '~> 5.0'
32
+ # # When you have issues installing eventmachine on osx and ruby 3, try:
33
+ # gem install eventmachine -- --with-openssl-dir=/usr/local/opt/openssl@1.1
34
+ spec.add_dependency 'eventmachine', '~> 1.2'
31
35
 
32
36
  spec.add_development_dependency 'byebug'
33
37
  spec.add_development_dependency 'codecov'
34
38
  spec.add_development_dependency 'rake'
35
39
  spec.add_development_dependency 'rspec'
36
40
  spec.add_development_dependency 'rubocop'
37
- spec.add_development_dependency 'rubocop-performance'
41
+ spec.add_development_dependency 'rubocop-rake'
38
42
  spec.add_development_dependency 'rubocop-rspec'
39
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: salesforce_streamer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Serok
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-09-02 00:00:00.000000000 Z
12
+ date: 2021-07-08 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: cookiejar
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 0.3.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 0.3.0
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: dry-initializer
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -43,22 +57,30 @@ dependencies:
43
57
  name: restforce
44
58
  requirement: !ruby/object:Gem::Requirement
45
59
  requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '4.2'
49
- - - "<"
60
+ - - "~>"
50
61
  - !ruby/object:Gem::Version
51
- version: '6.0'
62
+ version: '5.0'
52
63
  type: :runtime
53
64
  prerelease: false
54
65
  version_requirements: !ruby/object:Gem::Requirement
55
66
  requirements:
56
- - - ">="
67
+ - - "~>"
57
68
  - !ruby/object:Gem::Version
58
- version: '4.2'
59
- - - "<"
69
+ version: '5.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: eventmachine
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '1.2'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
60
82
  - !ruby/object:Gem::Version
61
- version: '6.0'
83
+ version: '1.2'
62
84
  - !ruby/object:Gem::Dependency
63
85
  name: byebug
64
86
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +152,7 @@ dependencies:
130
152
  - !ruby/object:Gem::Version
131
153
  version: '0'
132
154
  - !ruby/object:Gem::Dependency
133
- name: rubocop-performance
155
+ name: rubocop-rake
134
156
  requirement: !ruby/object:Gem::Requirement
135
157
  requirements:
136
158
  - - ">="
@@ -166,12 +188,14 @@ executables:
166
188
  extensions: []
167
189
  extra_rdoc_files: []
168
190
  files:
191
+ - ".bundler-version"
169
192
  - ".dependabot/config.yml"
170
193
  - ".github/ISSUE_TEMPLATE/bug_report.md"
171
194
  - ".github/ISSUE_TEMPLATE/config.yml"
172
195
  - ".github/ISSUE_TEMPLATE/story.md"
173
196
  - ".github/PULL_REQUEST_TEMPLATE.md"
174
197
  - ".github/workflows/auto-approve.yml"
198
+ - ".github/workflows/auto-merge.yml"
175
199
  - ".gitignore"
176
200
  - ".rspec"
177
201
  - ".travis.yml"
@@ -218,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
218
242
  - !ruby/object:Gem::Version
219
243
  version: '0'
220
244
  requirements: []
221
- rubygems_version: 3.1.2
245
+ rubygems_version: 3.2.15
222
246
  signing_key:
223
247
  specification_version: 4
224
248
  summary: A wrapper around the Restforce Streaming API with a built-in PushTopic manager.