Method: Rugged::Config.new
- Defined in:
- ext/rugged/rugged_config.c
permalink .new(path) ⇒ Object
Open the file specified in path
as a Rugged::Config
file. If path
cannot be found, or the file is an invalid Git config, an exception will be raised.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'ext/rugged/rugged_config.c', line 33
static VALUE rb_git_config_new(VALUE klass, VALUE rb_path)
{
git_config *config = NULL;
if (TYPE(rb_path) == T_ARRAY) {
int error, i;
error = git_config_new(&config);
rugged_exception_check(error);
for (i = 0; i < RARRAY_LEN(rb_path) && !error; ++i) {
VALUE f = rb_ary_entry(rb_path, i);
Check_Type(f, T_STRING);
error = git_config_add_file_ondisk(config, StringValueCStr(f), i + 1, NULL, 1);
}
if (error) {
git_config_free(config);
rugged_exception_check(error);
}
} else if (TYPE(rb_path) == T_STRING) {
rugged_exception_check(
git_config_open_ondisk(&config, StringValueCStr(rb_path))
);
} else {
rb_raise(rb_eTypeError, "Expecting a filename or an array of filenames");
}
return rugged_config_new(klass, Qnil, config);
}
|