Module: Gcloud

Defined in:
lib/gcloud.rb,
lib/gcloud/gce.rb,
lib/gcloud/dns.rb,
lib/gcloud/pubsub.rb,
lib/gcloud/search.rb,
lib/gcloud/upload.rb,
lib/gcloud/errors.rb,
lib/gcloud/storage.rb,
lib/gcloud/logging.rb,
lib/gcloud/version.rb,
lib/gcloud/backoff.rb,
lib/gcloud/bigquery.rb,
lib/gcloud/dns/zone.rb,
lib/gcloud/datastore.rb,
lib/gcloud/dns/record.rb,
lib/gcloud/dns/change.rb,
lib/gcloud/dns/errors.rb,
lib/gcloud/dns/project.rb,
lib/gcloud/credentials.rb,
lib/gcloud/search/index.rb,
lib/gcloud/dns/importer.rb,
lib/gcloud/bigquery/job.rb,
lib/gcloud/pubsub/topic.rb,
lib/gcloud/storage/file.rb,
lib/gcloud/logging/sink.rb,
lib/gcloud/bigquery/view.rb,
lib/gcloud/search/fields.rb,
lib/gcloud/pubsub/errors.rb,
lib/gcloud/search/errors.rb,
lib/gcloud/bigquery/data.rb,
lib/gcloud/dns/zone/list.rb,
lib/gcloud/search/result.rb,
lib/gcloud/datastore/key.rb,
lib/gcloud/logging/entry.rb,
lib/gcloud/storage/bucket.rb,
lib/gcloud/pubsub/message.rb,
lib/gcloud/dns/connection.rb,
lib/gcloud/logging/errors.rb,
lib/gcloud/storage/errors.rb,
lib/gcloud/logging/metric.rb,
lib/gcloud/bigquery/table.rb,
lib/gcloud/search/project.rb,
lib/gcloud/logging/logger.rb,
lib/gcloud/pubsub/project.rb,
lib/gcloud/storage/project.rb,
lib/gcloud/bigquery/errors.rb,
lib/gcloud/dns/credentials.rb,
lib/gcloud/datastore/proto.rb,
lib/gcloud/logging/project.rb,
lib/gcloud/search/document.rb,
lib/gcloud/dns/change/list.rb,
lib/gcloud/dns/record/list.rb,
lib/gcloud/datastore/query.rb,
lib/gcloud/datastore/errors.rb,
lib/gcloud/storage/file/acl.rb,
lib/gcloud/logging/resource.rb,
lib/gcloud/resource_manager.rb,
lib/gcloud/bigquery/dataset.rb,
lib/gcloud/datastore/entity.rb,
lib/gcloud/bigquery/project.rb,
lib/gcloud/pubsub/connection.rb,
lib/gcloud/pubsub/topic/list.rb,
lib/gcloud/datastore/dataset.rb,
lib/gcloud/search/index/list.rb,
lib/gcloud/bigquery/copy_job.rb,
lib/gcloud/search/connection.rb,
lib/gcloud/storage/file/list.rb,
lib/gcloud/bigquery/load_job.rb,
lib/gcloud/bigquery/job/list.rb,
lib/gcloud/search/api_client.rb,
lib/gcloud/logging/sink/list.rb,
lib/gcloud/search/field_value.rb,
lib/gcloud/search/credentials.rb,
lib/gcloud/pubsub/credentials.rb,
lib/gcloud/logging/connection.rb,
lib/gcloud/storage/connection.rb,
lib/gcloud/logging/entry/list.rb,
lib/gcloud/storage/bucket/acl.rb,
lib/gcloud/search/result/list.rb,
lib/gcloud/bigquery/query_job.rb,
lib/gcloud/storage/credentials.rb,
lib/gcloud/pubsub/subscription.rb,
lib/gcloud/bigquery/query_data.rb,
lib/gcloud/logging/metric/list.rb,
lib/gcloud/bigquery/table/list.rb,
lib/gcloud/bigquery/connection.rb,
lib/gcloud/search/field_values.rb,
lib/gcloud/storage/bucket/list.rb,
lib/gcloud/storage/bucket/cors.rb,
lib/gcloud/logging/credentials.rb,
lib/gcloud/search/document/list.rb,
lib/gcloud/datastore/properties.rb,
lib/gcloud/datastore/connection.rb,
lib/gcloud/bigquery/extract_job.rb,
lib/gcloud/dns/zone/transaction.rb,
lib/gcloud/bigquery/credentials.rb,
lib/gcloud/storage/file/verifier.rb,
lib/gcloud/datastore/transaction.rb,
lib/gcloud/bigquery/dataset/list.rb,
lib/gcloud/datastore/credentials.rb,
lib/gcloud/bigquery/table/schema.rb,
lib/gcloud/bigquery/dataset/access.rb,
lib/gcloud/pubsub/received_message.rb,
lib/gcloud/logging/entry/operation.rb,
lib/gcloud/resource_manager/errors.rb,
lib/gcloud/resource_manager/project.rb,
lib/gcloud/resource_manager/manager.rb,
lib/gcloud/bigquery/insert_response.rb,
lib/gcloud/pubsub/subscription/list.rb,
lib/gcloud/logging/entry/http_request.rb,
lib/gcloud/resource_manager/connection.rb,
lib/gcloud/logging/resource_descriptor.rb,
lib/gcloud/resource_manager/credentials.rb,
lib/gcloud/resource_manager/project/list.rb,
lib/gcloud/datastore/dataset/query_results.rb,
lib/gcloud/resource_manager/project/updater.rb,
lib/gcloud/datastore/dataset/lookup_results.rb,
lib/gcloud/logging/resource_descriptor/list.rb

Overview

Google Cloud

Gcloud is the official library for interacting with the Google Cloud Platform. Google Cloud Platform is a set of modular cloud-based services that allow you to create anything from simple websites to complex applications.

Gcloud's goal is to provide a API that is familiar and comfortable to Rubyists. Authentication is handled by providing project and credential information, or if you are running on Google Compute Engine this configuration is taken care of for you.

You can learn more about various options for connection on the Authentication Guide.

Defined Under Namespace

Modules: Bigquery, Datastore, Dns, Logging, Pubsub, ResourceManager, Search, Storage, Upload Classes: Backoff, Error

Constant Summary collapse

VERSION =
"0.6.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.bigquery(project = nil, keyfile = nil, scope: nil) ⇒ Gcloud::Bigquery::Project

Creates a new Project instance connected to the BigQuery service. Each call creates a new connection.

Examples:

require "gcloud/bigquery"

bigquery = Gcloud.bigquery
dataset = bigquery.dataset "my_dataset"
table = dataset.table "my_table"

Parameters:

  • project (String) (defaults to: nil)

    Identifier for a BigQuery project. If not present, the default project for the credentials is used.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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/bigquery

Returns:


46
47
48
49
50
51
52
53
54
# File 'lib/gcloud/bigquery.rb', line 46

def self.bigquery project = nil, keyfile = nil, scope: nil
  project ||= Gcloud::Bigquery::Project.default_project
  if keyfile.nil?
    credentials = Gcloud::Bigquery::Credentials.default scope: scope
  else
    credentials = Gcloud::Bigquery::Credentials.new keyfile, scope: scope
  end
  Gcloud::Bigquery::Project.new project, credentials
end

.datastore(project = nil, keyfile = nil, scope: nil) ⇒ Gcloud::Datastore::Dataset

Creates a new object for connecting to the Datastore service. Each call creates a new connection.

Examples:

require "gcloud/datastore"

dataset = Gcloud.datastore "my-todo-project",
                           "/path/to/keyfile.json"

entity = dataset.entity "Task" do |t|
  t["description"] = "Get started with Google Cloud"
  t["completed"] = false
end

dataset.save entity

Parameters:

  • project (String) (defaults to: nil)

    Dataset identifier for the Datastore you are connecting to.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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 scopes are:

    • https://www.googleapis.com/auth/datastore
    • https://www.googleapis.com/auth/userinfo.email

Returns:


56
57
58
59
60
61
62
63
64
# File 'lib/gcloud/datastore.rb', line 56

def self.datastore project = nil, keyfile = nil, scope: nil
  project ||= Gcloud::Datastore::Dataset.default_project
  if keyfile.nil?
    credentials = Gcloud::Datastore::Credentials.default scope: scope
  else
    credentials = Gcloud::Datastore::Credentials.new keyfile, scope: scope
  end
  Gcloud::Datastore::Dataset.new project, credentials
end

.dns(project = nil, keyfile = nil, scope: nil) ⇒ Gcloud::Dns::Project

Creates a new Project instance connected to the DNS service. Each call creates a new connection.

Examples:

require "gcloud"

dns = Gcloud.dns "my-dns-project",
                 "/path/to/keyfile.json"

zone = dns.zone "example-com"

Parameters:

  • project (String) (defaults to: nil)

    Identifier for a DNS project. If not present, the default project for the credentials is used.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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/ndev.clouddns.readwrite

Returns:


47
48
49
50
51
52
53
54
55
# File 'lib/gcloud/dns.rb', line 47

def self.dns project = nil, keyfile = nil, scope: nil
  project ||= Gcloud::Dns::Project.default_project
  if keyfile.nil?
    credentials = Gcloud::Dns::Credentials.default scope: scope
  else
    credentials = Gcloud::Dns::Credentials.new keyfile, scope: scope
  end
  Gcloud::Dns::Project.new project, credentials
end

.logging(project = nil, keyfile = nil, scope: nil) ⇒ Gcloud::Logging::Project

Creates a new object for connecting to the Logging service. Each call creates a new connection.

Examples:

require "gcloud/logging"

gcloud = Gcloud.new
logging = gcloud.logging
# ...

Parameters:

  • project (String) (defaults to: nil)

    Project identifier for the Logging service you are connecting to.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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/logging.admin

Returns:


46
47
48
49
50
51
52
53
54
# File 'lib/gcloud/logging.rb', line 46

def self.logging project = nil, keyfile = nil, scope: nil
  project ||= Gcloud::Logging::Project.default_project
  if keyfile.nil?
    credentials = Gcloud::Logging::Credentials.default scope: scope
  else
    credentials = Gcloud::Logging::Credentials.new keyfile, scope: scope
  end
  Gcloud::Logging::Project.new project, credentials
end

.new(project = nil, keyfile = nil) ⇒ Gcloud

Creates a new object for connecting to Google Cloud.

Examples:

require "gcloud"

gcloud  = Gcloud.new
dataset = gcloud.datastore
pubsub  = gcloud.pubsub
storage = gcloud.storage

Parameters:

  • project (String) (defaults to: nil)

    Project identifier for the Pub/Sub service you are connecting to.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

Returns:


52
53
54
55
56
57
58
59
60
# File 'lib/gcloud.rb', line 52

def self.new project = nil, keyfile = nil
  gcloud = Object.new
  gcloud.instance_eval do
    @project = project
    @keyfile = keyfile
  end
  gcloud.extend Gcloud
  gcloud
end

.pubsub(project = nil, keyfile = nil, scope: nil) ⇒ Gcloud::Pubsub::Project

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

Examples:

require "gcloud/pubsub"

pubsub = Gcloud.pubsub

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

Parameters:

  • project (String) (defaults to: nil)

    Project identifier for the Pub/Sub service you are connecting to.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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

Returns:


47
48
49
50
51
52
53
54
55
# File 'lib/gcloud/pubsub.rb', line 47

def self.pubsub project = nil, keyfile = nil, scope: nil
  project ||= Gcloud::Pubsub::Project.default_project
  if keyfile.nil?
    credentials = Gcloud::Pubsub::Credentials.default scope: scope
  else
    credentials = Gcloud::Pubsub::Credentials.new keyfile, scope: scope
  end
  Gcloud::Pubsub::Project.new project, credentials
end

.resource_manager(keyfile = nil, scope: nil) ⇒ Gcloud::ResourceManager::Manager

Creates a new Project instance connected to the Resource Manager service. Each call creates a new connection.

Examples:

require "gcloud/resource_manager"

resource_manager = Gcloud.resource_manager
resource_manager.projects.each do |project|
  puts projects.project_id
end

Parameters:

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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/cloud-platform

Returns:


45
46
47
48
49
50
51
52
53
# File 'lib/gcloud/resource_manager.rb', line 45

def self.resource_manager keyfile = nil, scope: nil
  if keyfile.nil?
    credentials = Gcloud::ResourceManager::Credentials.default scope: scope
  else
    credentials = Gcloud::ResourceManager::Credentials.new keyfile,
                                                           scope: scope
  end
  Gcloud::ResourceManager::Manager.new credentials
end

.search(project = nil, keyfile = nil, scope: nil) ⇒ Gcloud::Search::Project

Creates a new Project instance connected to the Search service. Each call creates a new connection.

Parameters:

  • project (String) (defaults to: nil)

    Identifier for a Search project. If not present, the default project for the credentials is used.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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 scopes are:

    • https://www.googleapis.com/auth/cloudsearch
    • https://www.googleapis.com/auth/userinfo.email

Returns:


40
41
42
43
44
45
46
47
48
# File 'lib/gcloud/search.rb', line 40

def self.search project = nil, keyfile = nil, scope: nil
  project ||= Gcloud::Search::Project.default_project
  if keyfile.nil?
    credentials = Gcloud::Search::Credentials.default scope: scope
  else
    credentials = Gcloud::Search::Credentials.new keyfile, scope: scope
  end
  Gcloud::Search::Project.new project, credentials
end

.storage(project = nil, keyfile = nil, scope: nil) ⇒ Gcloud::Storage::Project

Creates a new object for connecting to the Storage service. Each call creates a new connection.

Examples:

require "gcloud/storage"

storage = Gcloud.storage "my-todo-project",
                         "/path/to/keyfile.json"

bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"

Parameters:

  • project (String) (defaults to: nil)

    Project identifier for the Storage service you are connecting to.

  • keyfile (String, Hash) (defaults to: nil)

    Keyfile downloaded from Google Cloud. If file path the file must be readable.

  • 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/devstorage.full_control

Returns:


48
49
50
51
52
53
54
55
56
# File 'lib/gcloud/storage.rb', line 48

def self.storage project = nil, keyfile = nil, scope: nil
  project ||= Gcloud::Storage::Project.default_project
  if keyfile.nil?
    credentials = Gcloud::Storage::Credentials.default scope: scope
  else
    credentials = Gcloud::Storage::Credentials.new keyfile, scope: scope
  end
  Gcloud::Storage::Project.new project, credentials
end

Instance Method Details

#bigquery(scope: nil) ⇒ Gcloud::Bigquery::Project

Creates a new object for connecting to the BigQuery service. Each call creates a new connection.

Examples:

require "gcloud"

gcloud = Gcloud.new
bigquery = gcloud.bigquery
dataset = bigquery.dataset "my-dataset"
table = dataset.table "my-table"
table.data.each do |row|
  puts row
end

The default scope can be overridden with the scope option:

require "gcloud"

gcloud  = Gcloud.new
platform_scope = "https://www.googleapis.com/auth/cloud-platform"
bigquery = gcloud.bigquery scope: platform_scope

Parameters:

  • 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/bigquery

Returns:


209
210
211
212
# File 'lib/gcloud.rb', line 209

def bigquery scope: nil
  require "gcloud/bigquery"
  Gcloud.bigquery @project, @keyfile, scope: scope
end

#datastore(scope: nil) ⇒ Gcloud::Datastore::Dataset

Creates a new object for connecting to the Datastore service. Each call creates a new connection.

Examples:

require "gcloud"

gcloud  = Gcloud.new
dataset = gcloud.datastore

entity = dataset.entity "Task" do |t|
  t["description"] = "Get started with Google Cloud"
  t["completed"] = false
end

dataset.save entity

You shouldn't need to override the default scope, but you can:

require "gcloud"

gcloud  = Gcloud.new
platform_scope = "https://www.googleapis.com/auth/cloud-platform"
dataset = gcloud.datastore scope: platform_scope

Parameters:

  • 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 scopes are:

    • https://www.googleapis.com/auth/datastore
    • https://www.googleapis.com/auth/userinfo.email

Returns:


98
99
100
101
# File 'lib/gcloud.rb', line 98

def datastore scope: nil
  require "gcloud/datastore"
  Gcloud.datastore @project, @keyfile, scope: scope
end

#dns(scope: nil) ⇒ Gcloud::Dns::Project

Creates a new object for connecting to the DNS service. Each call creates a new connection.

Examples:

require "gcloud"

gcloud = Gcloud.new
dns = gcloud.dns
zone = dns.zone "example-zone"
zone.records.each do |record|
  puts record.name
end

The default scope can be overridden with the scope option:

require "gcloud"

gcloud  = Gcloud.new
readonly_scope = "https://www.googleapis.com/auth/ndev.clouddns.readonly"
dns = gcloud.dns scope: readonly_scope

Parameters:

  • 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/ndev.clouddns.readwrite

Returns:


246
247
248
249
# File 'lib/gcloud.rb', line 246

def dns scope: nil
  require "gcloud/dns"
  Gcloud.dns @project, @keyfile, scope: scope
end

#logging(scope: nil) ⇒ Gcloud::Logging::Project

Creates a new object for connecting to the Logging service. Each call creates a new connection.

Examples:

require "gcloud"

gcloud = Gcloud.new
logging = gcloud.logging
# ...

The default scope can be overridden with the scope option:

require "gcloud"

gcloud  = Gcloud.new
platform_scope = "https://www.googleapis.com/auth/cloud-platform"
logging = gcloud.logging scope: platform_scope

Parameters:

  • 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/logging.admin

Returns:


346
347
348
349
# File 'lib/gcloud.rb', line 346

def logging scope: nil
  require "gcloud/logging"
  Gcloud.logging @project, @keyfile, scope: scope
end

#pubsub(scope: nil) ⇒ Gcloud::Pubsub::Project

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

Examples:

require "gcloud"

gcloud = Gcloud.new
pubsub = gcloud.pubsub
topic = pubsub.topic "my-topic"
topic.publish "task completed"

The default scope can be overridden with the scope option:

require "gcloud"

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

Parameters:

  • 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

Returns:


171
172
173
174
# File 'lib/gcloud.rb', line 171

def pubsub scope: nil
  require "gcloud/pubsub"
  Gcloud.pubsub @project, @keyfile, scope: scope
end

#resource_manager(scope: nil) ⇒ Gcloud::ResourceManager::Manager

Creates a new object for connecting to the Resource Manager service. Each call creates a new connection.

Examples:

require "gcloud"

gcloud = Gcloud.new
resource_manager = gcloud.resource_manager
resource_manager.projects.each do |project|
  puts projects.project_id
end

The default scope can be overridden with the scope option:

require "gcloud"

gcloud  = Gcloud.new
readonly_scope = "https://www.googleapis.com/auth/cloudresourcemanager.readonly"
resource_manager = gcloud.resource_manager scope: readonly_scope

Parameters:

  • 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/cloud-platform

Returns:


286
287
288
289
# File 'lib/gcloud.rb', line 286

def resource_manager scope: nil
  require "gcloud/resource_manager"
  Gcloud.resource_manager @keyfile, scope: scope
end

#search(scope: nil) ⇒ Gcloud::Search::Project

Creates a new object for connecting to the Search service. Each call creates a new connection.

Examples:

require "gcloud"

Parameters:

  • 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 scopes are:

    • https://www.googleapis.com/auth/cloudsearch
    • https://www.googleapis.com/auth/userinfo.email

Returns:


312
313
314
315
# File 'lib/gcloud.rb', line 312

def search scope: nil
  require "gcloud/search"
  Gcloud.search @project, @keyfile, scope: scope
end

#storage(scope: nil) ⇒ Gcloud::Storage::Project

Creates a new object for connecting to the Storage service. Each call creates a new connection.

Examples:

require "gcloud"

gcloud  = Gcloud.new
storage = gcloud.storage
bucket = storage.bucket "my-bucket"
file = bucket.file "path/to/my-file.ext"

The default scope can be overridden with the scope option:

require "gcloud"

gcloud  = Gcloud.new
readonly_scope = "https://www.googleapis.com/auth/devstorage.read_only"
readonly_storage = gcloud.storage scope: readonly_scope

Parameters:

  • 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/devstorage.full_control

Returns:

See Also:


136
137
138
139
# File 'lib/gcloud.rb', line 136

def storage scope: nil
  require "gcloud/storage"
  Gcloud.storage @project, @keyfile, scope: scope
end