class Pear::PairingSession
Attributes
participants[R]
runner[R]
Public Class Methods
new(participants:, configuration: Pear::Configuration.new, runner: Pear::SystemRunner.new)
click to toggle source
# File lib/pear/pairing_session.rb, line 5 def initialize(participants:, configuration: Pear::Configuration.new, runner: Pear::SystemRunner.new) @configuration = configuration @runner = runner set_session_participants(participants) end
Public Instance Methods
configure_repository()
click to toggle source
# File lib/pear/pairing_session.rb, line 14 def configure_repository if repository_already_configured? abort('Already pairing! Run `pear -c` to start over.') else runner.run("git config --add user.name \'#{git_user_name}\'") runner.run("git config --add user.email \'#{git_user_email}\'") end end
git_user_email()
click to toggle source
# File lib/pear/pairing_session.rb, line 27 def git_user_email to_email(participants) end
git_user_name()
click to toggle source
# File lib/pear/pairing_session.rb, line 23 def git_user_name to_sentence(session_participants_names) end
Private Instance Methods
repository_already_configured?()
click to toggle source
# File lib/pear/pairing_session.rb, line 39 def repository_already_configured? runner.run("git config --get-all user.name").split(/\n/).any? do |name| name == git_user_name end end
session_participants_names()
click to toggle source
# File lib/pear/pairing_session.rb, line 45 def session_participants_names participants.map { |p| @configuration.authors[p] } end
set_session_participants(participants)
click to toggle source
# File lib/pear/pairing_session.rb, line 33 def set_session_participants(participants) raise ArgumentError, 'Participants must be registered' \ unless participants.all? { |p| @configuration.authors.key?(p) } @participants = participants end
to_email(initials)
click to toggle source
# File lib/pear/pairing_session.rb, line 54 def to_email(initials) team, domain = @configuration.email.split('@') "#{team}+#{initials.join('-')}@#{domain}" end
to_sentence(full_names)
click to toggle source
# File lib/pear/pairing_session.rb, line 49 def to_sentence(full_names) last_name = full_names.pop [full_names.join(', '), last_name].join(' and ') end