class GitIam::Iam

Public Class Methods

local_or_remote(setting) click to toggle source
# File lib/git-iam/iam.rb, line 23
def self.local_or_remote(setting)
  value = `git config --local #{setting}`.chomp

  if value.empty?
    value = `git config --global #{setting}`.chomp # + ' (global)' # interferes when reseting origin
  end

  value
end
remote_origin() click to toggle source
# File lib/git-iam/iam.rb, line 19
def self.remote_origin
  local_or_remote 'remote.origin.url'
end
reset() click to toggle source
# File lib/git-iam/iam.rb, line 58
def self.reset
  `git config --local --unset user.name`
  `git config --local --unset user.email`
  set_origin_account user_name
end
set_origin_account(account) click to toggle source
# File lib/git-iam/iam.rb, line 49
def self.set_origin_account(account)
  segments = remote_origin.split('/')
  segments[-2] = account

  origin_url = segments.join('/')

  `git remote set-url origin #{origin_url}`
end
set_user_config(args) click to toggle source
# File lib/git-iam/iam.rb, line 33
def self.set_user_config(args)
  user_name = args.shift
  user_email = args.shift
  self.set_user_name user_name
  self.set_user_email user_email unless user_email.nil?
  self.set_origin_account user_name
end
set_user_email(user_email) click to toggle source
# File lib/git-iam/iam.rb, line 45
def self.set_user_email(user_email)
  `git config --local user.email #{user_email}`
end
set_user_name(user_name) click to toggle source
# File lib/git-iam/iam.rb, line 41
def self.set_user_name(user_name)
  `git config --local user.name #{user_name}`
end
user_email() click to toggle source
# File lib/git-iam/iam.rb, line 15
def self.user_email
  local_or_remote 'user.email'
end
user_name() click to toggle source
# File lib/git-iam/iam.rb, line 11
def self.user_name
  local_or_remote 'user.name'
end
who() click to toggle source
# File lib/git-iam/iam.rb, line 3
def self.who
  {
    'user.name' => user_name,
    'user.email' => user_email,
    'remote.origin.url' => remote_origin
  }
end