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);
}
to_s()
Alias for: fullname