class Rugged::RemoteCollection
Public Class Methods
Creates and returns a new collection of remotes for the given
repo.
static VALUE rb_git_remote_collection_initialize(VALUE self, VALUE repo)
{
rugged_set_owner(self, repo);
return self;
}
Public Instance Methods
Lookup a remote in the collection with the given name.
Returns a new Rugged::Remote object or
nil if the remote doesn't exist.
@repo.remotes["origin"] #=> #<Rugged::Remote:0x00000001fbfa80>
static VALUE rb_git_remote_collection_aref(VALUE self, VALUE rb_name)
{
git_remote *remote;
git_repository *repo;
int error;
VALUE rb_repo = rugged_owner(self);
rugged_check_repo(rb_repo);
Data_Get_Struct(rb_repo, git_repository, repo);
Check_Type(rb_name, T_STRING);
error = git_remote_load(&remote, repo, StringValueCStr(rb_name));
if (error == GIT_ENOTFOUND)
return Qnil;
rugged_exception_check(error);
return rugged_remote_new(rb_repo, remote);
}
Add a new remote with name and url to
repository
-
url: a valid remote url -
name: a valid remote name
Returns a new Rugged::Remote object.
@repo.remotes.create('origin', 'git://github.com/libgit2/rugged.git') #=> #<Rugged::Remote:0x00000001fbfa80>
static VALUE rb_git_remote_collection_create(VALUE self, VALUE rb_name, VALUE rb_url)
{
git_remote *remote;
git_repository *repo;
int error;
VALUE rb_repo = rugged_owner(self);
rugged_check_repo(rb_repo);
Data_Get_Struct(rb_repo, git_repository, repo);
Check_Type(rb_name, T_STRING);
Check_Type(rb_url, T_STRING);
rugged_validate_remote_url(rb_url);
error = git_remote_create(
&remote,
repo,
StringValueCStr(rb_name),
StringValueCStr(rb_url));
rugged_exception_check(error);
return rugged_remote_new(rb_repo, remote);
}
Return a new remote with url in repository , the
remote is not persisted:
-
url: a valid remote url
Returns a new Rugged::Remote object.
@repo.remotes.create_anonymous('git://github.com/libgit2/libgit2.git') #=> #<Rugged::Remote:0x00000001fbfa80>
static VALUE rb_git_remote_collection_create_anonymous(VALUE self, VALUE rb_url)
{
git_remote *remote;
git_repository *repo;
int error;
VALUE rb_repo = rugged_owner(self);
rugged_check_repo(rb_repo);
Data_Get_Struct(rb_repo, git_repository, repo);
Check_Type(rb_url, T_STRING);
rugged_validate_remote_url(rb_url);
error = git_remote_create_anonymous(
&remote,
repo,
StringValueCStr(rb_url),
NULL);
rugged_exception_check(error);
return rugged_remote_new(rb_repo, remote);
}
Delete the specified remote.
repo.remotes.delete("origin")
# Remote no longer exists in the configuration.
static VALUE rb_git_remote_collection_delete(VALUE self, VALUE rb_name_or_remote)
{
VALUE rb_repo = rugged_owner(self);
git_remote *remote;
git_repository *repo;
int error;
if (rb_obj_is_kind_of(rb_name_or_remote, rb_cRuggedRemote))
rb_name_or_remote = rb_funcall(rb_name_or_remote, rb_intern("name"), 0);
if (TYPE(rb_name_or_remote) != T_STRING)
rb_raise(rb_eTypeError, "Expecting a String or Rugged::Remote instance");
rugged_check_repo(rb_repo);
Data_Get_Struct(rb_repo, git_repository, repo);
error = git_remote_load(&remote, repo, StringValueCStr(rb_name_or_remote));
rugged_exception_check(error);
error = git_remote_delete(remote);
rugged_exception_check(error);
return Qnil;
}
Iterate through all the remotes in the collection's
repository.
The given block will be called once with a Rugged::Remote instance for each remote.
If no block is given, an enumerator will be returned.
static VALUE rb_git_remote_collection_each(VALUE self)
{
return rb_git_remote_collection__each(self, 0);
}
Iterate through all the remote names in the collection's
repository.
The given block will be called once with the name of each remote.
If no block is given, an enumerator will be returned.
static VALUE rb_git_remote_collection_each_name(VALUE self)
{
return rb_git_remote_collection__each(self, 1);
}