class Gitolite::Config::Group

Represents a group inside the gitolite configuration. The name and users options are all encapsulated in this class. All users are stored as Strings!

Constants

PREPEND_CHAR

Attributes

name[RW]
users[RW]

Public Class Methods

new(name) click to toggle source
# File lib/gitolite/config/group.rb, line 13
def initialize(name)
  # naively remove the prepend char
  # I don't think you can have two of them in a group name
  @name = name.gsub(PREPEND_CHAR, '')
  @users = []
end

Public Instance Methods

add_user(user) click to toggle source
# File lib/gitolite/config/group.rb, line 26
def add_user(user)
  return if has_user?(user)
  @users.push(user.to_s).sort!
end
add_users(*users) click to toggle source
# File lib/gitolite/config/group.rb, line 32
def add_users(*users)
  fixed_users = users.flatten.map{ |u| u.to_s }
  @users.concat(fixed_users).sort!.uniq!
end
empty!() click to toggle source
# File lib/gitolite/config/group.rb, line 21
def empty!
  @users.clear
end
has_user?(user) click to toggle source
# File lib/gitolite/config/group.rb, line 43
def has_user?(user)
  @users.include? user.to_s
end
rm_user(user) click to toggle source
# File lib/gitolite/config/group.rb, line 38
def rm_user(user)
  @users.delete(user.to_s)
end
size() click to toggle source
# File lib/gitolite/config/group.rb, line 48
def size
  @users.length
end
to_s() click to toggle source
# File lib/gitolite/config/group.rb, line 53
def to_s
  members = @users.join(' ')
  name = "#{PREPEND_CHAR}#{@name}"
  "#{name.ljust(20)}= #{members}\n"
end