def pubsub scope: nil, timeout: nil, client_config: nil
      timeout ||= @timeout
      Google::Cloud.pubsub @project, @keyfile, scope:         scope,
                                               timeout:       timeout,
                                               client_config: client_config
    end
def pubsub scope: nil, timeout: nil, client_config: nil
      timeout ||= @timeout
      Google::Cloud.pubsub @project, @keyfile, scope:         scope,
                                               timeout:       timeout,
                                               client_config: client_config
    end
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
 {file:AUTHENTICATION.md Authentication Guide}.

 @param [String, Array<String>] scope 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](https://developers.google.com/identity/protocols/OAuth2).

   The default scope is:

   * `https://www.googleapis.com/auth/pubsub`
 @param [Integer] timeout Default timeout to use in requests. Optional.
 @param [Hash] client_config A hash of values to override the default
   behavior of the API client. Optional.

 @return [Google::Cloud::PubSub::Project]

 @example
   require "google/cloud"

   gcloud = Google::Cloud.new
   pubsub = gcloud.pubsub
   topic = pubsub.topic "my-topic"
   topic.publish "task completed"

 @example The default scope can be overridden with the `scope` option:
   require "google/cloud"

   gcloud  = Google::Cloud.new
   platform_scope = "https://www.googleapis.com/auth/cloud-platform"
   pubsub = gcloud.pubsub scope: platform_scope