Browse Source

added utils library

v0.1.x
Brett Langdon 13 years ago
parent
commit
ca69dca255
3 changed files with 47 additions and 0 deletions
  1. +1
    -0
      binding.gyp
  2. +31
    -0
      src/utils.cc
  3. +15
    -0
      src/utils.h

+ 1
- 0
binding.gyp View File

@ -3,6 +3,7 @@
{
"target_name": "nodelua",
"sources": [
"src/utils.cc",
"src/luaobject.cc",
"src/nodelua.cc"
],


+ 31
- 0
src/utils.cc View File

@ -0,0 +1,31 @@
#include "utils.h"
char * get_str(v8::Local<v8::Value> val){
if(!val->IsString()){
v8::ThrowException(v8::Exception::TypeError(v8::String::New("Argument Must Be A String")));
return NULL;
}
v8::String::AsciiValue val_string(val);
char * val_char_ptr = (char *) malloc(val_string.length() + 1);
strcpy(val_char_ptr, *val_string);
return val_char_ptr;
}
v8::Local<v8::Value> lua_to_value(lua_State* L, int i){
switch(lua_type(L, i)){
case LUA_TBOOLEAN:
return v8::Local<v8::Boolean>::New(v8::Boolean::New((int)lua_toboolean(L, i)));
break;
case LUA_TNUMBER:
return v8::Local<v8::Number>::New(v8::Number::New(lua_tonumber(L, i)));
break;
case LUA_TSTRING:
return v8::String::New((char *)lua_tostring(L, i));
break;
default:
return v8::Local<v8::Primitive>::New(v8::Undefined());
break;
}
}

+ 15
- 0
src/utils.h View File

@ -0,0 +1,15 @@
#ifndef LUAUTILS_H
#define LUAUTILS_H
#include <node.h>
extern "C"{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
char * get_str(v8::Local<v8::Value> val);
v8::Local<v8::Value> lua_to_value(lua_State* L, int);
#endif

Loading…
Cancel
Save