module PairUp

Constants

VERSION

Public Class Methods

author_command() click to toggle source
# File lib/pair-up.rb, line 44
def self.author_command
  if PairUp.pairing?
    "export GIT_AUTHOR_NAME='#{PairUp.git_author_name}' GIT_AUTHOR_EMAIL='#{PairUp.git_author_email}' GIT_COMMITTER_NAME='#{PairUp.git_committer_name}' GIT_COMMITTER_EMAIL='#{PairUp.git_committer_email}'"
  else
    "unset GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL"
  end
end
current_pair() click to toggle source
# File lib/pair-up.rb, line 52
def self.current_pair
  config[:current_pair] ||= []
end
current_pair=(pairs) click to toggle source
# File lib/pair-up.rb, line 62
def self.current_pair=(pairs)
  config[:current_pair] = []
  pairs.each do |participant|
    if PairUp::Participant.find(participant)
      config[:current_pair] << participant
    else
      if PairUp::UI.prompt_for_pair(participant)
        config[:current_pair] << participant
      end
    end
  end
  write_file
end
expire_command(time) click to toggle source
# File lib/pair-up.rb, line 29
def self.expire_command(time)
  %Q(sleep #{to_seconds(time)} && #{PairUp.bin_path} --unpair&)
end
export(pairs) click to toggle source
# File lib/pair-up.rb, line 17
def self.export(pairs)
  PairUp.current_pair = pairs

  if PairUp.mac?
    `launchctl setenv GIT_AUTHOR_NAME '#{PairUp.git_author_name}' GIT_AUTHOR_EMAIL '#{PairUp.git_author_email}'`
    `launchctl setenv GIT_COMMITTER_NAME '#{PairUp.git_committer_name}' GIT_COMMITTER_EMAIL '#{PairUp.git_committer_email}'`
  end

  write_export_file
  print_info
end
git_author_email() click to toggle source
# File lib/pair-up.rb, line 81
def self.git_author_email
  dev = PairUp::Participant.find(current_pair[0])
  dev["email"]
end
git_author_name() click to toggle source
# File lib/pair-up.rb, line 76
def self.git_author_name
  dev = PairUp::Participant.find(current_pair[0])
  dev["name"]
end
git_committer_email() click to toggle source
# File lib/pair-up.rb, line 91
def self.git_committer_email
  dev = PairUp::Participant.find(current_pair[1])
  dev["email"]
end
git_committer_name() click to toggle source
# File lib/pair-up.rb, line 86
def self.git_committer_name
  dev = PairUp::Participant.find(current_pair[1])
  dev["name"]
end
print_info() click to toggle source
print_setup_path() click to toggle source
setup() click to toggle source
# File lib/pair-up.rb, line 104
def self.setup
  PairUp::UI.highline.say(File.read(setup_path))
end
setup_path() click to toggle source
# File lib/pair-up.rb, line 96
def self.setup_path
  File.join(File.dirname(__FILE__), 'pair-up', 'pair-up.sh')
end
switch() click to toggle source
# File lib/pair-up.rb, line 56
def self.switch
  if not current_pair.empty?
    PairUp.export current_pair.reverse
  end
end
unpair() click to toggle source
# File lib/pair-up.rb, line 33
def self.unpair
  PairUp.current_pair = []

  if PairUp.mac?
    `launchctl unsetenv GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL`
    `launchctl unsetenv GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL`
  end

  write_export_file
end
write_file() click to toggle source
# File lib/pair-up.rb, line 108
def self.write_file
  File.open(self.PairUprc, File::CREAT|File::TRUNC|File::RDWR, 0644) do |out|
    YAML.dump(config, out)
  end
end

Private Class Methods

PairUp_export_authors() click to toggle source
# File lib/pair-up.rb, line 136
def self.PairUp_export_authors
  File.expand_path('~/.pair-up_export_authors')
end
PairUprc() click to toggle source
# File lib/pair-up.rb, line 132
def self.PairUprc
  File.expand_path('~/.pair-uprc')
end
bin_path() click to toggle source
# File lib/pair-up.rb, line 140
def self.bin_path
  %x[which pair].chomp
end
config() click to toggle source
# File lib/pair-up.rb, line 120
def self.config
  @config ||= get_config
end
get_config() click to toggle source
# File lib/pair-up.rb, line 124
def self.get_config
  if File.exists?(self.PairUprc)
    yamlized = YAML::load_file(self.PairUprc)
    return yamlized if yamlized.kind_of?(Hash)
  end
  return {}
end
mac?() click to toggle source
# File lib/pair-up.rb, line 116
def self.mac?
  (/darwin/ =~ RUBY_PLATFORM)
end
pairing?() click to toggle source
# File lib/pair-up.rb, line 144
def self.pairing?
  current_pair.any?
end
to_seconds(value) click to toggle source
# File lib/pair-up.rb, line 148
def self.to_seconds(value)
  value = value.to_s.gsub(/[^\d]/, '').to_i
  unless value.zero?
    value * 60 * 60
  else
    raise StandardError
  end
end
write_export_file() click to toggle source
# File lib/pair-up.rb, line 157
def self.write_export_file
  File.open(self.PairUp_export_authors, 'w'){|f| f.write(author_command) }
end