class RPM::RepoFactory
Public Class Methods
new()
click to toggle source
# File lib/repofactory.rb, line 7 def initialize @locker = Mutex.new @locker.synchronize { #Logging - now not needed #@logger = Logging.logger['repo ' + @name] #@logger.debug 'initializing' @repositories = [] } end
Public Instance Methods
add_repository(repository)
click to toggle source
Synced repository adding
# File lib/repofactory.rb, line 18 def add_repository repository @locker.synchronize { if repository.kind_of? RPM::Repository if (get_repository_by repository.name).is_a? RPM::Repository raise ArgumentError, "Repository with such name already exist!" end @repositories.push repository return true else return false end } end
destroy_repository_by!(name)
click to toggle source
Synced repository removal and destroying
# File lib/repofactory.rb, line 33 def destroy_repository_by! name repo = get_repository_by name return false if repo.nil? repo.destroy! @locker.synchronize { @repositories.delete repo } return true end
each() { |repository| ... }
click to toggle source
wrap over Array's each
# File lib/repofactory.rb, line 63 def each get_repositories.each { |repository| yield repository if block_given? } end
get_repositories()
click to toggle source
the way to non-block reading
# File lib/repofactory.rb, line 44 def get_repositories @repositories.clone end
get_repository_by(name)
click to toggle source
Return repository by name
# File lib/repofactory.rb, line 49 def get_repository_by name unless name.kind_of? String return nil end possible_repos = get_repositories.select { |repo| repo.name == name } case possible_repos.count when 1 return possible_repos.first else return nil end end