Module: RPM

Defined in:
lib/rpm.rb,
ext/rpm/rpm.c

Defined Under Namespace

Classes: Conflict, DB, Dependency, File, Icon, MatchIterator, Obsolete, Package, Patch, Provide, Require, Source, Spec, Transaction, Version

Constant Summary collapse

CallbackData =
rpm_sCallbackData
Problem =
rpm_sProblem
VERSION =
rb_str_new2(RUBY_RPM_VERSION)
PROB_FILER_FORCE =
INT2NUM(RPMPROB_FILTER_REPLACEPKG
| RPMPROB_FILTER_REPLACENEWFILES
| RPMPROB_FILTER_REPLACEOLDFILES)
PROB_FILER_REPLACEFILES =
INT2NUM(RPMPROB_FILTER_REPLACENEWFILES
| RPMPROB_FILTER_REPLACEOLDFILES)
PROB_FILER_IGNORESIZE =
INT2NUM(RPMPROB_FILTER_DISKSPACE
| RPMPROB_FILTER_DISKNODES)
BUILD__UNTIL_PREP =
INT2NUM(RPMBUILD_PREP)
BUILD__UNTIL_BUILD =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD)
BUILD__UNTIL_INSTALL =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL)
BUILD__BINARY_PACKAGE =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_PACKAGEBINARY
| RPMBUILD_CLEAN)
BUILD__SOURCE_PACKAGE =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_PACKAGESOURCE
| RPMBUILD_CLEAN)
BUILD__ALL_PACKAGE =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_PACKAGEBINARY
| RPMBUILD_PACKAGESOURCE
| RPMBUILD_CLEAN)
BUILD__CHECK_FILELIST =
INT2NUM(RPMBUILD_PREP
| RPMBUILD_BUILD
| RPMBUILD_INSTALL
| RPMBUILD_FILECHECK)
ChangeLog =
rpm_sChangeLog

Class Method Summary collapse

Class Method Details

.[](name) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'ext/rpm/rpm.c', line 19

static VALUE
m_aref(VALUE m, VALUE name)
{
	char  buf[BUFSIZ];
	char* tmp;
	VALUE val;

	if (TYPE(name) != T_STRING) {
		rb_raise(rb_eTypeError, "illegal argument type");
	}

	sprintf(buf, "%%{%s}", RSTRING(name)->ptr);
	tmp = strdup(buf);
	expandMacros(NULL, NULL, buf, BUFSIZ);
	if (strcmp(tmp, buf) == 0) {
		val = Qnil;
	} else {
		val = rb_str_new2(buf);
	}
	free(tmp);

	return val;
}

.[]=(name, val) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'ext/rpm/rpm.c', line 49

static VALUE
m_aset(VALUE m, VALUE name, VALUE val)
{
	if (TYPE(name) != T_STRING
		|| (val != Qnil && TYPE(val) != T_STRING)) {
		rb_raise(rb_eTypeError, "illegal argument type(s)");
	}
	if (val == Qnil) {
		delMacro(NULL, RSTRING(name)->ptr);
	} else {
		addMacro(NULL, RSTRING(name)->ptr, NULL, RSTRING(val)->ptr, RMIL_DEFAULT);
	}
	return Qnil;
}

.expand(name) ⇒ Object



13
14
15
16
17
# File 'ext/rpm/rpm.c', line 13

static VALUE
m_expand(VALUE m, VALUE name)
{
	return rb_str_new2(rpmExpand(StringValueCStr(name), NULL));
}

.init_macros(*args) ⇒ Object



104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'ext/rpm/rpm.c', line 104

static VALUE
m_init_macros(int argc, VALUE* argv, VALUE m)
{
	register int i;
	char buf[BUFSIZ];

	if (argc == 0) {
		rb_raise(rb_eArgError, "too few argument(>= 1)");
	}

	buf[0] = '\0';
	for (i = 0; i < argc; i++) {
		if (TYPE(argv[i]) != T_STRING) {
			rb_raise(rb_eTypeError, "illegal argument type(s)");
		}
		strcat(buf, RSTRING(argv[i])->ptr);
		strcat(buf, ":");
	}
	rpmInitMacros(NULL, buf);

	return Qnil;
}

.readrc(*args) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'ext/rpm/rpm.c', line 70

static VALUE
m_readrc(int argc, VALUE* argv, VALUE m)
{
	register int i;
	char buf[BUFSIZ];

	if (argc == 0) {
		rb_raise(rb_eArgError, "too few argument(>= 1)");
	}

	buf[0] = '\0';
	for (i = 0; i < argc; i++) {
		if (TYPE(argv[i]) != T_STRING) {
			rb_raise(rb_eTypeError, "illegal argument type(s)");
		}
		strcat(buf, RSTRING(argv[i])->ptr);
		strcat(buf, ":");
	}
	rpmFreeMacros(NULL);
	if (rpmReadConfigFiles(buf, NULL)) {
		rb_raise(rb_eRuntimeError, "can not read rc file %s", buf);
	}

	return Qnil;
}

.verbosityObject



137
138
139
140
141
# File 'ext/rpm/rpm.c', line 137

static VALUE
m_get_verbosity(VALUE m)
{
	return INT2NUM(rpm_verbosity);
}

.verbosity=(verbosity) ⇒ Object



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'ext/rpm/rpm.c', line 149

static VALUE
m_set_verbosity(VALUE m, VALUE verbosity)
{
	int v = NUM2INT(rb_Integer(verbosity));
	switch (v) {
	case RPMLOG_EMERG: case RPMLOG_ALERT:
	case RPMLOG_CRIT: case RPMLOG_ERR:
	case RPMLOG_WARNING: case RPMLOG_NOTICE:
	case RPMLOG_INFO: case RPMLOG_DEBUG:
		break;

	default:
		rb_raise(rb_eArgError, "invalid verbosity");
	}
	rpmSetVerbosity(v);
	rpm_verbosity = v;
	return Qnil;
}

.vercmp(ver1, ver2) ⇒ Object



12
13
14
15
16
17
# File 'lib/rpm.rb', line 12

def vercmp(ver1, ver2)
  unless String === ver1 and String === ver2 then
    raise TypeError, 'illegal argument type'
  end
  RPM::Version.new(ver1) <=> RPM::Version.new(ver2)
end