lib/drive_env.rb in drive_env-0.3.1 vs lib/drive_env.rb in drive_env-0.4.0

- old
+ new

@@ -7,16 +7,24 @@ autoload :Config, 'drive_env/config' class << self def authorizer(client_id, client_secret, token_store_file) unless @authorizer - client_id = Google::Auth::ClientId.new(client_id, client_secret) + cred = ENV['GOOGLE_APPLICATION_CREDENTIALS'] scope = %w[ https://www.googleapis.com/auth/drive https://spreadsheets.google.com/feeds/ ] - token_store = Google::Auth::Stores::FileTokenStore.new(file: token_store_file) - @authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store) + if cred.nil? + client_id = Google::Auth::ClientId.new(client_id, client_secret) + token_store = Google::Auth::Stores::FileTokenStore.new(file: token_store_file) + @authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store) + else + @authorizer = Google::Auth::ServiceAccountCredentials.make_creds( + json_key_io: File.open(cred), + scope: scope + ) + end end @authorizer end end end