lib/gitolite/config/group.rb in jbox-gitolite-1.2.0 vs lib/gitolite/config/group.rb in jbox-gitolite-1.2.1

- old
+ new

@@ -1,11 +1,13 @@ module Gitolite class Config + # Represents a group inside the gitolite configuration. The name and users # options are all encapsulated in this class. All users are stored as # Strings! class Group + attr_accessor :name, :users PREPEND_CHAR = '@' def initialize(name) @@ -13,39 +15,48 @@ # I don't think you can have two of them in a group name @name = name.gsub(PREPEND_CHAR, '') @users = [] end + def empty! @users.clear end + def add_user(user) return if has_user?(user) @users.push(user.to_s).sort! end + def add_users(*users) fixed_users = users.flatten.map{ |u| u.to_s } @users.concat(fixed_users).sort!.uniq! end + def rm_user(user) @users.delete(user.to_s) end + def has_user?(user) @users.include? user.to_s end + def size @users.length end + def to_s members = @users.join(' ') name = "#{PREPEND_CHAR}#{@name}" "#{name.ljust(20)}= #{members}\n" end + end + end end