class PubsubClient::SubscriberFactory

Public Class Methods

new() click to toggle source
# File lib/pubsub_client/subscriber_factory.rb, line 7
def initialize
  @subscribers = {}
end

Public Instance Methods

build(subscription_name) click to toggle source

@param subscription_name [String] @retrun [Subscriber]

# File lib/pubsub_client/subscriber_factory.rb, line 13
def build(subscription_name)
  if @subscribers.key?(subscription_name)
    raise ConfigurationError, "PubsubClient already subscribed to #{subscription_name}"
  end

  @subscribers[subscription_name] = build_subscriber(subscription_name)
end

Private Instance Methods

build_subscriber(subscription_name) click to toggle source
# File lib/pubsub_client/subscriber_factory.rb, line 23
def build_subscriber(subscription_name)
  pubsub = Google::Cloud::PubSub.new
  subscription = pubsub.subscription(subscription_name)
  raise InvalidSubscriptionError, "The subscription #{subscription_name} does not exist" unless subscription
  Subscriber.new(subscription)
end