class RPM::Source
Public Class Methods
new(*args)
click to toggle source
Creates a new Source object @param [String] url @param
[Number] source number (index) @param [Boolean] nosource Sets the NoSource
flag (default false)
@example
RPM::Source.new ('http://example.com/hoge/hoge.tar.bz2', 0)
RPM:: Source.new ('http://example.com/fuga/fuga.tar.gz', 1, true)
static VALUE
source_initialize(int argc, VALUE* argv, VALUE src)
{
switch (argc) {
case 0: case 1:
rb_raise(rb_eArgError, "argument too few(2..3)");
case 2: case 3:
if (TYPE(argv[0]) != T_STRING) {
rb_raise(rb_eTypeError, "illegal argument type");
}
rb_ivar_set(src, id_full, argv[0]);
rb_ivar_set(src, id_num, rb_Integer(argv[1]));
if (argc == 3) {
rb_ivar_set(src, id_no, RTEST(argv[2]) ? Qtrue : Qfalse);
} else {
rb_ivar_set(src, id_no, Qfalse);
}
break;
default:
rb_raise(rb_eArgError, "argument too many(2..3)");
}
return src;
}
Public Instance Methods
filename()
click to toggle source
@return [String] Source's filename @example
src = RPM::Source.new('http://example.com/hoge/hoge.tar.bz2', 0)
src.filename => 'hoge.tar.bz2'
VALUE
rpm_source_get_filename(VALUE src)
{
VALUE fn = rb_ivar_get(src, id_fn);
if (NIL_P(fn)) {
VALUE full = rb_ivar_get(src, id_full);
const char* p = strrchr(RSTRING_PTR(full), '/');
if (p == NULL) {
p = RSTRING_PTR(full);
} else {
p++;
}
fn = rb_str_new2(p);
rb_ivar_set(src, id_fn, fn);
}
return fn;
}
fullname()
click to toggle source
@return [String] Source's fullname @example
src = RPM::Source.new('http://example.com/hoge/hoge.tar.bz2', 0)
src.fullname => 'http://example.com/hoge/hoge.tar.bz2'
VALUE
rpm_source_get_fullname(VALUE src)
{
return rb_ivar_get(src, id_full);
}
Also aliased as: to_s
no?()
click to toggle source
@return [Boolean] Whether the NoSource flag is set @example
src = RPM::Source.new('http://example.com/hoge/hoge.tar.bz2', 0, true)
src.no? => true
VALUE
rpm_source_is_no(VALUE src)
{
return rb_ivar_get(src, id_no);
}
num()
click to toggle source
@return [Number] Source's index @example
src = RPM::Source.new ('http://example.com/hoge/hoge.tar.bz2', 0)
src.num => 0
VALUE
rpm_source_get_num(VALUE src)
{
return rb_ivar_get(src, id_num);
}