Class: JetstreamBridge::PullSubscriptionBuilder
- Inherits:
-
Object
- Object
- JetstreamBridge::PullSubscriptionBuilder
- Defined in:
- lib/jetstream_bridge/consumer/pull_subscription_builder.rb
Overview
Builds and shims pull subscriptions without requiring JetStream API permissions.
Instance Method Summary collapse
- #build(nats_client) ⇒ Object
-
#initialize(jts, durable, stream_name, filter_subject) ⇒ PullSubscriptionBuilder
constructor
A new instance of PullSubscriptionBuilder.
Constructor Details
#initialize(jts, durable, stream_name, filter_subject) ⇒ PullSubscriptionBuilder
Returns a new instance of PullSubscriptionBuilder.
10 11 12 13 14 15 |
# File 'lib/jetstream_bridge/consumer/pull_subscription_builder.rb', line 10 def initialize(jts, durable, stream_name, filter_subject) @jts = jts @durable = durable @stream_name = stream_name @filter_subject = filter_subject end |
Instance Method Details
#build(nats_client) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/jetstream_bridge/consumer/pull_subscription_builder.rb', line 17 def build(nats_client) prefix = @jts.instance_variable_get(:@prefix) || '$JS.API' deliver = nats_client.new_inbox sub = nats_client.subscribe(deliver) sub.instance_variable_set(:@_jsb_nc, nats_client) sub.instance_variable_set(:@_jsb_deliver, deliver) sub.instance_variable_set(:@_jsb_next_subject, "#{prefix}.CONSUMER.MSG.NEXT.#{@stream_name}.#{@durable}") apply_pull_subscription_extensions(sub) (sub) Logging.info( "Created pull subscription without verification for consumer #{@durable} " \ "(stream=#{@stream_name}, filter=#{@filter_subject})", tag: 'JetstreamBridge::Consumer' ) sub end |