salesforce_streamer 0.3.0 → 0.4.0
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/.gitignore +4 -2
- data/.rubocop.yml +8 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -2
- data/Gemfile +0 -2
- data/Gemfile.lock +43 -23
- data/Rakefile +3 -3
- data/bin/console +0 -2
- data/exe/streamer +0 -2
- data/lib/core_extensions/cookiejar/cookie_validation.rb +0 -2
- data/lib/salesforce_streamer/cli.rb +1 -4
- data/lib/salesforce_streamer/configuration.rb +1 -3
- data/lib/salesforce_streamer/errors.rb +0 -2
- data/lib/salesforce_streamer/launcher.rb +4 -6
- data/lib/salesforce_streamer/message_receiver.rb +0 -2
- data/lib/salesforce_streamer/push_topic.rb +5 -7
- data/lib/salesforce_streamer/redis_replay.rb +3 -5
- data/lib/salesforce_streamer/replay_persistence.rb +0 -2
- data/lib/salesforce_streamer/salesforce_client.rb +9 -11
- data/lib/salesforce_streamer/server.rb +5 -5
- data/lib/salesforce_streamer/topic_manager.rb +0 -2
- data/lib/salesforce_streamer/version.rb +1 -3
- data/lib/salesforce_streamer.rb +0 -2
- data/salesforce_streamer.gemspec +11 -22
- metadata +52 -37
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0b2b0f558cddea62f7daa6836378714c462efee9041651c018a3c03ba12f9e37
|
|
4
|
+
data.tar.gz: 0b78a376cc983420c7d0306db33ad81c91d29817048893f975b9647d748ccc75
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9a94f0948ab22945f7609e8164330fb273eb32c3366e259fb40ea9b8dd0b39d7b7634972df36af6c4e2e57ce5cf43ee48d9e9ec6c6f46f61354c58144ee68c98
|
|
7
|
+
data.tar.gz: 4759ab638d353562eeda92be76d660314d7ea37b2bc7f2e2290cf1502f58282e63e8672bb15eeffd093600ae87fb9e63911e67cbfdd47a196697369c75a88983
|
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2.6.5
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
salesforce_streamer (0.
|
|
4
|
+
salesforce_streamer (0.4.0)
|
|
5
5
|
faye (= 0.8.9)
|
|
6
|
-
restforce (~>
|
|
6
|
+
restforce (~> 4.2)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
11
|
addressable (2.7.0)
|
|
12
12
|
public_suffix (>= 2.0.2, < 5.0)
|
|
13
|
+
ast (2.4.0)
|
|
13
14
|
byebug (11.0.1)
|
|
14
|
-
codecov (0.1.
|
|
15
|
+
codecov (0.1.16)
|
|
15
16
|
json
|
|
16
17
|
simplecov
|
|
17
18
|
url
|
|
@@ -27,7 +28,7 @@ GEM
|
|
|
27
28
|
em-socksify (0.3.2)
|
|
28
29
|
eventmachine (>= 1.0.0.beta.4)
|
|
29
30
|
eventmachine (1.2.7)
|
|
30
|
-
faraday (0.17.
|
|
31
|
+
faraday (0.17.1)
|
|
31
32
|
multipart-post (>= 1.2, < 3)
|
|
32
33
|
faraday_middleware (0.13.1)
|
|
33
34
|
faraday (>= 0.7.4, < 1.0)
|
|
@@ -43,34 +44,52 @@ GEM
|
|
|
43
44
|
websocket-driver (>= 0.5.1)
|
|
44
45
|
hashie (3.6.0)
|
|
45
46
|
http_parser.rb (0.6.0)
|
|
47
|
+
jaro_winkler (1.5.4)
|
|
46
48
|
json (2.2.0)
|
|
49
|
+
jwt (2.2.1)
|
|
47
50
|
multipart-post (2.1.1)
|
|
51
|
+
parallel (1.19.1)
|
|
52
|
+
parser (2.6.5.0)
|
|
53
|
+
ast (~> 2.4.0)
|
|
48
54
|
public_suffix (4.0.1)
|
|
49
55
|
rack (2.0.7)
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
rainbow (3.0.0)
|
|
57
|
+
rake (13.0.1)
|
|
58
|
+
restforce (4.2.0)
|
|
52
59
|
faraday (>= 0.9.0, <= 1.0)
|
|
53
60
|
faraday_middleware (>= 0.8.8, <= 1.0)
|
|
54
61
|
hashie (>= 1.2.0, < 4.0)
|
|
55
62
|
json (>= 1.7.5)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
rspec-
|
|
59
|
-
rspec-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
jwt (>= 1.5.6)
|
|
64
|
+
rspec (3.9.0)
|
|
65
|
+
rspec-core (~> 3.9.0)
|
|
66
|
+
rspec-expectations (~> 3.9.0)
|
|
67
|
+
rspec-mocks (~> 3.9.0)
|
|
68
|
+
rspec-core (3.9.0)
|
|
69
|
+
rspec-support (~> 3.9.0)
|
|
70
|
+
rspec-expectations (3.9.0)
|
|
63
71
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
64
|
-
rspec-support (~> 3.
|
|
65
|
-
rspec-mocks (3.
|
|
72
|
+
rspec-support (~> 3.9.0)
|
|
73
|
+
rspec-mocks (3.9.0)
|
|
66
74
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
67
|
-
rspec-support (~> 3.
|
|
68
|
-
rspec-support (3.
|
|
69
|
-
|
|
75
|
+
rspec-support (~> 3.9.0)
|
|
76
|
+
rspec-support (3.9.0)
|
|
77
|
+
rubocop (0.76.0)
|
|
78
|
+
jaro_winkler (~> 1.5.1)
|
|
79
|
+
parallel (~> 1.10)
|
|
80
|
+
parser (>= 2.6)
|
|
81
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
82
|
+
ruby-progressbar (~> 1.7)
|
|
83
|
+
unicode-display_width (>= 1.4.0, < 1.7)
|
|
84
|
+
rubocop-performance (1.5.1)
|
|
85
|
+
rubocop (>= 0.71.0)
|
|
86
|
+
ruby-progressbar (1.10.1)
|
|
87
|
+
simplecov (0.17.1)
|
|
70
88
|
docile (~> 1.1)
|
|
71
89
|
json (>= 1.8, < 3)
|
|
72
90
|
simplecov-html (~> 0.10.0)
|
|
73
91
|
simplecov-html (0.10.2)
|
|
92
|
+
unicode-display_width (1.6.0)
|
|
74
93
|
url (0.3.2)
|
|
75
94
|
websocket-driver (0.7.1)
|
|
76
95
|
websocket-extensions (>= 0.1.0)
|
|
@@ -81,11 +100,12 @@ PLATFORMS
|
|
|
81
100
|
ruby
|
|
82
101
|
|
|
83
102
|
DEPENDENCIES
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
103
|
+
byebug
|
|
104
|
+
codecov
|
|
105
|
+
rake
|
|
106
|
+
rspec
|
|
107
|
+
rubocop
|
|
108
|
+
rubocop-performance
|
|
89
109
|
salesforce_streamer!
|
|
90
110
|
|
|
91
111
|
BUNDLED WITH
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
data/exe/streamer
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
module SalesforceStreamer
|
|
4
2
|
class CLI
|
|
5
3
|
def initialize(argv)
|
|
@@ -21,8 +19,7 @@ module SalesforceStreamer
|
|
|
21
19
|
@config.config_file = arg
|
|
22
20
|
end
|
|
23
21
|
|
|
24
|
-
o.on '-e', '--environment ENVIRONMENT',
|
|
25
|
-
'The environment to run the app on (default development)' do |arg|
|
|
22
|
+
o.on '-e', '--environment ENVIRONMENT', 'The environment to run the app on (default development)' do |arg|
|
|
26
23
|
@config.environment = arg
|
|
27
24
|
end
|
|
28
25
|
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
module SalesforceStreamer
|
|
4
2
|
# Manages server configuration.
|
|
5
3
|
class Configuration
|
|
@@ -16,7 +14,7 @@ module SalesforceStreamer
|
|
|
16
14
|
def initialize
|
|
17
15
|
@environment = ENV['RACK_ENV'] || :development
|
|
18
16
|
@logger = Logger.new(IO::NULL)
|
|
19
|
-
@exception_adapter = proc { |exc|
|
|
17
|
+
@exception_adapter = proc { |exc| fail(exc) }
|
|
20
18
|
@persistence_adapter = RedisReplay.new
|
|
21
19
|
@manage_topics = false
|
|
22
20
|
@config_file = './config/streamer.yml'
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
module SalesforceStreamer
|
|
4
2
|
# SalesforceStreamer::Launcher is the entry point for starting the Restforce
|
|
5
3
|
# Streaming API server. It is responsible for upserting each PushTopic and
|
|
@@ -27,10 +25,10 @@ module SalesforceStreamer
|
|
|
27
25
|
end
|
|
28
26
|
|
|
29
27
|
def require_application
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
return unless Configuration.instance.require_path
|
|
29
|
+
|
|
30
|
+
Log.debug 'Loading the require path'
|
|
31
|
+
require Configuration.instance.require_path
|
|
34
32
|
end
|
|
35
33
|
|
|
36
34
|
def initialize_push_topics
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
module SalesforceStreamer
|
|
4
2
|
# Models the PushTopic object for both Restforce and Streamer
|
|
5
3
|
class PushTopic
|
|
6
4
|
attr_accessor :id
|
|
7
5
|
attr_reader :name, :description, :notify_for_fields, :query,
|
|
8
|
-
|
|
6
|
+
:handler, :handler_constant, :api_version
|
|
9
7
|
|
|
10
8
|
def initialize(data:)
|
|
11
9
|
@handler = data['handler']
|
|
@@ -19,8 +17,8 @@ module SalesforceStreamer
|
|
|
19
17
|
end
|
|
20
18
|
|
|
21
19
|
def replay
|
|
22
|
-
@replay ||= (ReplayPersistence.retrieve(name) || @static_replay).tap do |
|
|
23
|
-
Log.info "PushTopic name=#{name} starting at replayId=#{
|
|
20
|
+
@replay ||= (ReplayPersistence.retrieve(name) || @static_replay).tap do |replay_id|
|
|
21
|
+
Log.info "PushTopic name=#{name} starting at replayId=#{replay_id}"
|
|
24
22
|
end
|
|
25
23
|
end
|
|
26
24
|
|
|
@@ -33,7 +31,7 @@ module SalesforceStreamer
|
|
|
33
31
|
private
|
|
34
32
|
|
|
35
33
|
def validate!
|
|
36
|
-
|
|
34
|
+
fail(PushTopicNameTooLongError, @name) if @name.size > 25
|
|
37
35
|
|
|
38
36
|
@handler_constant = Object.const_get(@handler)
|
|
39
37
|
true
|
|
@@ -43,7 +41,7 @@ module SalesforceStreamer
|
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
def strip_spaces(str)
|
|
46
|
-
|
|
44
|
+
fail(NilQueryError, @name) unless str
|
|
47
45
|
|
|
48
46
|
str.gsub(/\s+/, ' ')
|
|
49
47
|
end
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
module SalesforceStreamer
|
|
4
2
|
class RedisReplay
|
|
5
3
|
class << self
|
|
6
4
|
def redis_connection
|
|
7
|
-
@redis_connection ||= Configuration.instance.redis_connection ||
|
|
5
|
+
@redis_connection ||= Configuration.instance.redis_connection || fail(RedisConnectionError)
|
|
8
6
|
end
|
|
9
7
|
|
|
10
8
|
attr_writer :redis_connection
|
|
@@ -27,7 +25,7 @@ module SalesforceStreamer
|
|
|
27
25
|
key = namespaced_key(key)
|
|
28
26
|
value = Integer(value)
|
|
29
27
|
connection { |c| c.setex key, SECONDS_TO_EXPIRE, value }
|
|
30
|
-
rescue StandardError
|
|
28
|
+
rescue StandardError => e
|
|
31
29
|
Configuration.instance.exception_adapter.call e
|
|
32
30
|
nil
|
|
33
31
|
end
|
|
@@ -49,7 +47,7 @@ module SalesforceStreamer
|
|
|
49
47
|
NAMESPACE + key.to_s
|
|
50
48
|
end
|
|
51
49
|
|
|
52
|
-
NAMESPACE = 'SalesforceStreamer:'
|
|
50
|
+
NAMESPACE = 'SalesforceStreamer:'.freeze
|
|
53
51
|
SECONDS_TO_EXPIRE = 24 * 60 * 60 # 24 hours
|
|
54
52
|
START = 0
|
|
55
53
|
STOP = 0
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
module SalesforceStreamer
|
|
4
2
|
class SalesforceClient
|
|
5
3
|
def initialize(client: Restforce.new)
|
|
@@ -24,17 +22,17 @@ module SalesforceStreamer
|
|
|
24
22
|
|
|
25
23
|
# Returns true or raises an exception if the upsert fails
|
|
26
24
|
def upsert_push_topic(push_topic)
|
|
27
|
-
@client.upsert!(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
@client.upsert!(
|
|
26
|
+
'PushTopic', :Id,
|
|
27
|
+
'Id' => push_topic.id,
|
|
28
|
+
'Name' => push_topic.name,
|
|
29
|
+
'ApiVersion' => push_topic.api_version,
|
|
30
|
+
'Description' => push_topic.description,
|
|
31
|
+
'NotifyForFields' => push_topic.notify_for_fields,
|
|
32
|
+
'Query' => push_topic.query
|
|
33
|
+
)
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
private
|
|
37
|
-
|
|
38
36
|
QUERY = <<~SOQL.chomp.freeze
|
|
39
37
|
SELECT Id, Name, ApiVersion, Description, NotifyForFields, Query, isActive
|
|
40
38
|
FROM PushTopic
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
module SalesforceStreamer
|
|
4
2
|
class Server
|
|
5
3
|
attr_writer :push_topics
|
|
6
4
|
|
|
7
5
|
def initialize(push_topics: [])
|
|
8
6
|
@push_topics = push_topics
|
|
9
|
-
@client = Restforce.new
|
|
10
7
|
end
|
|
11
8
|
|
|
12
9
|
def run
|
|
13
|
-
@client.authenticate!
|
|
14
10
|
Log.info 'Starting Server'
|
|
15
11
|
catch_signals
|
|
16
12
|
start_em
|
|
@@ -27,10 +23,14 @@ module SalesforceStreamer
|
|
|
27
23
|
end
|
|
28
24
|
end
|
|
29
25
|
|
|
26
|
+
def client
|
|
27
|
+
Restforce.new.tap(&:authenticate!)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
30
|
def start_em
|
|
31
31
|
EM.run do
|
|
32
32
|
@push_topics.map do |topic|
|
|
33
|
-
|
|
33
|
+
client.subscribe topic.name, replay: topic.replay.to_i do |msg|
|
|
34
34
|
Log.info "Message received from topic #{topic.name}"
|
|
35
35
|
MessageReceiver.call topic.name, topic.handler_constant, msg
|
|
36
36
|
end
|
data/lib/salesforce_streamer.rb
CHANGED
data/salesforce_streamer.gemspec
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
lib = File.expand_path('lib', __dir__)
|
|
4
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
3
|
require 'salesforce_streamer/version'
|
|
@@ -10,24 +8,13 @@ Gem::Specification.new do |spec|
|
|
|
10
8
|
spec.authors = ['Scott Serok']
|
|
11
9
|
spec.email = ['scott@renofi.com']
|
|
12
10
|
|
|
13
|
-
spec.summary = 'A wrapper around the Restforce Streaming API.'
|
|
14
|
-
spec.description = 'A wrapper around the Restforce Streaming API.'
|
|
11
|
+
spec.summary = 'A wrapper around the Restforce Streaming API with a built-in PushTopic manager.'
|
|
15
12
|
spec.homepage = 'https://github.com/renofi/salesforce_streamer'
|
|
16
13
|
spec.license = 'MIT'
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if spec.respond_to?(:metadata)
|
|
21
|
-
spec.metadata['homepage_uri'] = spec.homepage
|
|
22
|
-
spec.metadata['source_code_uri'] = spec.homepage
|
|
23
|
-
spec.metadata['changelog_uri'] = spec.homepage
|
|
24
|
-
else
|
|
25
|
-
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
|
26
|
-
'public gem pushes.'
|
|
27
|
-
end
|
|
15
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
|
16
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
|
28
17
|
|
|
29
|
-
# Specify which files should be added to the gem when it is released.
|
|
30
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
31
18
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
32
19
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
33
20
|
end
|
|
@@ -35,11 +22,13 @@ Gem::Specification.new do |spec|
|
|
|
35
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
36
23
|
spec.require_paths = ['lib']
|
|
37
24
|
|
|
38
|
-
spec.add_development_dependency 'bundler', '~> 2.0'
|
|
39
|
-
spec.add_development_dependency 'byebug', '~> 11.0.1'
|
|
40
|
-
spec.add_development_dependency 'codecov', '~> 0.1.14'
|
|
41
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
|
42
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
43
25
|
spec.add_dependency 'faye', '0.8.9'
|
|
44
|
-
spec.add_dependency 'restforce', '~>
|
|
26
|
+
spec.add_dependency 'restforce', '~> 4.2'
|
|
27
|
+
|
|
28
|
+
spec.add_development_dependency 'byebug'
|
|
29
|
+
spec.add_development_dependency 'codecov'
|
|
30
|
+
spec.add_development_dependency 'rake'
|
|
31
|
+
spec.add_development_dependency 'rspec'
|
|
32
|
+
spec.add_development_dependency 'rubocop'
|
|
33
|
+
spec.add_development_dependency 'rubocop-performance'
|
|
45
34
|
end
|
metadata
CHANGED
|
@@ -1,114 +1,128 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: salesforce_streamer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Scott Serok
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-
|
|
11
|
+
date: 2019-12-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: faye
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - '='
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.8.9
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - '='
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.8.9
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: restforce
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
16
30
|
requirements:
|
|
17
31
|
- - "~>"
|
|
18
32
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '2
|
|
20
|
-
type: :
|
|
33
|
+
version: '4.2'
|
|
34
|
+
type: :runtime
|
|
21
35
|
prerelease: false
|
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
37
|
requirements:
|
|
24
38
|
- - "~>"
|
|
25
39
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '2
|
|
40
|
+
version: '4.2'
|
|
27
41
|
- !ruby/object:Gem::Dependency
|
|
28
42
|
name: byebug
|
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
|
30
44
|
requirements:
|
|
31
|
-
- - "
|
|
45
|
+
- - ">="
|
|
32
46
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
47
|
+
version: '0'
|
|
34
48
|
type: :development
|
|
35
49
|
prerelease: false
|
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
51
|
requirements:
|
|
38
|
-
- - "
|
|
52
|
+
- - ">="
|
|
39
53
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
54
|
+
version: '0'
|
|
41
55
|
- !ruby/object:Gem::Dependency
|
|
42
56
|
name: codecov
|
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
|
44
58
|
requirements:
|
|
45
|
-
- - "
|
|
59
|
+
- - ">="
|
|
46
60
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 0
|
|
61
|
+
version: '0'
|
|
48
62
|
type: :development
|
|
49
63
|
prerelease: false
|
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
65
|
requirements:
|
|
52
|
-
- - "
|
|
66
|
+
- - ">="
|
|
53
67
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 0
|
|
68
|
+
version: '0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: rake
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
58
72
|
requirements:
|
|
59
|
-
- - "
|
|
73
|
+
- - ">="
|
|
60
74
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
75
|
+
version: '0'
|
|
62
76
|
type: :development
|
|
63
77
|
prerelease: false
|
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
79
|
requirements:
|
|
66
|
-
- - "
|
|
80
|
+
- - ">="
|
|
67
81
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
82
|
+
version: '0'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: rspec
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
72
86
|
requirements:
|
|
73
|
-
- - "
|
|
87
|
+
- - ">="
|
|
74
88
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
89
|
+
version: '0'
|
|
76
90
|
type: :development
|
|
77
91
|
prerelease: false
|
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
93
|
requirements:
|
|
80
|
-
- - "
|
|
94
|
+
- - ">="
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
96
|
+
version: '0'
|
|
83
97
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
98
|
+
name: rubocop
|
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
|
86
100
|
requirements:
|
|
87
|
-
- -
|
|
101
|
+
- - ">="
|
|
88
102
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 0
|
|
90
|
-
type: :
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :development
|
|
91
105
|
prerelease: false
|
|
92
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
107
|
requirements:
|
|
94
|
-
- -
|
|
108
|
+
- - ">="
|
|
95
109
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 0
|
|
110
|
+
version: '0'
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
112
|
+
name: rubocop-performance
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
|
101
|
-
- - "
|
|
115
|
+
- - ">="
|
|
102
116
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
104
|
-
type: :
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
105
119
|
prerelease: false
|
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
121
|
requirements:
|
|
108
|
-
- - "
|
|
122
|
+
- - ">="
|
|
109
123
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
111
|
-
description:
|
|
124
|
+
version: '0'
|
|
125
|
+
description:
|
|
112
126
|
email:
|
|
113
127
|
- scott@renofi.com
|
|
114
128
|
executables:
|
|
@@ -118,6 +132,8 @@ extra_rdoc_files: []
|
|
|
118
132
|
files:
|
|
119
133
|
- ".gitignore"
|
|
120
134
|
- ".rspec"
|
|
135
|
+
- ".rubocop.yml"
|
|
136
|
+
- ".ruby-version"
|
|
121
137
|
- ".travis.yml"
|
|
122
138
|
- CODE_OF_CONDUCT.md
|
|
123
139
|
- Gemfile
|
|
@@ -150,7 +166,6 @@ licenses:
|
|
|
150
166
|
metadata:
|
|
151
167
|
homepage_uri: https://github.com/renofi/salesforce_streamer
|
|
152
168
|
source_code_uri: https://github.com/renofi/salesforce_streamer
|
|
153
|
-
changelog_uri: https://github.com/renofi/salesforce_streamer
|
|
154
169
|
post_install_message:
|
|
155
170
|
rdoc_options: []
|
|
156
171
|
require_paths:
|
|
@@ -169,5 +184,5 @@ requirements: []
|
|
|
169
184
|
rubygems_version: 3.0.6
|
|
170
185
|
signing_key:
|
|
171
186
|
specification_version: 4
|
|
172
|
-
summary: A wrapper around the Restforce Streaming API.
|
|
187
|
+
summary: A wrapper around the Restforce Streaming API with a built-in PushTopic manager.
|
|
173
188
|
test_files: []
|