google-cloud-core 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dd3cf2a2e538cb37ffd2daae810180a7cf19dcad051f1fdce8d6b6c6dd13a566
4
- data.tar.gz: e197ffcd7a014052eaeabba0f744ce0c3c86da7be88639bd9e91338eb122b7e4
3
+ metadata.gz: e0b557c72656343a1c1931542cd9cd3a3bd1fd5a82fb786c8c6468071cfefe41
4
+ data.tar.gz: 620d60ecc70baba4ed88cbea048764ae4a47307b8d87f3e184aa3f0999970b60
5
5
  SHA512:
6
- metadata.gz: 27e11063ff53977170fa53a5559d272ac324225ee0ee9bc85f2b696b5b6f31f0719b605283eae7b73d12808a8326a97f9dd5308d89fab5b89df22dac5fdca8b3
7
- data.tar.gz: 4ba78b2ef42de56f09660dd30c40eee1fcd7c74a6ba5c57fc126dcd05cb9af59e9087caa8f9745a44f8e332c67a6e8b16252ef8f600655ff811c74314635011b
6
+ metadata.gz: 9fcf42cc101c71d111ad06b9f50af49715cff12264a42353edb64304dc4b54c8bec2d9f5069937eff73c21dc0f31ad03181ac42606a32266f1c7c5fb6bac2fe3
7
+ data.tar.gz: 9f52bf6b7aa21cf5b14d03e5097eb389296943cdab0619f9596f1ba819ea10fadea3e940dabb82b0c3897010a0e7c54b7d0e4b53fa100ab5ed0558f75424ffd0
data/README.md CHANGED
@@ -6,7 +6,14 @@ This library contains shared types, such as error classes, for the google-cloud
6
6
 
7
7
  ## Supported Ruby Versions
8
8
 
9
- This library is supported on Ruby 2.0+.
9
+ This library is currently supported on Ruby 2.0+.
10
+
11
+ However, Ruby 2.3 or later is strongly recommended, as earlier releases have
12
+ reached or are nearing end-of-life. After June 1, 2018, Google will provide
13
+ official support only for Ruby versions that are considered current and
14
+ supported by Ruby Core (that is, Ruby versions that are either in normal
15
+ maintenance or in security maintenance).
16
+ See https://www.ruby-lang.org/en/downloads/branches/ for further details.
10
17
 
11
18
  ## Versioning
12
19
 
@@ -96,28 +96,112 @@ module Google
96
96
 
97
97
  @config
98
98
  end
99
+
100
+ ##
101
+ # Initialize toplevel configuration
102
+ # @private
103
+ #
104
+ def self.init_configuration
105
+ configure do |config|
106
+ default_project = Google::Cloud::Config.deferred do
107
+ ENV["GOOGLE_CLOUD_PROJECT"] || ENV["GCLOUD_PROJECT"]
108
+ end
109
+ default_creds = Google::Cloud::Config.deferred do
110
+ Google::Cloud::Config.credentials_from_env \
111
+ "GOOGLE_CLOUD_CREDENTIALS", "GOOGLE_CLOUD_CREDENTIALS_JSON",
112
+ "GOOGLE_CLOUD_KEYFILE", "GOOGLE_CLOUD_KEYFILE_JSON",
113
+ "GCLOUD_KEYFILE", "GCLOUD_KEYFILE_JSON"
114
+ end
115
+
116
+ config.add_field! :project_id, default_project,
117
+ match: String, allow_nil: true
118
+ config.add_alias! :project, :project_id
119
+ config.add_field! :credentials, default_creds, match: Object
120
+ config.add_alias! :keyfile, :credentials
121
+ end
122
+ end
123
+
124
+ # In June, 2018, set supported version to 2.3 and recommended to 2.4.
125
+ # Thereafter, follow the MRI support schedule: supported means non-EOL,
126
+ # and recommended means in normal (rather than security) maintenance.
127
+ # See https://www.ruby-lang.org/en/downloads/branches/
128
+
129
+ ##
130
+ # Minimum "supported" Ruby version (non-EOL)
131
+ # @private
132
+ #
133
+ SUPPORTED_VERSION_THRESHOLD = "2.0".freeze
134
+
135
+ ##
136
+ # Minimum "recommended" Ruby version (normal maintenance)
137
+ # @private
138
+ #
139
+ RECOMMENDED_VERSION_THRESHOLD = "2.3".freeze
140
+
141
+ ##
142
+ # Check Ruby version and emit a warning if it is old
143
+ # @private
144
+ #
145
+ def self.warn_on_old_ruby_version \
146
+ supported_version: SUPPORTED_VERSION_THRESHOLD,
147
+ recommended_version: RECOMMENDED_VERSION_THRESHOLD
148
+ return if ENV["GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS"]
149
+ cur_version = Gem::Version.new RUBY_VERSION
150
+ if cur_version < Gem::Version.new(supported_version)
151
+ warn_unsupported_ruby cur_version, recommended_version
152
+ elsif cur_version < Gem::Version.new(recommended_version)
153
+ warn_nonrecommended_ruby cur_version, recommended_version
154
+ end
155
+ rescue ArgumentError
156
+ warn "Unable to determine current Ruby version."
157
+ end
158
+
159
+ ##
160
+ # Print a warning for an EOL version of Ruby
161
+ # @private
162
+ #
163
+ def self.warn_unsupported_ruby cur_version, recommended_version
164
+ warn "WARNING: You are running Ruby #{cur_version}, which has reached" \
165
+ " end-of-life and is no longer supported by Ruby Core."
166
+ warn "The Google Cloud API clients work best on supported versions of" \
167
+ " Ruby. It is strongly recommended that you upgrade to Ruby" \
168
+ " #{recommended_version} or later."
169
+ warn "See https://www.ruby-lang.org/en/downloads/branches/ for more" \
170
+ " info on the Ruby maintenance schedule."
171
+ warn "To suppress this message, set the" \
172
+ " GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS environment variable."
173
+ end
174
+
175
+ ##
176
+ # Print a warning for a supported but nearing EOL version of Ruby
177
+ # @private
178
+ #
179
+ def self.warn_nonrecommended_ruby cur_version, recommended_version
180
+ warn "WARNING: You are running Ruby #{cur_version}, which is nearing" \
181
+ " end-of-life."
182
+ warn "The Google Cloud API clients work best on supported versions of" \
183
+ " Ruby. Consider upgrading to Ruby #{recommended_version} or later."
184
+ warn "See https://www.ruby-lang.org/en/downloads/branches/ for more" \
185
+ " info on the Ruby maintenance schedule."
186
+ warn "To suppress this message, set the" \
187
+ " GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS environment variable."
188
+ end
99
189
  end
100
190
  end
101
191
 
102
192
  # Set the default top-level configuration
103
- Google::Cloud.configure do |config|
104
- default_project = Google::Cloud::Config.deferred do
105
- ENV["GOOGLE_CLOUD_PROJECT"] || ENV["GCLOUD_PROJECT"]
106
- end
107
- default_creds = Google::Cloud::Config.deferred do
108
- Google::Cloud::Config.credentials_from_env \
109
- "GOOGLE_CLOUD_CREDENTIALS", "GOOGLE_CLOUD_CREDENTIALS_JSON",
110
- "GOOGLE_CLOUD_KEYFILE", "GOOGLE_CLOUD_KEYFILE_JSON",
111
- "GCLOUD_KEYFILE", "GCLOUD_KEYFILE_JSON"
112
- end
193
+ Google::Cloud.init_configuration
113
194
 
114
- config.add_field! :project_id, default_project, match: String, allow_nil: true
115
- config.add_alias! :project, :project_id
116
- config.add_field! :credentials, default_creds, match: Object
117
- config.add_alias! :keyfile, :credentials
118
- end
195
+ # Emit a warning if current Ruby is at or nearing end-of-life
196
+ Google::Cloud.warn_on_old_ruby_version
119
197
 
120
198
  # Auto-load all Google Cloud service gems.
121
- Gem.find_files("google-cloud-*.rb").each do |google_cloud_service|
199
+ auto_load_files = if Gem.respond_to? :find_latest_files
200
+ Gem.find_latest_files "google-cloud-*.rb"
201
+ else
202
+ # Ruby 2.0 does not have Gem.find_latest_files
203
+ Gem.find_files "google-cloud-*.rb"
204
+ end
205
+ auto_load_files.each do |google_cloud_service|
122
206
  require google_cloud_service
123
207
  end
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Core
19
- VERSION = "1.2.0".freeze
19
+ VERSION = "1.2.1".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-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
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: 2018-02-27 00:00:00.000000000 Z
12
+ date: 2018-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-env
@@ -187,7 +187,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  version: '0'
188
188
  requirements: []
189
189
  rubyforge_project:
190
- rubygems_version: 2.7.6
190
+ rubygems_version: 2.7.7
191
191
  signing_key:
192
192
  specification_version: 4
193
193
  summary: Internal shared library for google-cloud-ruby