Method: Rugged::Tree::Builder.new
- Defined in:
- ext/rugged/rugged_tree.c
permalink .Tree::Builder.new(repository, [tree]) ⇒ Object
Create a new Rugged::Tree::Builder instance to write a tree to the given repository
.
If an optional tree
is given, the returned Tree::Builder will be initialized with the entry of tree
. Otherwise, the Tree::Builder will be empty and has to be filled manually.
727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 |
# File 'ext/rugged/rugged_tree.c', line 727 static VALUE rb_git_treebuilder_new(int argc, VALUE *argv, VALUE klass) { git_treebuilder *builder; git_repository *repo; git_tree *tree = NULL; VALUE rb_object, rb_builder, rb_repo; int error; if (rb_scan_args(argc, argv, "11", &rb_repo, &rb_object) == 2) { if (!rb_obj_is_kind_of(rb_object, rb_cRuggedTree)) rb_raise(rb_eTypeError, "A Rugged::Tree instance is required"); TypedData_Get_Struct(rb_object, git_tree, &rugged_object_type, tree); } rugged_check_repo(rb_repo); Data_Get_Struct(rb_repo, git_repository, repo); error = git_treebuilder_new(&builder, repo, tree); rugged_exception_check(error); rb_builder = Data_Wrap_Struct(klass, NULL, &rb_git_treebuilder_free, builder); rugged_set_owner(rb_builder, rb_repo); return rb_builder; } |