rua 0.3.0-mswin32 → 0.3.1-mswin32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.txt +4 -0
 - data/ext/rua.c +43 -4
 - data/lib/i386-mswin32/rua.so +0 -0
 - metadata +2 -2
 
    
        data/README.txt
    CHANGED
    
    | 
         @@ -18,6 +18,8 @@ gem install rua 
     | 
|
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
            http://rubyforge.org/frs/?group_id=4845
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
      
 21 
     | 
    
         
            +
            http://storehouse.sakura.ne.jp/rua/
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       21 
23 
     | 
    
         
             
            == Example
         
     | 
| 
       22 
24 
     | 
    
         | 
| 
       23 
25 
     | 
    
         
             
                require 'rua'
         
     | 
| 
         @@ -26,6 +28,8 @@ http://rubyforge.org/frs/?group_id=4845 
     | 
|
| 
       26 
28 
     | 
    
         | 
| 
       27 
29 
     | 
    
         
             
                rua = Rua.new(:all)
         
     | 
| 
       28 
30 
     | 
    
         
             
                #rua.openlibs(:base, :package, :string)
         
     | 
| 
      
 31 
     | 
    
         
            +
                #rua.secure = false
         
     | 
| 
      
 32 
     | 
    
         
            +
                rua.abort_by_error = false
         
     | 
| 
       29 
33 
     | 
    
         
             
                rua.error_handler = lambda do |e, ar|
         
     | 
| 
       30 
34 
     | 
    
         
             
                  p e
         
     | 
| 
       31 
35 
     | 
    
         
             
                  p ar.to_hash
         
     | 
    
        data/ext/rua.c
    CHANGED
    
    | 
         @@ -16,7 +16,7 @@ __declspec(dllexport) void Init_rua(void); 
     | 
|
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
            #include "rua.h"
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            #define VERSION "0.3. 
     | 
| 
      
 19 
     | 
    
         
            +
            #define VERSION "0.3.1"
         
     | 
| 
       20 
20 
     | 
    
         
             
            #define REF_RBOBJ "self"
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
            static const char *insecure_methods[] = {
         
     | 
| 
         @@ -94,6 +94,8 @@ void Init_rua() { 
     | 
|
| 
       94 
94 
     | 
    
         
             
              rb_define_method(Rua, "[]=", rua_set, 2);
         
     | 
| 
       95 
95 
     | 
    
         
             
              rb_define_method(Rua, "secure", rua_get_secure, 0);
         
     | 
| 
       96 
96 
     | 
    
         
             
              rb_define_method(Rua, "secure=", rua_set_secure, 1);
         
     | 
| 
      
 97 
     | 
    
         
            +
              rb_define_method(Rua, "abort_by_error", rua_get_abort_by_error, 0);
         
     | 
| 
      
 98 
     | 
    
         
            +
              rb_define_method(Rua, "abort_by_error=", rua_set_abort_by_error, 1);
         
     | 
| 
       97 
99 
     | 
    
         
             
              rb_define_method(Rua, "error_handler", rua_get_error_handler, 0);
         
     | 
| 
       98 
100 
     | 
    
         
             
              rb_define_method(Rua, "error_handler=", rua_set_error_handler, 1);
         
     | 
| 
       99 
101 
     | 
    
         
             
              rb_define_method(Rua, "method_missing", rua_method_missing, -1);
         
     | 
| 
         @@ -138,6 +140,8 @@ static VALUE rua_alloc(VALUE klass) { 
     | 
|
| 
       138 
140 
     | 
    
         
             
              p->R = ALLOC(struct rua_state);
         
     | 
| 
       139 
141 
     | 
    
         
             
              p->R->rua = Qnil;
         
     | 
| 
       140 
142 
     | 
    
         
             
              p->R->error_handler = Qnil;
         
     | 
| 
      
 143 
     | 
    
         
            +
              p->R->secure = 1;
         
     | 
| 
      
 144 
     | 
    
         
            +
              p->R->abort_by_error = 1;
         
     | 
| 
       141 
145 
     | 
    
         
             
              return Data_Wrap_Struct(klass, rua_mark, rua_free, p);
         
     | 
| 
       142 
146 
     | 
    
         
             
            }
         
     | 
| 
       143 
147 
     | 
    
         | 
| 
         @@ -169,6 +173,7 @@ static VALUE rua_initialize(int argc, VALUE *argv, VALUE self) { 
     | 
|
| 
       169 
173 
     | 
    
         
             
              p->R->rua = self;
         
     | 
| 
       170 
174 
     | 
    
         
             
              p->R->error_handler = Qnil;
         
     | 
| 
       171 
175 
     | 
    
         
             
              p->R->secure = 1;
         
     | 
| 
      
 176 
     | 
    
         
            +
              p->R->abort_by_error = 1;
         
     | 
| 
       172 
177 
     | 
    
         | 
| 
       173 
178 
     | 
    
         
             
              if (argc > 0) {
         
     | 
| 
       174 
179 
     | 
    
         
             
                rua_openlibs(argc, argv, self);
         
     | 
| 
         @@ -312,6 +317,34 @@ static VALUE rua_set_secure(VALUE self, VALUE secure) { 
     | 
|
| 
       312 
317 
     | 
    
         
             
              return Qnil;
         
     | 
| 
       313 
318 
     | 
    
         
             
            }
         
     | 
| 
       314 
319 
     | 
    
         | 
| 
      
 320 
     | 
    
         
            +
            /**
         
     | 
| 
      
 321 
     | 
    
         
            +
             * get abort flag.
         
     | 
| 
      
 322 
     | 
    
         
            +
             */
         
     | 
| 
      
 323 
     | 
    
         
            +
            static VALUE rua_get_abort_by_error(VALUE self) {
         
     | 
| 
      
 324 
     | 
    
         
            +
              struct rua *p;
         
     | 
| 
      
 325 
     | 
    
         
            +
             
     | 
| 
      
 326 
     | 
    
         
            +
              Data_Get_Struct(self, struct rua, p);
         
     | 
| 
      
 327 
     | 
    
         
            +
              return p->R->abort_by_error ? Qtrue : Qfalse;
         
     | 
| 
      
 328 
     | 
    
         
            +
            }
         
     | 
| 
      
 329 
     | 
    
         
            +
             
     | 
| 
      
 330 
     | 
    
         
            +
            /**
         
     | 
| 
      
 331 
     | 
    
         
            +
             * set abort flag.
         
     | 
| 
      
 332 
     | 
    
         
            +
             */
         
     | 
| 
      
 333 
     | 
    
         
            +
            static VALUE rua_set_abort_by_error(VALUE self, VALUE abort_by_error) {
         
     | 
| 
      
 334 
     | 
    
         
            +
              struct rua *p;
         
     | 
| 
      
 335 
     | 
    
         
            +
             
     | 
| 
      
 336 
     | 
    
         
            +
              Data_Get_Struct(self, struct rua, p);
         
     | 
| 
      
 337 
     | 
    
         
            +
             
     | 
| 
      
 338 
     | 
    
         
            +
              switch (TYPE(abort_by_error)) {
         
     | 
| 
      
 339 
     | 
    
         
            +
              case T_TRUE:  p->R->abort_by_error = 1; break;
         
     | 
| 
      
 340 
     | 
    
         
            +
              case T_FALSE: p->R->abort_by_error = 0; break;
         
     | 
| 
      
 341 
     | 
    
         
            +
              default:
         
     | 
| 
      
 342 
     | 
    
         
            +
                rb_raise(rb_eTypeError, "wrong argument type %s (expected TrueClass or FalseClass)", rua_classname_ptr(abort_by_error));
         
     | 
| 
      
 343 
     | 
    
         
            +
                break;
         
     | 
| 
      
 344 
     | 
    
         
            +
              }
         
     | 
| 
      
 345 
     | 
    
         
            +
             
     | 
| 
      
 346 
     | 
    
         
            +
              return Qnil;
         
     | 
| 
      
 347 
     | 
    
         
            +
            }
         
     | 
| 
       315 
348 
     | 
    
         | 
| 
       316 
349 
     | 
    
         
             
            /**
         
     | 
| 
       317 
350 
     | 
    
         
             
             * get error handler.
         
     | 
| 
         @@ -847,7 +880,7 @@ static void rua_newtable_from_obj(lua_State *L, VALUE obj, struct rua_state *R) 
     | 
|
| 
       847 
880 
     | 
    
         | 
| 
       848 
881 
     | 
    
         
             
            static int rua_proc_call(lua_State *L) {
         
     | 
| 
       849 
882 
     | 
    
         
             
              struct rua_state *R;
         
     | 
| 
       850 
     | 
    
         
            -
              VALUE proc, args, last, retval, errargs;
         
     | 
| 
      
 883 
     | 
    
         
            +
              VALUE proc, args, last, retval, errargs, errmsg;
         
     | 
| 
       851 
884 
     | 
    
         
             
              int i, n, status;
         
     | 
| 
       852 
885 
     | 
    
         
             
              lua_Debug ar;
         
     | 
| 
       853 
886 
     | 
    
         | 
| 
         @@ -870,11 +903,13 @@ static int rua_proc_call(lua_State *L) { 
     | 
|
| 
       870 
903 
     | 
    
         
             
              }
         
     | 
| 
       871 
904 
     | 
    
         | 
| 
       872 
905 
     | 
    
         
             
              if (status != 0) {
         
     | 
| 
      
 906 
     | 
    
         
            +
                errmsg = rb_check_convert_type(ruby_errinfo, T_STRING, "String", "to_s");
         
     | 
| 
      
 907 
     | 
    
         
            +
             
     | 
| 
       873 
908 
     | 
    
         
             
                if (rua_obj_is_executable(R->error_handler)) {
         
     | 
| 
       874 
909 
     | 
    
         
             
                  errargs = rb_ary_new();
         
     | 
| 
       875 
910 
     | 
    
         
             
                  rb_ary_push(errargs, ruby_errinfo);
         
     | 
| 
       876 
911 
     | 
    
         | 
| 
       877 
     | 
    
         
            -
                  if (lua_getstack(L,  
     | 
| 
      
 912 
     | 
    
         
            +
                  if (lua_getstack(L, 1, &ar) && lua_getinfo(L, "nSlu", &ar)) {
         
     | 
| 
       878 
913 
     | 
    
         
             
                    rb_ary_push(errargs, rua_toruadebug(&ar));
         
     | 
| 
       879 
914 
     | 
    
         
             
                  }
         
     | 
| 
       880 
915 
     | 
    
         | 
| 
         @@ -887,8 +922,12 @@ static int rua_proc_call(lua_State *L) { 
     | 
|
| 
       887 
922 
     | 
    
         
             
                } else {
         
     | 
| 
       888 
923 
     | 
    
         
             
                  retval = Qnil;
         
     | 
| 
       889 
924 
     | 
    
         
             
                }
         
     | 
| 
      
 925 
     | 
    
         
            +
             
     | 
| 
      
 926 
     | 
    
         
            +
                if (R->abort_by_error) {
         
     | 
| 
      
 927 
     | 
    
         
            +
                  return luaL_error(L, "%s", StringValuePtr(errmsg));
         
     | 
| 
      
 928 
     | 
    
         
            +
                }
         
     | 
| 
       890 
929 
     | 
    
         
             
              }
         
     | 
| 
       891 
     | 
    
         
            -
             
     | 
| 
      
 930 
     | 
    
         
            +
             
     | 
| 
       892 
931 
     | 
    
         
             
              rua_pushrbval(L, retval, R);
         
     | 
| 
       893 
932 
     | 
    
         
             
              return 1;
         
     | 
| 
       894 
933 
     | 
    
         
             
            }
         
     | 
    
        data/lib/i386-mswin32/rua.so
    CHANGED
    
    | 
         Binary file 
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ rubygems_version: 0.9.2 
     | 
|
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: rua
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0.3. 
     | 
| 
       7 
     | 
    
         
            -
            date: 2007-11- 
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.3.1
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2007-11-25 00:00:00 +09:00
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: Rua is a library for using Lua under Ruby.
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            - lib/i386-mswin32
         
     |