google-cloud-spanner 1.12.2 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bb9356b25e44c40dc9130499d1a5d0f186d4637819ca7ad27d02d7c2456c6c88
4
- data.tar.gz: 5cfa6241edcbb3530654584587a309843f04bb6d08aeab6d31ba6273c5c95b7e
3
+ metadata.gz: eba832c0a32045d9ae260e11fe32ef991974465d9bf7dac3b49d6ea4a977d95f
4
+ data.tar.gz: 8c818d7beef38f54a3de61eed3f42c918b68bd0cdf5a89c83973b5b32d142ac0
5
5
  SHA512:
6
- metadata.gz: 44a9560fcc37b55aed30d4a36c8a9eb7f379dc84abf79f838b11ba95f8e3225139ae255558d80f68430fd95845497f491a8ccc28c019cbe43fd0a85fb3daec56
7
- data.tar.gz: 2de6ab1fc1f7d5b26a79ca5a8f1835d4ce0ba732e188e9c0342897826027c1f59a88b9263cc026d76b245ba59d6b0ad2755542bba49fff32bca73eb7363871ab
6
+ metadata.gz: 4405ca2cb9c051ecadbc3b2dcdfb3880620f59fbc511a04ad1fe097db418cbf93c452bdc907ee8e9fe9b9bdb54d640c539ceca703f892a5ccf0888524e4f36f5
7
+ data.tar.gz: 9e72b1fa85cbdc8c89fb0713ecf7fc965736b552e7d53e688dcc214491e35ba158c45ef73b596b74105b2afd6839a7d0fb435f68256432e3e1fe9ffdb5efd7e9
@@ -1,5 +1,11 @@
1
1
  # Release History
2
2
 
3
+ ### 1.13.0 / 2020-01-08
4
+
5
+ #### Features
6
+
7
+ * Add support for SPANNER_EMULATOR_HOST
8
+
3
9
  ### 1.12.2 / 2019-12-19
4
10
 
5
11
  #### Bug Fixes
@@ -122,6 +122,9 @@ Google::Cloud.configure.add_config! :spanner do |config|
122
122
  "SPANNER_KEYFILE", "SPANNER_KEYFILE_JSON"
123
123
  )
124
124
  end
125
+ default_emulator = Google::Cloud::Config.deferred do
126
+ ENV["SPANNER_EMULATOR_HOST"]
127
+ end
125
128
 
126
129
  config.add_field! :project_id, default_project, match: String, allow_nil: true
127
130
  config.add_alias! :project, :project_id
@@ -133,4 +136,5 @@ Google::Cloud.configure.add_config! :spanner do |config|
133
136
  config.add_field! :timeout, nil, match: Integer
134
137
  config.add_field! :client_config, nil, match: Hash
135
138
  config.add_field! :endpoint, nil, match: String
139
+ config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
136
140
  end
@@ -34,6 +34,8 @@ module Google
34
34
  # See {file:OVERVIEW.md Spanner Overview}.
35
35
  #
36
36
  module Spanner
37
+ # rubocop:disable Metrics/MethodLength
38
+
37
39
  ##
38
40
  # Creates a new object for connecting to the Spanner service.
39
41
  # Each call creates a new connection.
@@ -64,6 +66,8 @@ module Google
64
66
  # @param [String] project Alias for the `project_id` argument. Deprecated.
65
67
  # @param [String] keyfile Alias for the `credentials` argument.
66
68
  # Deprecated.
69
+ # @param [String] emulator_host Spanner emulator host. Optional.
70
+ # If the param is nil, uses the value of the `emulator_host` config.
67
71
  #
68
72
  # @return [Google::Cloud::Spanner::Project]
69
73
  #
@@ -73,21 +77,29 @@ module Google
73
77
  # spanner = Google::Cloud::Spanner.new
74
78
  #
75
79
  def self.new project_id: nil, credentials: nil, scope: nil, timeout: nil,
76
- client_config: nil, endpoint: nil, project: nil, keyfile: nil
80
+ client_config: nil, endpoint: nil, project: nil, keyfile: nil,
81
+ emulator_host: nil
77
82
  project_id ||= (project || default_project_id)
78
83
  scope ||= configure.scope
79
84
  timeout ||= configure.timeout
80
85
  client_config ||= configure.client_config
81
86
  endpoint ||= configure.endpoint
82
87
  credentials ||= (keyfile || default_credentials(scope: scope))
88
+ emulator_host ||= configure.emulator_host
83
89
 
84
- unless credentials.is_a? Google::Auth::Credentials
85
- credentials = Spanner::Credentials.new credentials, scope: scope
86
- end
90
+ if emulator_host
91
+ credentials = :this_channel_is_insecure
92
+ endpoint = emulator_host
93
+ else
94
+ unless credentials.is_a? Google::Auth::Credentials
95
+ credentials = Spanner::Credentials.new credentials, scope: scope
96
+ end
87
97
 
88
- if credentials.respond_to? :project_id
89
- project_id ||= credentials.project_id
98
+ if credentials.respond_to? :project_id
99
+ project_id ||= credentials.project_id
100
+ end
90
101
  end
102
+
91
103
  project_id = project_id.to_s # Always cast to a string
92
104
  raise ArgumentError, "project_id is missing" if project_id.empty?
93
105
 
@@ -99,6 +111,8 @@ module Google
99
111
  )
100
112
  end
101
113
 
114
+ # rubocop:enable Metrics/MethodLength
115
+
102
116
  ##
103
117
  # Configure the Google Cloud Spanner library.
104
118
  #
@@ -117,6 +131,8 @@ module Google
117
131
  # behavior of the API client.
118
132
  # * `endpoint` - (String) Override of the endpoint host name, or `nil`
119
133
  # to use the default endpoint.
134
+ # * `emulator_host` - (String) Host name of the emulator. Defaults to
135
+ # `ENV["SPANNER_EMULATOR_HOST"]`.
120
136
  #
121
137
  # @return [Google::Cloud::Config] The configuration object the
122
138
  # Google::Cloud::Spanner library uses.
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Spanner
19
- VERSION = "1.12.2".freeze
19
+ VERSION = "1.13.0".freeze
20
20
  end
21
21
  end
22
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-spanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.12.2
4
+ version: 1.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-12-20 00:00:00.000000000 Z
12
+ date: 2020-01-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -247,6 +247,34 @@ dependencies:
247
247
  - - "~>"
248
248
  - !ruby/object:Gem::Version
249
249
  version: 0.1.13
250
+ - !ruby/object:Gem::Dependency
251
+ name: grpc
252
+ requirement: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: 1.26.0
257
+ type: :development
258
+ prerelease: false
259
+ version_requirements: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: 1.26.0
264
+ - !ruby/object:Gem::Dependency
265
+ name: grpc-tools
266
+ requirement: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: 1.26.0
271
+ type: :development
272
+ prerelease: false
273
+ version_requirements: !ruby/object:Gem::Requirement
274
+ requirements:
275
+ - - "~>"
276
+ - !ruby/object:Gem::Version
277
+ version: 1.26.0
250
278
  description: google-cloud-spanner is the official library for Google Cloud Spanner
251
279
  API.
252
280
  email: