Module: Google::Cloud

Defined in:
lib/google-cloud-datastore.rb,
lib/google/cloud/datastore.rb,
lib/google/cloud/datastore/key.rb,
lib/google/cloud/datastore/query.rb,
lib/google/cloud/datastore/commit.rb,
lib/google/cloud/datastore/cursor.rb,
lib/google/cloud/datastore/entity.rb,
lib/google/cloud/datastore/errors.rb,
lib/google/cloud/datastore/dataset.rb,
lib/google/cloud/datastore/service.rb,
lib/google/cloud/datastore/version.rb,
lib/google/cloud/datastore/gql_query.rb,
lib/google/cloud/datastore/grpc_utils.rb,
lib/google/cloud/datastore/properties.rb,
lib/google/cloud/datastore/credentials.rb,
lib/google/cloud/datastore/transaction.rb,
lib/google/cloud/datastore/dataset/query_results.rb,
lib/google/cloud/datastore/dataset/lookup_results.rb

Defined Under Namespace

Modules: Core, Datastore

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.datastore(project = nil, keyfile = nil, scope: nil, retries: nil, timeout: nil) ⇒ Google::Cloud::Datastore::Dataset

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

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

Examples:

require "google/cloud/datastore"

datastore = Google::Cloud.datastore "my-todo-project",
                           "/path/to/keyfile.json"

task = datastore.entity "Task", "sampleTask" do |t|
  t["type"] = "Personal"
  t["done"] = false
  t["priority"] = 4
  t["description"] = "Learn Cloud Datastore"
end

datastore.save task

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 scope is:

    • https://www.googleapis.com/auth/datastore
  • retries (Integer)

    Number of times to retry requests on server error. The default value is 3. Optional.

  • timeout (Integer)

    Default timeout to use in requests. Optional.

Returns:



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/google-cloud-datastore.rb', line 115

def self.datastore project = nil, keyfile = nil, scope: nil, retries: nil,
                   timeout: nil
  require "google/cloud/datastore"
  project ||= Google::Cloud::Datastore::Dataset.default_project
  project = project.to_s # Always cast to a string
  fail ArgumentError, "project is missing" if project.empty?

  if ENV["DATASTORE_EMULATOR_HOST"]
    return Google::Cloud::Datastore::Dataset.new(
      Google::Cloud::Datastore::Service.new(
        project, :this_channel_is_insecure,
        host: ENV["DATASTORE_EMULATOR_HOST"], retries: retries))
  end

  if keyfile.nil?
    credentials = Google::Cloud::Datastore::Credentials.default scope: scope
  else
    credentials = Google::Cloud::Datastore::Credentials.new(
      keyfile, scope: scope)
  end

  Google::Cloud::Datastore::Dataset.new(
    Google::Cloud::Datastore::Service.new(
      project, credentials, retries: retries, timeout: timeout))
end

Instance Method Details

#datastore(scope: nil, retries: nil, timeout: nil) ⇒ Google::Cloud::Datastore::Dataset

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

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

Examples:

require "google/cloud"

gcloud  = Google::Cloud.new
datastore = gcloud.datastore

task = datastore.entity "Task" do |t|
  t["type"] = "Personal"
  t["done"] = false
  t["priority"] = 4
  t["description"] = "Learn Cloud Datastore"
end

datastore.save task

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

require "google/cloud"

gcloud  = Google::Cloud.new
platform_scope = "https://www.googleapis.com/auth/cloud-platform"
datastore = 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 scope is:

    • https://www.googleapis.com/auth/datastore
  • retries (Integer)

    Number of times to retry requests on server error. The default value is 3. Optional.

  • timeout (Integer)

    Default timeout to use in requests. Optional.

Returns:



69
70
71
72
73
# File 'lib/google-cloud-datastore.rb', line 69

def datastore scope: nil, retries: nil, timeout: nil
  Google::Cloud.datastore @project, @keyfile,
                          scope: scope, retries: (retries || @retries),
                          timeout: (timeout || @timeout)
end