tarruby 0.1.3-mswin32 → 0.1.4-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 +5 -0
- data/ext/tarruby.c +32 -2
- data/lib/i386-mswin32/tarruby.so +0 -0
- metadata +2 -2
    
        data/README.txt
    CHANGED
    
    | @@ -48,11 +48,16 @@ gem install tarruby | |
| 48 48 |  | 
| 49 49 | 
             
                require 'tarruby'
         | 
| 50 50 |  | 
| 51 | 
            +
                buf = 'ABCDEFG'
         | 
| 52 | 
            +
                
         | 
| 51 53 | 
             
                Tar.open('bar.tar', File::CREAT | File::WRONLY, 0644, Tar::GNU | Tar::VERBOSE) do |tar|
         | 
| 52 54 | 
             
                  Dir.glob('**/*.c').each do |filename|
         | 
| 53 55 | 
             
                    tar.append_file(filename)
         | 
| 54 56 | 
             
                  end
         | 
| 55 57 |  | 
| 58 | 
            +
                  # append from buffer
         | 
| 59 | 
            +
                  tar.append_buffer('zoo.txt, buf)
         | 
| 60 | 
            +
                  
         | 
| 56 61 | 
             
                  ##if append directory
         | 
| 57 62 | 
             
                  #tar.append_tree('dirname')
         | 
| 58 63 | 
             
                end
         | 
    
        data/ext/tarruby.c
    CHANGED
    
    | @@ -33,7 +33,7 @@ | |
| 33 33 |  | 
| 34 34 | 
             
            #define INT2TIME(i) rb_funcall(rb_cTime, rb_intern("at"), 1, INT2NUM(i))
         | 
| 35 35 |  | 
| 36 | 
            -
            #define VERSION "0.1. | 
| 36 | 
            +
            #define VERSION "0.1.4"
         | 
| 37 37 |  | 
| 38 38 | 
             
            static VALUE Tar;
         | 
| 39 39 | 
             
            static VALUE Error;
         | 
| @@ -271,6 +271,35 @@ static VALUE tarruby_append_file(int argc, VALUE *argv, VALUE self) { | |
| 271 271 | 
             
              return Qnil;
         | 
| 272 272 | 
             
            }
         | 
| 273 273 |  | 
| 274 | 
            +
            static int tarruby_append_buffer0(char *buf, int len, void *data) {
         | 
| 275 | 
            +
              char **p_buffer = (char **) data;
         | 
| 276 | 
            +
              memcpy(buf, *p_buffer, len);
         | 
| 277 | 
            +
              p_buffer += len;
         | 
| 278 | 
            +
              return len;
         | 
| 279 | 
            +
            }
         | 
| 280 | 
            +
             | 
| 281 | 
            +
            /* */
         | 
| 282 | 
            +
            static VALUE tarruby_append_buffer(VALUE self, VALUE savename, VALUE buffer) {
         | 
| 283 | 
            +
              struct tarruby_tar *p_tar;
         | 
| 284 | 
            +
              char *s_savename, *s_buffer;
         | 
| 285 | 
            +
              int i_size;
         | 
| 286 | 
            +
             | 
| 287 | 
            +
              Check_Type(savename, T_STRING);
         | 
| 288 | 
            +
              Check_Type(buffer, T_STRING);
         | 
| 289 | 
            +
              s_savename = RSTRING_PTR(savename);
         | 
| 290 | 
            +
              strip_sep(s_savename);
         | 
| 291 | 
            +
              s_buffer = RSTRING_PTR(buffer);
         | 
| 292 | 
            +
              i_size = RSTRING_LEN(buffer);
         | 
| 293 | 
            +
             | 
| 294 | 
            +
              Data_Get_Struct(self, struct tarruby_tar, p_tar);
         | 
| 295 | 
            +
             | 
| 296 | 
            +
              if (tar_append_function(p_tar->tar, s_savename, i_size, (void *) &s_buffer, tarruby_append_buffer0) != 0) {
         | 
| 297 | 
            +
                rb_raise(Error, "Append buffer failed: %s", strerror(errno));
         | 
| 298 | 
            +
              }
         | 
| 299 | 
            +
             | 
| 300 | 
            +
              return Qnil;
         | 
| 301 | 
            +
            }
         | 
| 302 | 
            +
             | 
| 274 303 | 
             
            /* */
         | 
| 275 304 | 
             
            static VALUE tarruby_append_tree(int argc, VALUE *argv, VALUE self) {
         | 
| 276 305 | 
             
              VALUE realdir, savedir;
         | 
| @@ -323,7 +352,7 @@ static VALUE tarruby_extract_file(VALUE self, VALUE realname) { | |
| 323 352 | 
             
            static int tarruby_extract_buffer0(char *buf, int len, void *data) {
         | 
| 324 353 | 
             
              VALUE buffer = (VALUE) data;
         | 
| 325 354 | 
             
              rb_str_buf_cat(buffer, buf, len);
         | 
| 326 | 
            -
              return  | 
| 355 | 
            +
              return len;
         | 
| 327 356 | 
             
            }
         | 
| 328 357 |  | 
| 329 358 | 
             
            /* */
         | 
| @@ -650,6 +679,7 @@ void DLLEXPORT Init_tarruby() { | |
| 650 679 | 
             
            #endif
         | 
| 651 680 | 
             
              rb_define_method(Tar, "close", tarruby_close, 0);
         | 
| 652 681 | 
             
              rb_define_method(Tar, "append_file", tarruby_append_file, -1);
         | 
| 682 | 
            +
              rb_define_method(Tar, "append_buffer", tarruby_append_buffer, 2);
         | 
| 653 683 | 
             
              rb_define_method(Tar, "append_tree", tarruby_append_tree, -1);
         | 
| 654 684 | 
             
              rb_define_method(Tar, "extract_file", tarruby_extract_file, 1);
         | 
| 655 685 | 
             
              rb_define_method(Tar, "extract_buffer", tarruby_extract_buffer, 0);
         | 
    
        data/lib/i386-mswin32/tarruby.so
    CHANGED
    
    | Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: tarruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 0.1. | 
| 4 | 
            +
              version: 0.1.4
         | 
| 5 5 | 
             
            platform: mswin32
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - winebarrel
         | 
| @@ -9,7 +9,7 @@ autorequire: | |
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 |  | 
| 12 | 
            -
            date: 2008-09- | 
| 12 | 
            +
            date: 2008-09-16 00:00:00 +09:00
         | 
| 13 13 | 
             
            default_executable: 
         | 
| 14 14 | 
             
            dependencies: []
         | 
| 15 15 |  |