Class: Flags
- Inherits:
-
Object
- Object
- Flags
- Defined in:
- ext/soup/soup.c
Direct Known Subclasses
Instance Method Summary collapse
- #&(other) ⇒ Object
- #<=>(other) ⇒ Object
- #coerce(other) ⇒ Object
- #fullname ⇒ Object
- #inspect ⇒ Object
- #name ⇒ Object
- #to_i ⇒ Object
- #to_s ⇒ Object
- #to_str ⇒ Object
- #|(other) ⇒ Object
Instance Method Details
#&(other) ⇒ Object
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 |
# File 'ext/soup/soup.c', line 181
static VALUE rubber_flags_and(VALUE value, VALUE other)
{
FlagsData *data = NULL;
int original = 0;
int other_num = 0;
Data_Get_Struct(value, FlagsData, data);
original = data->value;
other_num = flags_value_to_int(value, CLASS_OF(value));
// return INT2NUM(original & other_num);
return make_flags_value(CLASS_OF(value), original & other_num, "", "");
}
|
#<=>(other) ⇒ Object
142 143 144 145 146 147 148 149 150 151 152 |
# File 'ext/soup/soup.c', line 142
static VALUE rubber_flags_cmp(VALUE value, VALUE other)
{
VALUE a,b;
a = rb_funcall(value, rb_intern("to_i"), 0);
b = rb_funcall(other, rb_intern("to_i"), 0);
#ifdef RB_NUM_COERCE_FUNCS_NEED_OPID
return rb_num_coerce_cmp(a, b, rb_intern("=="));
#else
return rb_num_coerce_cmp(a, b);
#endif
}
|
#coerce(other) ⇒ Object
163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'ext/soup/soup.c', line 163
static VALUE rubber_flags_coerce(VALUE value, VALUE other)
{
FlagsData *data = NULL;
Data_Get_Struct(value, FlagsData, data);
switch(TYPE(other))
{
case T_FIXNUM:
case T_BIGNUM:
return INT2FIX(data->value);
case T_FLOAT:
return Qnil;
default:
return Qnil;
}
}
|
#fullname ⇒ Object
125 126 127 128 129 130 131 132 |
# File 'ext/soup/soup.c', line 125
static VALUE rubber_flags_to_s(VALUE value)
{
FlagsData *data = NULL;
Data_Get_Struct(value, FlagsData, data);
return rb_str_new2(data->fullname);
}
|
#inspect ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
# File 'ext/soup/soup.c', line 106
static VALUE rubber_flags_inspect(VALUE value)
{
FlagsData *data = NULL;
volatile VALUE str = rb_str_new("#<", 2);
char number[16] = "";
Data_Get_Struct(value, FlagsData, data);
rb_str_cat2(str, rb_obj_classname(value));
rb_str_cat2(str, " - ");
rb_str_cat2(str, data->name);
rb_str_cat2(str, "(");
sprintf(number, "%i", data->value);
rb_str_cat2(str, number);
rb_str_cat2(str, ")>");
return str;
}
|
#name ⇒ Object
133 134 135 136 137 138 139 140 |
# File 'ext/soup/soup.c', line 133
static VALUE rubber_flags_name(VALUE value)
{
FlagsData *data = NULL;
Data_Get_Struct(value, FlagsData, data);
return rb_str_new2(data->name);
}
|
#to_i ⇒ Object
154 155 156 157 158 159 160 161 |
# File 'ext/soup/soup.c', line 154
static VALUE rubber_flags_to_i(VALUE value)
{
FlagsData *data = NULL;
Data_Get_Struct(value, FlagsData, data);
return INT2FIX(data->value);
}
|
#to_s ⇒ Object
125 126 127 128 129 130 131 132 |
# File 'ext/soup/soup.c', line 125
static VALUE rubber_flags_to_s(VALUE value)
{
FlagsData *data = NULL;
Data_Get_Struct(value, FlagsData, data);
return rb_str_new2(data->fullname);
}
|
#to_str ⇒ Object
125 126 127 128 129 130 131 132 |
# File 'ext/soup/soup.c', line 125
static VALUE rubber_flags_to_s(VALUE value)
{
FlagsData *data = NULL;
Data_Get_Struct(value, FlagsData, data);
return rb_str_new2(data->fullname);
}
|
#|(other) ⇒ Object
197 198 199 200 201 202 203 204 205 206 207 208 209 210 |
# File 'ext/soup/soup.c', line 197
static VALUE rubber_flags_or(VALUE value, VALUE other)
{
FlagsData *data = NULL;
int original = 0;
int other_num = 0;
Data_Get_Struct(value, FlagsData, data);
original = data->value;
other_num = flags_value_to_int(value, CLASS_OF(value));
return make_flags_value(CLASS_OF(value), original | other_num, "", "");
}
|