salesforce_streamer 2.0.0.rc2 → 2.0.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/Gemfile.lock +2 -2
- data/README.md +29 -36
- data/lib/salesforce_streamer/version.rb +1 -1
- data/salesforce_streamer.gemspec +1 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10b71d8f30b4e9eedff2ecabc48ec52d71f276abec73808f80c87d810d3307bb
|
4
|
+
data.tar.gz: 377f0fcaf7ccf7c44d1eaf615c12fd9e9e6b5f0fb981cd3e8268db4190c7cb23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59b6418e352e58af09b4e7ba6068bebed370af67feb896d3f0bba73ca1a8741b0bf73d3e67f2ad5dfe0c846694de311e877f0732672d6525cc565b93ffe507c7
|
7
|
+
data.tar.gz: 6d4d7dfd2baeb69fb0e7c1487a6ded133a7ab9ec4bcbd6c43a4615ceadeadd2b52df780719bef5a7fa34d96d9fed962a8c2a8d916b1e558c62657c0c4948983e
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
salesforce_streamer (2.0.0
|
4
|
+
salesforce_streamer (2.0.0)
|
5
5
|
dry-initializer (~> 3.0)
|
6
6
|
faye (~> 1.4)
|
7
7
|
restforce (>= 4.2, < 6.0)
|
@@ -60,7 +60,7 @@ GEM
|
|
60
60
|
rainbow (3.0.0)
|
61
61
|
rake (13.0.1)
|
62
62
|
regexp_parser (1.7.1)
|
63
|
-
restforce (5.0.
|
63
|
+
restforce (5.0.1)
|
64
64
|
faraday (>= 0.9.0, <= 2.0)
|
65
65
|
faraday_middleware (>= 0.8.8, <= 2.0)
|
66
66
|
hashie (>= 1.2.0, < 5.0)
|
data/README.md
CHANGED
@@ -20,33 +20,11 @@ And then execute:
|
|
20
20
|
|
21
21
|
## Usage
|
22
22
|
|
23
|
-
### Middleware
|
24
|
-
|
25
|
-
You can initialize the streamer server with any number of middleware classes.
|
26
|
-
When a message is received by a PushTopic subscription, the chain of middleware
|
27
|
-
classes are executed before the message handler is called.
|
28
|
-
|
29
|
-
```ruby
|
30
|
-
# config/initializers/streamer.rb
|
31
|
-
class MySimpleMiddleware
|
32
|
-
def initialize(handler)
|
33
|
-
@handler = handler
|
34
|
-
end
|
35
|
-
def call(message)
|
36
|
-
@handler.call(message)
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
SalesforceStreamer.config.use_middleware MySimpleMiddleware
|
41
|
-
```
|
42
|
-
|
43
23
|
### Configure Push Topics
|
44
24
|
|
45
|
-
Create a YAML file to configure your
|
46
|
-
|
47
|
-
|
48
|
-
line. For more information about the `replay:` and `notify_fields_for` options
|
49
|
-
please see the Salesforce Streaming API reference documentation.
|
25
|
+
Create a YAML file to configure your PushTopic subscriptions. When streamer
|
26
|
+
starts up it will check for any differences between Salesforce PushTopics and
|
27
|
+
this yaml and update any differences when `config.manage_topics = true`.
|
50
28
|
|
51
29
|
```yaml
|
52
30
|
# config/streamer.yml
|
@@ -71,14 +49,6 @@ production:
|
|
71
49
|
<<: *DEFAULT
|
72
50
|
```
|
73
51
|
|
74
|
-
It's important to note that the way push topics are managed is by the Salesforce
|
75
|
-
name attribute. This should uniquely identify each push topic. It is not
|
76
|
-
recommended to change the name of your push topic definitions; otherwise, the
|
77
|
-
push topic manager will not find a push topic in Salesforce resulting in the
|
78
|
-
creation of a brand new push topic. If the push topic manager identifies a
|
79
|
-
difference in any of the other Salesforce attributes, then it will update the
|
80
|
-
push topic in Salesforce before starting the streaming server.
|
81
|
-
|
82
52
|
### Define Message Handlers
|
83
53
|
|
84
54
|
Define your handlers somewhere in your project. They must respond to either
|
@@ -88,14 +58,17 @@ Define your handlers somewhere in your project. They must respond to either
|
|
88
58
|
# lib/account_change_handler.rb
|
89
59
|
# Handle account changes inline
|
90
60
|
class AccountChangeHandler
|
91
|
-
|
92
|
-
|
61
|
+
class << self
|
62
|
+
def call(message)
|
63
|
+
puts message
|
64
|
+
end
|
93
65
|
end
|
94
66
|
end
|
95
67
|
|
96
68
|
# Handle account changes asynchronously
|
97
69
|
class AccountChangeHandler
|
98
70
|
include Sidekiq::Worker
|
71
|
+
|
99
72
|
def perform(message)
|
100
73
|
puts message
|
101
74
|
end
|
@@ -117,7 +90,7 @@ SalesforceStreamer.configure do |config|
|
|
117
90
|
config.logger = Logger.new(STDERR, level: 'INFO')
|
118
91
|
config.exception_adapter = proc { |e| puts e }
|
119
92
|
config.replay_adapter = proc { |topic|
|
120
|
-
(
|
93
|
+
(ReplayStore.get(topic.name) || topic.replay).to_i
|
121
94
|
}
|
122
95
|
config.use_middleware AfterMessageReceived
|
123
96
|
config.manage_topics = true
|
@@ -160,6 +133,26 @@ By default, the executable will load the YAML based on the `RACK_ENV` environmen
|
|
160
133
|
variable, or default to `:development` if not set. You can override this by
|
161
134
|
setting the `config.environment = :integration`
|
162
135
|
|
136
|
+
### Message Handling Middleware
|
137
|
+
|
138
|
+
You can initialize the streamer server with any number of middleware classes.
|
139
|
+
When a message is received by a PushTopic subscription, the chain of middleware
|
140
|
+
classes are executed before the message handler is called.
|
141
|
+
|
142
|
+
```ruby
|
143
|
+
# config/initializers/streamer.rb
|
144
|
+
class MySimpleMiddleware
|
145
|
+
def initialize(handler)
|
146
|
+
@handler = handler
|
147
|
+
end
|
148
|
+
|
149
|
+
def call(message)
|
150
|
+
@handler.call(message)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
SalesforceStreamer.config.use_middleware MySimpleMiddleware
|
155
|
+
```
|
163
156
|
## Development
|
164
157
|
|
165
158
|
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.
|
data/salesforce_streamer.gemspec
CHANGED
@@ -14,6 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
|
15
15
|
spec.metadata['homepage_uri'] = spec.homepage
|
16
16
|
spec.metadata['source_code_uri'] = spec.homepage
|
17
|
+
spec.metadata['documentation_uri'] = 'https://www.rubydoc.info/gems/salesforce_streamer'
|
17
18
|
|
18
19
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
19
20
|
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(bin/|spec/|\.rub)}) }
|
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.0.0
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Serok
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-08-
|
12
|
+
date: 2020-08-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dry-initializer
|
@@ -202,6 +202,7 @@ licenses:
|
|
202
202
|
metadata:
|
203
203
|
homepage_uri: https://github.com/renofi/salesforce_streamer
|
204
204
|
source_code_uri: https://github.com/renofi/salesforce_streamer
|
205
|
+
documentation_uri: https://www.rubydoc.info/gems/salesforce_streamer
|
205
206
|
post_install_message:
|
206
207
|
rdoc_options: []
|
207
208
|
require_paths:
|
@@ -213,9 +214,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
213
214
|
version: '2.6'
|
214
215
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
216
|
requirements:
|
216
|
-
- - "
|
217
|
+
- - ">="
|
217
218
|
- !ruby/object:Gem::Version
|
218
|
-
version:
|
219
|
+
version: '0'
|
219
220
|
requirements: []
|
220
221
|
rubygems_version: 3.1.2
|
221
222
|
signing_key:
|