Class: Enum

Inherits:
Object
  • Object
show all
Defined in:
ext/smb/smb.c

Direct Known Subclasses

SMB::Type

Instance Method Summary collapse

Instance Method Details

#<=>(other) ⇒ Object



109
110
111
112
113
114
115
116
117
118
119
# File 'ext/smb/smb.c', line 109

static VALUE rubber_enum_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



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'ext/smb/smb.c', line 130

static VALUE rubber_enum_coerce(VALUE value, VALUE other)
{
	EnumData *data = NULL;
	
	Data_Get_Struct(value, EnumData, data);
	
	switch(TYPE(other))
	{
	case T_FIXNUM:
	case T_BIGNUM:
		return INT2FIX(data->value);
	case T_FLOAT:
		return rb_float_new(data->value);
	default:
		return Qnil;
	}
}

#fullnameObject



92
93
94
95
96
97
98
99
# File 'ext/smb/smb.c', line 92

static VALUE rubber_enum_to_s(VALUE value)
{
	EnumData *data = NULL;
	
	Data_Get_Struct(value, EnumData, data);
	
	return rb_str_new2(data->fullname);
}

#inspectObject



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'ext/smb/smb.c', line 73

static VALUE rubber_enum_inspect(VALUE value)
{
	EnumData *data = NULL;
	volatile VALUE str = rb_str_new("#<", 2);
	char number[16] = ""; 
	
	Data_Get_Struct(value, EnumData, 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;
}

#nameObject



100
101
102
103
104
105
106
107
# File 'ext/smb/smb.c', line 100

static VALUE rubber_enum_name(VALUE value)
{
	EnumData *data = NULL;
	
	Data_Get_Struct(value, EnumData, data);
	
	return rb_str_new2(data->name);
}

#to_iObject



121
122
123
124
125
126
127
128
# File 'ext/smb/smb.c', line 121

static VALUE rubber_enum_to_i(VALUE value)
{
	EnumData *data = NULL;
	
	Data_Get_Struct(value, EnumData, data);
	
	return INT2FIX(data->value);
}

#to_sObject



92
93
94
95
96
97
98
99
# File 'ext/smb/smb.c', line 92

static VALUE rubber_enum_to_s(VALUE value)
{
	EnumData *data = NULL;
	
	Data_Get_Struct(value, EnumData, data);
	
	return rb_str_new2(data->fullname);
}

#to_strObject



92
93
94
95
96
97
98
99
# File 'ext/smb/smb.c', line 92

static VALUE rubber_enum_to_s(VALUE value)
{
	EnumData *data = NULL;
	
	Data_Get_Struct(value, EnumData, data);
	
	return rb_str_new2(data->fullname);
}