Module: Google::Cloud::Pubsub

Defined in:
lib/google/cloud/pubsub.rb,
lib/google/cloud/pubsub/topic.rb,
lib/google/cloud/pubsub/policy.rb,
lib/google/cloud/pubsub/convert.rb,
lib/google/cloud/pubsub/message.rb,
lib/google/cloud/pubsub/project.rb,
lib/google/cloud/pubsub/service.rb,
lib/google/cloud/pubsub/version.rb,
lib/google/cloud/pubsub/snapshot.rb,
lib/google/cloud/pubsub/subscriber.rb,
lib/google/cloud/pubsub/topic/list.rb,
lib/google/cloud/pubsub/credentials.rb,
lib/google/cloud/pubsub/subscription.rb,
lib/google/cloud/pubsub/snapshot/list.rb,
lib/google/cloud/pubsub/publish_result.rb,
lib/google/cloud/pubsub/async_publisher.rb,
lib/google/cloud/pubsub/batch_publisher.rb,
lib/google/cloud/pubsub/v1/doc/overview.rb,
lib/google/cloud/pubsub/received_message.rb,
lib/google/cloud/pubsub/subscriber/stream.rb,
lib/google/cloud/pubsub/subscription/list.rb,
lib/google/cloud/pubsub/v1/publisher_client.rb,
lib/google/cloud/pubsub/v1/subscriber_client.rb,
lib/google/cloud/pubsub/subscriber/async_pusher.rb,
lib/google/cloud/pubsub/subscriber/enumerator_queue.rb

Overview

Ruby Client for Google Cloud Pub/Sub API (Alpha)

Google Cloud Pub/Sub API: Provides reliable, many-to-many, asynchronous messaging between applications.

Quick Start

In order to use this library, you first need to go through the following steps:

  1. Select or create a Cloud Platform project.
  2. Enable the Google Cloud Pub/Sub API.
  3. Setup Authentication.

Installation

$ gem install google-cloud-pubsub

Preview

PublisherClient

require "google/cloud/pubsub"

publisher_client = Google::Cloud::Pubsub::Publisher.new
formatted_project = Google::Cloud::Pubsub::V1::PublisherClient.project_path(project_id)

# Iterate over all results.
publisher_client.list_topics(formatted_project).each do |element|
  # Process element.
end

# Or iterate over results one page at a time.
publisher_client.list_topics(formatted_project).each_page do |page|
  # Process each page at a time.
  page.each do |element|
    # Process element.
  end
end

Next Steps

Defined Under Namespace

Modules: V1 Classes: AsyncPublisher, BatchPublisher, Credentials, Message, Policy, Project, PublishResult, ReceivedMessage, Snapshot, Subscriber, Subscription, Topic

Constant Summary collapse

VERSION =
"0.29.0"

Class Method Summary collapse

Class Method Details

.new(project_id: nil, credentials: nil, scope: nil, timeout: nil, client_config: nil, emulator_host: nil, project: nil, keyfile: nil) ⇒ Google::Cloud::Pubsub::Project

Creates a new object for connecting to the Pub/Sub service. Each call creates a new connection.

For more information on connecting to Google Cloud see the Authentication Guide.

Examples:

require "google/cloud/pubsub"

pubsub = Google::Cloud.pubsub

topic = pubsub.topic "my-topic"
topic.publish "task completed"

Parameters:

  • project_id (String)

    Project identifier for the Pub/Sub service you are connecting to. If not present, the default project for the credentials is used.

  • credentials (String, Hash, Google::Auth::Credentials)

    The path to the keyfile as a String, the contents of the keyfile as a Hash, or a Google::Auth::Credentials object. (See Credentials)

  • scope (String, Array<String>)

    The OAuth 2.0 scopes controlling the set of resources and operations that the connection can access. See Using OAuth 2.0 to Access Google APIs.

    The default scope is:

    • https://www.googleapis.com/auth/pubsub
  • timeout (Integer)

    Default timeout to use in requests. Optional.

  • client_config (Hash)

    A hash of values to override the default behavior of the API client. Optional.

  • emulator_host (String)

    Pub/Sub emulator host. Optional. If the param is nil, ENV["PUBSUB_EMULATOR_HOST"] will be used.

  • project (String)

    Alias for the project_id argument. Deprecated.

  • keyfile (String)

    Alias for the credentials argument. Deprecated.

Returns:



525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
# File 'lib/google/cloud/pubsub.rb', line 525

def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
             client_config: nil, emulator_host: nil, project: nil,
             keyfile: nil
  project_id ||= (project || Pubsub::Project.default_project_id)
  project_id = project_id.to_s # Always cast to a string
  fail ArgumentError, "project_id is missing" if project_id.empty?

  emulator_host ||= ENV["PUBSUB_EMULATOR_HOST"]
  if emulator_host
    return Pubsub::Project.new(
      Pubsub::Service.new(
        project_id, :this_channel_is_insecure,
        host: emulator_host))
  end

  credentials ||= (keyfile || Pubsub::Credentials.default(scope: scope))
  unless credentials.is_a? Google::Auth::Credentials
    credentials = Pubsub::Credentials.new credentials, scope: scope
  end

  Pubsub::Project.new(
    Pubsub::Service.new(
      project_id, credentials, timeout: timeout,
                               client_config: client_config))
end