Class: RPM::MatchIterator

Inherits:
Data
  • Object
show all
Includes:
Enumerable
Defined in:
ext/rpm/db.c

Instance Method Summary collapse

Instance Method Details

#countObject



1074
1075
1076
1077
1078
# File 'ext/rpm/db.c', line 1074

VALUE
rpm_mi_get_iterator_count(VALUE mi)
{
	return INT2NUM(rpmdbGetIteratorCount(RPM_MI(mi)));
}

#eachObject



1122
1123
1124
1125
1126
1127
1128
1129
# File 'ext/rpm/db.c', line 1122

VALUE
rpm_mi_each(VALUE mi)
{
	VALUE p;
	while(!NIL_P( p = rpm_mi_next_iterator(mi)))
		rb_yield (p);
        return Qnil;
}

#get_iterator_countObject



1074
1075
1076
1077
1078
# File 'ext/rpm/db.c', line 1074

VALUE
rpm_mi_get_iterator_count(VALUE mi)
{
	return INT2NUM(rpmdbGetIteratorCount(RPM_MI(mi)));
}

#lengthObject



1074
1075
1076
1077
1078
# File 'ext/rpm/db.c', line 1074

VALUE
rpm_mi_get_iterator_count(VALUE mi)
{
	return INT2NUM(rpmdbGetIteratorCount(RPM_MI(mi)));
}

#next_iteratorObject



1064
1065
1066
1067
1068
1069
1070
1071
1072
# File 'ext/rpm/db.c', line 1064

VALUE
rpm_mi_next_iterator(VALUE mi)
{
	Header hdr;
	hdr = rpmdbNextIterator(RPM_MI(mi));
	if (hdr)
		return rpm_package_new_from_header(hdr);
	return Qnil;
}

#offsetObject



1080
1081
1082
1083
1084
1085
1086
1087
# File 'ext/rpm/db.c', line 1080

VALUE
rpm_mi_get_iterator_offset(VALUE mi)
{
	int off = rpmdbGetIteratorOffset(RPM_MI(mi));
	if (off)
		return INT2NUM(off);
	return Qnil;
}

#regexp(tag, mode, re) ⇒ Object



1089
1090
1091
1092
1093
1094
1095
1096
1097
# File 'ext/rpm/db.c', line 1089

VALUE
rpm_mi_set_iterator_re(VALUE mi,VALUE tag, VALUE mode, VALUE re)
{
	if (TYPE(re) != T_STRING)
		rb_raise(rb_eTypeError, "illegal argument type");

	rpmdbSetIteratorRE(RPM_MI(mi),NUM2INT(tag),NUM2INT(mode),RSTRING_PTR(re));
	return mi;
}

#set_iterator_re(tag, mode, re) ⇒ Object



1089
1090
1091
1092
1093
1094
1095
1096
1097
# File 'ext/rpm/db.c', line 1089

VALUE
rpm_mi_set_iterator_re(VALUE mi,VALUE tag, VALUE mode, VALUE re)
{
	if (TYPE(re) != T_STRING)
		rb_raise(rb_eTypeError, "illegal argument type");

	rpmdbSetIteratorRE(RPM_MI(mi),NUM2INT(tag),NUM2INT(mode),RSTRING_PTR(re));
	return mi;
}

#set_iterator_version(version) ⇒ Object



1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
# File 'ext/rpm/db.c', line 1099

VALUE
rpm_mi_set_iterator_version(VALUE mi, VALUE version)
{
/* Epoch!! */
	VALUE r;
	if (rb_obj_is_kind_of(version, rpm_cVersion) == Qfalse)
		rb_raise(rb_eTypeError, "illegal argument type");
#if RPM_VERSION_CODE < RPM_VERSION(4,1,0)
	rpmdbSetIteratorVersion(RPM_MI(mi),RSTRING_PTR(rpm_version_get_v(version)));
#else
	rpmdbSetIteratorRE(RPM_MI(mi),RPMTAG_VERSION,RPMMIRE_DEFAULT,RSTRING_PTR(rpm_version_get_v(version)));
#endif
	r = rpm_version_get_r(version);
	if(!NIL_P(r)){
#if RPM_VERSION_CODE < RPM_VERSION(4,1,0)
		rpmdbSetIteratorRelease(RPM_MI(mi),RSTRING_PTR(r));
#else
		rpmdbSetIteratorRE(RPM_MI(mi),RPMTAG_RELEASE,RPMMIRE_DEFAULT,RSTRING_PTR(r));
#endif
	}
	return mi;
}

#version(version) ⇒ Object



1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
# File 'ext/rpm/db.c', line 1099

VALUE
rpm_mi_set_iterator_version(VALUE mi, VALUE version)
{
/* Epoch!! */
	VALUE r;
	if (rb_obj_is_kind_of(version, rpm_cVersion) == Qfalse)
		rb_raise(rb_eTypeError, "illegal argument type");
#if RPM_VERSION_CODE < RPM_VERSION(4,1,0)
	rpmdbSetIteratorVersion(RPM_MI(mi),RSTRING_PTR(rpm_version_get_v(version)));
#else
	rpmdbSetIteratorRE(RPM_MI(mi),RPMTAG_VERSION,RPMMIRE_DEFAULT,RSTRING_PTR(rpm_version_get_v(version)));
#endif
	r = rpm_version_get_r(version);
	if(!NIL_P(r)){
#if RPM_VERSION_CODE < RPM_VERSION(4,1,0)
		rpmdbSetIteratorRelease(RPM_MI(mi),RSTRING_PTR(r));
#else
		rpmdbSetIteratorRE(RPM_MI(mi),RPMTAG_RELEASE,RPMMIRE_DEFAULT,RSTRING_PTR(r));
#endif
	}
	return mi;
}