rugged 0.22.0b2 → 0.22.0b3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rugged/rugged_blob.c +21 -53
- data/lib/rugged/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41fe2ca17d9e55ea205e190f8d0c23ff9d6a388f
|
4
|
+
data.tar.gz: 8a2e8c0501f8383b6c8ce747d212b7aa0d9a07fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca4649799366b724b65b4c257148c366f7e02545fa1834ff2eaf7742c33c4901e498d80a5ee5be1bd7b658051d3f626b2395d0ced84777cc488d1995cc1f1c51
|
7
|
+
data.tar.gz: ce5ac5b5439329dd959225a6225884136b7a78a5b501502c52dee7a9cc59b9e89d5343fdb7ada26a922cd96cf4052046ba5e4576005c49e6b633638db3d3c6df
|
data/ext/rugged/rugged_blob.c
CHANGED
@@ -32,7 +32,6 @@ extern VALUE rb_cRuggedRepo;
|
|
32
32
|
static ID id_read;
|
33
33
|
|
34
34
|
VALUE rb_cRuggedBlob;
|
35
|
-
VALUE rb_cRuggedBlobLoader;
|
36
35
|
VALUE rb_cRuggedBlobSig;
|
37
36
|
|
38
37
|
/*
|
@@ -480,75 +479,46 @@ static VALUE rb_git_blob_diff(int argc, VALUE *argv, VALUE self)
|
|
480
479
|
return rugged_patch_new(self, patch);
|
481
480
|
}
|
482
481
|
|
483
|
-
|
484
|
-
* call-seq:
|
485
|
-
* Rugged::Blob::Loader.new(repository, max_size) -> Blob::Loader instance
|
486
|
-
*
|
487
|
-
* Create a Blob Loader instance that allows you to bring several blobs
|
488
|
-
* from the object database with no extra memory cost by reusing the same
|
489
|
-
* underlying storage.
|
490
|
-
*
|
491
|
-
* repository - the repo where the blobs will be loaded from
|
492
|
-
* max_size - the maximum size for the underlying storage; blobs larger than
|
493
|
-
* that size will be truncated
|
494
|
-
*
|
495
|
-
* Example:
|
496
|
-
*
|
497
|
-
* loader = loader = Rugged::Blob::Loader.new(@repo, 4 * 1024)
|
498
|
-
* #=> Blob::Loader instance
|
499
|
-
*
|
500
|
-
* loader.load("d70d245ed97ed2aa596dd1af6536e4bfdb047b69")
|
501
|
-
* #=> [contents, real_size]
|
502
|
-
*/
|
503
|
-
static VALUE rb_git_blob_loader_new(VALUE self, VALUE rb_repo, VALUE rb_max_bytes)
|
482
|
+
static VALUE rb_git_blob_to_buffer(int argc, VALUE *argv, VALUE self)
|
504
483
|
{
|
505
|
-
|
506
|
-
|
507
|
-
rugged_check_repo(rb_repo);
|
508
|
-
Check_Type(rb_max_bytes, T_FIXNUM);
|
509
|
-
|
510
|
-
/* extra byte for NULL-termination */
|
511
|
-
max_bytes = (long)FIX2INT(rb_max_bytes) + 1;
|
512
|
-
|
513
|
-
rb_iv_set(self, "@repository", rb_repo);
|
514
|
-
rb_iv_set(self, "buffer", rb_str_buf_new(max_bytes));
|
515
|
-
return Qnil;
|
516
|
-
}
|
517
|
-
|
518
|
-
static VALUE rb_git_blob_loader_load(VALUE self, VALUE rb_sha1)
|
519
|
-
{
|
520
|
-
VALUE rb_ret, rb_repo, rb_buffer;
|
484
|
+
VALUE rb_repo, rb_sha1, rb_max_bytes;
|
485
|
+
VALUE rb_ret;
|
521
486
|
|
522
487
|
git_repository *repo = NULL;
|
523
488
|
git_blob *blob = NULL;
|
524
489
|
|
525
|
-
size_t size
|
490
|
+
size_t size;
|
526
491
|
const char *content;
|
527
492
|
|
528
|
-
|
529
|
-
rb_buffer = rb_iv_get(self, "buffer");
|
493
|
+
rb_scan_args(argc, argv, "21", &rb_repo, &rb_sha1, &rb_max_bytes);
|
530
494
|
|
531
|
-
Check_Type(rb_buffer, T_STRING);
|
532
495
|
rugged_check_repo(rb_repo);
|
533
496
|
Data_Get_Struct(rb_repo, git_repository, repo);
|
534
497
|
|
535
498
|
blob = (git_blob *)rugged_object_get(repo, rb_sha1, GIT_OBJ_BLOB);
|
536
499
|
|
537
500
|
content = git_blob_rawcontent(blob);
|
538
|
-
size =
|
539
|
-
capacity = rb_str_capacity(rb_buffer);
|
501
|
+
size = git_blob_rawsize(blob);
|
540
502
|
|
541
|
-
if (
|
542
|
-
|
503
|
+
if (!NIL_P(rb_max_bytes)) {
|
504
|
+
int maxbytes;
|
543
505
|
|
544
|
-
|
545
|
-
|
506
|
+
Check_Type(rb_max_bytes, T_FIXNUM);
|
507
|
+
maxbytes = FIX2INT(rb_max_bytes);
|
508
|
+
|
509
|
+
if (maxbytes >= 0 && (size_t)maxbytes < size)
|
510
|
+
size = (size_t)maxbytes;
|
511
|
+
}
|
546
512
|
|
547
513
|
rb_ret = rb_ary_new();
|
548
|
-
|
514
|
+
|
515
|
+
rb_ary_push(rb_ret, rb_str_new(content, size));
|
549
516
|
rb_ary_push(rb_ret, INT2FIX(git_blob_rawsize(blob)));
|
550
517
|
|
551
518
|
git_object_free((git_object*)blob);
|
519
|
+
|
520
|
+
/* TODO: LOC */
|
521
|
+
|
552
522
|
return rb_ret;
|
553
523
|
}
|
554
524
|
|
@@ -621,11 +591,9 @@ void Init_rugged_blob(void)
|
|
621
591
|
rb_define_singleton_method(rb_cRuggedBlob, "from_disk", rb_git_blob_from_disk, 2);
|
622
592
|
rb_define_singleton_method(rb_cRuggedBlob, "from_io", rb_git_blob_from_io, -1);
|
623
593
|
|
594
|
+
rb_define_singleton_method(rb_cRuggedBlob, "to_buffer", rb_git_blob_to_buffer, -1);
|
595
|
+
|
624
596
|
rb_cRuggedBlobSig = rb_define_class_under(rb_cRuggedBlob, "HashSignature", rb_cObject);
|
625
597
|
rb_define_singleton_method(rb_cRuggedBlobSig, "new", rb_git_blob_sig_new, -1);
|
626
598
|
rb_define_singleton_method(rb_cRuggedBlobSig, "compare", rb_git_blob_sig_compare, 2);
|
627
|
-
|
628
|
-
rb_cRuggedBlobLoader = rb_define_class_under(rb_cRuggedBlob, "Loader", rb_cObject);
|
629
|
-
rb_define_method(rb_cRuggedBlobLoader, "initialize", rb_git_blob_loader_new, 2);
|
630
|
-
rb_define_method(rb_cRuggedBlobLoader, "load", rb_git_blob_loader_load, 1);
|
631
599
|
}
|
data/lib/rugged/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rugged
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.22.
|
4
|
+
version: 0.22.0b3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Chacon
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-11-
|
12
|
+
date: 2014-11-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|