Module: Gcloud

Defined in:
lib/gcloud.rb,
lib/gcloud/pubsub.rb,
lib/gcloud/upload.rb,
lib/gcloud/backoff.rb,
lib/gcloud/storage.rb,
lib/gcloud/version.rb,
lib/gcloud/bigquery.rb,
lib/gcloud/datastore.rb,
lib/gcloud/credentials.rb,
lib/gcloud/bigquery/job.rb,
lib/gcloud/pubsub/topic.rb,
lib/gcloud/storage/file.rb,
lib/gcloud/bigquery/data.rb,
lib/gcloud/bigquery/view.rb,
lib/gcloud/datastore/key.rb,
lib/gcloud/pubsub/errors.rb,
lib/gcloud/bigquery/table.rb,
lib/gcloud/pubsub/message.rb,
lib/gcloud/pubsub/project.rb,
lib/gcloud/storage/bucket.rb,
lib/gcloud/storage/errors.rb,
lib/gcloud/bigquery/errors.rb,
lib/gcloud/datastore/proto.rb,
lib/gcloud/datastore/query.rb,
lib/gcloud/storage/project.rb,
lib/gcloud/bigquery/dataset.rb,
lib/gcloud/bigquery/project.rb,
lib/gcloud/datastore/entity.rb,
lib/gcloud/datastore/errors.rb,
lib/gcloud/storage/file/acl.rb,
lib/gcloud/bigquery/copy_job.rb,
lib/gcloud/bigquery/job/list.rb,
lib/gcloud/bigquery/load_job.rb,
lib/gcloud/datastore/dataset.rb,
lib/gcloud/pubsub/connection.rb,
lib/gcloud/pubsub/topic/list.rb,
lib/gcloud/storage/file/list.rb,
lib/gcloud/bigquery/query_job.rb,
lib/gcloud/pubsub/credentials.rb,
lib/gcloud/storage/bucket/acl.rb,
lib/gcloud/storage/connection.rb,
lib/gcloud/bigquery/connection.rb,
lib/gcloud/bigquery/query_data.rb,
lib/gcloud/bigquery/table/list.rb,
lib/gcloud/pubsub/subscription.rb,
lib/gcloud/storage/bucket/list.rb,
lib/gcloud/storage/credentials.rb,
lib/gcloud/bigquery/credentials.rb,
lib/gcloud/bigquery/extract_job.rb,
lib/gcloud/datastore/connection.rb,
lib/gcloud/datastore/properties.rb,
lib/gcloud/bigquery/dataset/list.rb,
lib/gcloud/datastore/credentials.rb,
lib/gcloud/datastore/transaction.rb,
lib/gcloud/proto/datastore_v1.pb.rb,
lib/gcloud/storage/file/verifier.rb,
lib/gcloud/pubsub/received_message.rb,
lib/gcloud/bigquery/insert_response.rb,
lib/gcloud/pubsub/subscription/list.rb,
lib/gcloud/datastore/dataset/query_results.rb,
lib/gcloud/datastore/dataset/lookup_results.rb

Overview

– Copyright 2014 Google Inc. All rights reserved.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Defined Under Namespace

Modules: Bigquery, Datastore, Pubsub, Storage, Upload Classes: Backoff, Credentials, Error

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.bigquery(project = nil, keyfile = nil, options = {}) ⇒ Object

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

Parameters

project

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

keyfile

Keyfile downloaded from Google Cloud. If file path the file must be readable. (String or Hash)

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scope is:

  • https://www.googleapis.com/auth/bigquery

Returns

Gcloud::Bigquery::Project

Example

require "gcloud/bigquery"

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


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

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

.datastore(project = nil, keyfile = nil, options = {}) ⇒ Object

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

Parameters

project

Dataset identifier for the Datastore you are connecting to. (String)

keyfile

Keyfile downloaded from Google Cloud. If file path the file must be readable. (String or Hash)

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scopes are:

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

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

Returns

Gcloud::Datastore::Dataset

Example

require "gcloud/datastore"

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

entity = Gcloud::Datastore::Entity.new
entity.key = Gcloud::Datastore::Key.new "Task"
entity["description"] = "Get started with Google Cloud"
entity["completed"] = false

dataset.save entity


67
68
69
70
71
72
73
74
75
# File 'lib/gcloud/datastore.rb', line 67

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

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

Creates a new object for connecting to Google Cloud.

Parameters

project

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

keyfile

Keyfile downloaded from Google Cloud. If file path the file must be readable. (String or Hash)

Returns

Gcloud

Example

require "gcloud"

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


59
60
61
62
63
64
65
66
67
# File 'lib/gcloud.rb', line 59

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, options = {}) ⇒ Object

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

Parameters

project

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

keyfile

Keyfile downloaded from Google Cloud. If file path the file must be readable. (String or Hash)

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scope is:

  • https://www.googleapis.com/auth/pubsub

Returns

Gcloud::Pubsub::Project

Example

require "gcloud/pubsub"

pubsub = Gcloud.pubsub

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


59
60
61
62
63
64
65
66
67
# File 'lib/gcloud/pubsub.rb', line 59

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

.storage(project = nil, keyfile = nil, options = {}) ⇒ Object

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

Parameters

project

Project identifier for the Storage service you are connecting to. (String)

keyfile

Keyfile downloaded from Google Cloud. If file path the file must be readable. (String or Hash)

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scope is:

  • https://www.googleapis.com/auth/devstorage.full_control

Returns

Gcloud::Storage::Project

Example

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"


60
61
62
63
64
65
66
67
68
# File 'lib/gcloud/storage.rb', line 60

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

Instance Method Details

#bigquery(options = {}) ⇒ Object

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

Parameters

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scope is:

  • https://www.googleapis.com/auth/bigquery

Returns

Gcloud::Bigquery::Project

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


252
253
254
255
# File 'lib/gcloud.rb', line 252

def bigquery options = {}
  require "gcloud/bigquery"
  Gcloud.bigquery @project, @keyfile, options
end

#datastore(options = {}) ⇒ Object

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

Parameters

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scopes are:

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

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

Returns

Gcloud::Datastore::Dataset

Examples

require "gcloud"

gcloud  = Gcloud.new
dataset = gcloud.datastore

entity = Gcloud::Datastore::Entity.new
entity.key = Gcloud::Datastore::Key.new "Task"
entity["description"] = "Get started with Google Cloud"
entity["completed"] = false

dataset.save entity

You shouldn’t need to override the default scope, but it is possible to do so with the scope option:

require "gcloud"

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


115
116
117
118
# File 'lib/gcloud.rb', line 115

def datastore options = {}
  require "gcloud/datastore"
  Gcloud.datastore @project, @keyfile, options
end

#pubsub(options = {}) ⇒ Object

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

Parameters

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scope is:

  • https://www.googleapis.com/auth/pubsub

Returns

Gcloud::Pubsub::Project

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


205
206
207
208
# File 'lib/gcloud.rb', line 205

def pubsub options = {}
  require "gcloud/pubsub"
  Gcloud.pubsub @project, @keyfile, options
end

#storage(options = {}) ⇒ Object

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

Parameters

options

An optional Hash for controlling additional behavior. (Hash)

options[: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. (String or Array)

The default scope is:

  • https://www.googleapis.com/auth/devstorage.full_control

Returns

Gcloud::Storage::Project

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. For more information see Storage OAuth 2.0 Authentication.

require "gcloud"

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


161
162
163
164
# File 'lib/gcloud.rb', line 161

def storage options = {}
  require "gcloud/storage"
  Gcloud.storage @project, @keyfile, options
end