class Shard::CLI::Config

Public Class Methods

run() click to toggle source
#

Class Methods #

#
# File lib/shard/cli/config.rb, line 13
def self.run
  new.run
end

Public Instance Methods

run() click to toggle source
#

Instance Methods #

#
# File lib/shard/cli/config.rb, line 23
def run
  if credentials_saved?
    replace_credentials
  else
    add_credentials
  end
end

Private Instance Methods

add_credentials() click to toggle source
# File lib/shard/cli/config.rb, line 33
    def add_credentials
      puts <<-EOF
To use shard features that require a Github login,
please enter your username and password below.

Note, you can provide an Personal Access Token instead
of a password (recommended).
(See https://github.com/settings/tokens/new for more information)

EOF

      print "  Username | "
      username = STDIN.gets.to_s.chomp
      print "  Password | "
      password = STDIN.noecho(&:gets).to_s.chomp

      save_credentials(username, password)

      if credentials_saved?
        puts "\nCredentials saved to ~/.netrc"

        validate_login
      else
        puts "\nCredentials have been cleared."
      end
    end
credentials_saved?() click to toggle source
# File lib/shard/cli/config.rb, line 60
def credentials_saved?
  Shard::Credentials.saved?
end
replace_credentials() click to toggle source
# File lib/shard/cli/config.rb, line 64
def replace_credentials
  str = valid_login? ? "" : "invalid "
  
  puts "You currently have #{ str }Github credentials saved in ~/.netrc"
  print "Do you wish to replace them? [yn] "

  if yes?
    add_credentials
  end
end
save_credentials(username, password) click to toggle source
# File lib/shard/cli/config.rb, line 75
def save_credentials(username, password)
  Shard::Credentials.new(username, password).save
end
valid_login?() click to toggle source
# File lib/shard/cli/config.rb, line 92
def valid_login?
  Shard::Credentials.valid?
end
validate_login() click to toggle source
# File lib/shard/cli/config.rb, line 79
def validate_login
  if valid_login?
    puts "\nThe saved Github credentials are valid."
  else
    puts "\nThe saved Github credentials are invalid."
    print "Do you wish to re-enter them? [yn] "

    if yes?
      add_credentials
    end
  end
end
yes?() click to toggle source
# File lib/shard/cli/config.rb, line 96
def yes?
  STDIN.gets.chomp.downcase == 'y'
end