@@ -175,6 +175,50 @@ def test_do_attr_rb_attr
175
175
assert_equal 'This is a writer' , writer . comment . text
176
176
end
177
177
178
+ def test_do_attr_rb_attr_2
179
+ content = <<-EOF
180
+ void Init_Blah(void) {
181
+ cBlah = rb_define_class("Blah", rb_cObject);
182
+
183
+ /*
184
+ * This is an accessor
185
+ */
186
+ rb_attr(cBlah, rb_intern_const("accessor"), 1, 1, Qfalse);
187
+
188
+ /*
189
+ * This is a reader
190
+ */
191
+ rb_attr(cBlah, rb_intern_const("reader"), 1, 0, Qfalse);
192
+
193
+ /*
194
+ * This is a writer
195
+ */
196
+ rb_attr(cBlah, rb_intern_const("writer"), 0, 1, Qfalse);
197
+ }
198
+ EOF
199
+
200
+ klass = util_get_class content , 'cBlah'
201
+
202
+ attrs = klass . attributes
203
+ assert_equal 3 , attrs . length , attrs . inspect
204
+
205
+ accessor = attrs . shift
206
+ assert_equal 'accessor' , accessor . name
207
+ assert_equal 'RW' , accessor . rw
208
+ assert_equal 'This is an accessor' , accessor . comment . text
209
+ assert_equal @top_level , accessor . file
210
+
211
+ reader = attrs . shift
212
+ assert_equal 'reader' , reader . name
213
+ assert_equal 'R' , reader . rw
214
+ assert_equal 'This is a reader' , reader . comment . text
215
+
216
+ writer = attrs . shift
217
+ assert_equal 'writer' , writer . name
218
+ assert_equal 'W' , writer . rw
219
+ assert_equal 'This is a writer' , writer . comment . text
220
+ end
221
+
178
222
def test_do_attr_rb_define_attr
179
223
content = <<-EOF
180
224
void Init_Blah(void) {
0 commit comments