class OpenBuildServiceAPI::PackagesCollection

Public Class Methods

new(params = {}) click to toggle source
# File lib/collections/packages_collection.rb, line 3
def initialize(params = {})
  raise ArgumentError.new('The dataset needs to be provided as an Array.') if params[:data] && !params[:data].is_a?(Array)

  @connection = params[:connection]
  @project = params[:project]
  @data = params[:data] ? params[:data] : []
end

Public Instance Methods

exists?(name) click to toggle source
# File lib/collections/packages_collection.rb, line 11
def exists?(name)
  !!find(name)
end
find(name) click to toggle source
# File lib/collections/packages_collection.rb, line 15
def find(name)
  begin
    package_data = Nokogiri::XML(@connection.send_request(:get, "/source/#{CGI.escape(@project.name)}/#{name}").body)
    Package.new(name: package_data.root.attr('name'), connection: @connection, project: @project)
  rescue RequestError => err
    return if err.error_code == 'unknown_package'
    raise
  end
end
find!(name) click to toggle source
# File lib/collections/packages_collection.rb, line 25
def find!(name)
  package = find(name)

  raise PackageNotFoundError.new("Package '#{name}' does not exist in project '#{@project.name}'.") unless package
  package
end