class OpenBuildServiceAPI::Binary
Attributes
architecture[R]
created_at[R]
local_file_path[R]
local_path[R]
name[R]
package[RW]
repository[R]
size[R]
Public Class Methods
new(params = {})
click to toggle source
# File lib/models/binary.rb, line 6 def initialize(params = {}) raise ArgumentError.new('repository needs to be an instance of OpenBuildServiceAPI::Repository') unless params[:repository].is_a?(Repository) @name = params[:name] @size = Filesize.from(params[:size]) @created_at = Time.at(params[:created_at]) @repository = params[:repository] @architecture = params[:architecture] @package = params[:package] @connection = params[:connection] end
Public Instance Methods
delete_local_copy!()
click to toggle source
# File lib/models/binary.rb, line 44 def delete_local_copy! return false unless @local_file_path return false unless File.exists?(@local_file_path) File.delete(@local_file_path) FileUtils.rm_r(@local_path) if Dir.empty?(@local_path) && @tmp_dir true end
download(destination=nil)
click to toggle source
# File lib/models/binary.rb, line 22 def download(destination=nil) delete_local_copy! if destination raise InvalidDownloadDirectoryPath.new("Path '#{destination}' is not a directory.") unless File.directory?(destination) destination = destination[0..-2] if destination.end_with?('/') @tmp_dir = false else destination = Dir.mktmpdir('obs-binary-download') @tmp_dir = true end @local_file_path = "#{destination}/#{@name}" @local_path = destination response = @connection.send_request(:get, "/build/#{CGI.escape(@package.project.name)}/#{CGI.escape(@repository.to_s)}/" \ "#{CGI.escape(@architecture)}/#{CGI.escape(@package.name)}/#{CGI.escape(@name)}") File.write(@local_file_path, response.body) @local_file_path end
to_s()
click to toggle source
# File lib/models/binary.rb, line 18 def to_s @name end