|
33 | 33 | require 'googleauth/default_credentials' |
34 | 34 | require 'googleauth/user_authorizer' |
35 | 35 | require 'googleauth/web_user_authorizer' |
36 | | - |
37 | | -module Google |
38 | | - # Module Auth provides classes that provide Google-specific authorization |
39 | | - # used to access Google APIs. |
40 | | - module Auth |
41 | | - # rubocop:disable MethodDefParentheses |
42 | | - |
43 | | - # On March 31, 2019, set supported version to 2.4 and recommended to 2.6. |
44 | | - # Thereafter, follow the MRI support schedule: supported means non-EOL, |
45 | | - # and recommended means in normal (rather than security) maintenance. |
46 | | - # See https://www.ruby-lang.org/en/downloads/branches/ |
47 | | - ## |
48 | | - # Minimum "supported" Ruby version (non-EOL) |
49 | | - # @private |
50 | | - # |
51 | | - SUPPORTED_VERSION_THRESHOLD = '1.9'.freeze |
52 | | - ## |
53 | | - # Minimum "recommended" Ruby version (normal maintenance) |
54 | | - # @private |
55 | | - # |
56 | | - RECOMMENDED_VERSION_THRESHOLD = '2.4'.freeze |
57 | | - ## |
58 | | - # Check Ruby version and emit a warning if it is old |
59 | | - # @private |
60 | | - # |
61 | | - def self.warn_on_old_ruby_version |
62 | | - return if ENV['GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS'] |
63 | | - cur_version = Gem::Version.new RUBY_VERSION |
64 | | - if cur_version < Gem::Version.new(SUPPORTED_VERSION_THRESHOLD) |
65 | | - warn_unsupported_ruby cur_version, RECOMMENDED_VERSION_THRESHOLD |
66 | | - elsif cur_version < Gem::Version.new(RECOMMENDED_VERSION_THRESHOLD) |
67 | | - warn_nonrecommended_ruby cur_version, RECOMMENDED_VERSION_THRESHOLD |
68 | | - end |
69 | | - rescue ArgumentError |
70 | | - warn 'Unable to determine current Ruby version.' |
71 | | - end |
72 | | - |
73 | | - ## |
74 | | - # Print a warning for an EOL version of Ruby |
75 | | - # @private |
76 | | - # |
77 | | - def self.warn_unsupported_ruby cur_version, recommended_version |
78 | | - warn "WARNING: You are running Ruby #{cur_version}, which has reached" \ |
79 | | - ' end-of-life and is no longer supported by Ruby Core.' |
80 | | - warn 'The Google Cloud API clients work best on supported versions of' \ |
81 | | - ' Ruby. It is strongly recommended that you upgrade to Ruby' \ |
82 | | - " #{recommended_version} or later." |
83 | | - warn 'See https://www.ruby-lang.org/en/downloads/branches/ for more' \ |
84 | | - ' info on the Ruby maintenance schedule.' |
85 | | - warn 'To suppress this message, set the' \ |
86 | | - ' GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS environment variable.' |
87 | | - end |
88 | | - |
89 | | - ## |
90 | | - # Print a warning for a supported but nearing EOL version of Ruby |
91 | | - # @private |
92 | | - # |
93 | | - def self.warn_nonrecommended_ruby cur_version, recommended_version |
94 | | - warn "WARNING: You are running Ruby #{cur_version}, which is nearing" \ |
95 | | - ' end-of-life.' |
96 | | - warn 'The Google Cloud API clients work best on supported versions of' \ |
97 | | - " Ruby. Consider upgrading to Ruby #{recommended_version} or later." |
98 | | - warn 'See https://www.ruby-lang.org/en/downloads/branches/ for more' \ |
99 | | - ' info on the Ruby maintenance schedule.' |
100 | | - warn 'To suppress this message, set the' \ |
101 | | - ' GOOGLE_CLOUD_SUPPRESS_RUBY_WARNINGS environment variable.' |
102 | | - end |
103 | | - # rubocop:enable MethodDefParentheses |
104 | | - end |
105 | | -end |
106 | | - |
107 | | -Google::Auth.warn_on_old_ruby_version |
0 commit comments