# Adding a method to String class as Ruby C extension

**URL:** <https://www.ruby-forum.com/t/adding-a-method-to-string-class-as-ruby-c-extension/164650>\
**Category:** Ruby\
**Created:** [April 3, 2009, 5:19pm UTC](https://www.ruby-forum.com/t/adding-a-method-to-string-class-as-ruby-c-extension/164650 "2009-04-03T17:19:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ISSSSaki\_Baz\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/51bf81/32.png) [@ISSSSaki\_Baz\_C](https://www.ruby-forum.com/u/ISSSSaki_Baz_C)\
**Post date:** [April 3, 2009, 5:19pm UTC](https://www.ruby-forum.com/t/adding-a-method-to-string-class-as-ruby-c-extension/164650/1 "2009-04-03T17:19:05Z")

</div>

Hi, I want to add a method to String class, and I want this method to  
be defined in C.

In the C code, to add a method I must do:

rb\_define\_method(myClass, “hello”, hello, arg\_count);

but I don’t know how to set myClass to point to String class.

To create a new class I should do:

VALUE myClass = rb\_define\_class\_under(myModule, “MyClass”,  
rb\_cObject);

Since rb\_cObject means Ruby Object class, could be rb\_cString what I’m  
looking for?

Thanks.

---

<div class="post-metadata">

**Author:** ![ISSSSaki\_Baz\_C](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/51bf81/32.png) [@ISSSSaki\_Baz\_C](https://www.ruby-forum.com/u/ISSSSaki_Baz_C)\
**Post date:** [April 3, 2009, 5:20pm UTC](https://www.ruby-forum.com/t/adding-a-method-to-string-class-as-ruby-c-extension/164650/2 "2009-04-03T17:20:50Z")

</div>

2009/4/3 IÃ±aki Baz C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Â VALUE myClass = rb\_define\_class\_under(myModule, “MyClass”, rb\_cObject);
> 
> Since rb\_cObject means Ruby Object class, could be rb\_cString what I’m  
> looking for?

Auto reply:  
I’ve found the following example:  
[http://bugs.gentoo.org/attachment.cgi?id=156407](http://bugs.gentoo.org/attachment.cgi?id=156407)  
so rb\_cString seems to be what I need.
