Class: Whaler::Auth

Inherits:
Object
  • Object
show all
Defined in:
lib/whaler/auth.rb

Class Method Summary collapse

Class Method Details

.apiObject



7
8
9
10
11
12
# File 'lib/whaler/auth.rb', line 7

def api
  @api ||= (
    API.setup(credentials.last)
    API
  )
end

.ask_and_save_credentials(username = nil, password = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/whaler/auth.rb', line 23

def ask_and_save_credentials(username = nil, password = nil)
  username ||= ask_username
  password ||= ask_password
  api_key = get_api_key(username, password)
  CredentialsStore.write(username, api_key)
  # check_for_associated_ssh_key unless Heroku::Command.current_command == "keys:add"
  [username, api_key]
rescue Whaler::API::Errors::Unauthorized => e
  delete_credentials
  $stderr.puts "Authentication failed, please try again"
  exit 1
rescue Exception => e
  delete_credentials
  raise e
end

.credentialsObject



14
15
16
# File 'lib/whaler/auth.rb', line 14

def credentials
  CredentialsStore.read || ask_and_save_credentials
end

.delete_credentialsObject



18
19
20
21
# File 'lib/whaler/auth.rb', line 18

def delete_credentials
  CredentialsStore.delete
  @api = nil
end