2012-05-02 19:15:11 -04:00
|
|
|
#include "rr.h"
|
|
|
|
|
|
|
|
namespace rr {
|
2012-05-03 18:21:25 -04:00
|
|
|
|
|
|
|
void String::Init() {
|
2012-05-08 17:04:47 -04:00
|
|
|
ClassBuilder("String", "Value").
|
2012-05-03 18:21:25 -04:00
|
|
|
defineSingletonMethod("New", &New).
|
2012-05-09 14:12:44 -04:00
|
|
|
defineSingletonMethod("Concat", &Concat).
|
2012-05-08 17:04:47 -04:00
|
|
|
defineMethod("Utf8Value", &Utf8Value).
|
|
|
|
store(&Class);
|
2012-05-03 18:21:25 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
VALUE String::New(VALUE StringClass, VALUE string) {
|
2012-05-15 12:46:14 -04:00
|
|
|
return String::create(v8::String::New(RSTRING_PTR(string), (int)RSTRING_LEN(string)));
|
2012-05-03 18:21:25 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
VALUE String::Utf8Value(VALUE self) {
|
|
|
|
String str(self);
|
2012-05-03 18:48:49 -04:00
|
|
|
return rb_str_new(*v8::String::Utf8Value(str.GetHandle()), str->Utf8Length());
|
2012-05-02 19:15:11 -04:00
|
|
|
}
|
|
|
|
|
2012-05-09 14:12:44 -04:00
|
|
|
VALUE String::Concat(VALUE self, VALUE left, VALUE right) {
|
|
|
|
return Convert(v8::String::Concat(String(left), String(right)));
|
|
|
|
}
|
|
|
|
|
2012-05-03 17:34:51 -04:00
|
|
|
} //namespace rr
|