class Rugged::Settings

Public Class Methods

Settings[option] → value click to toggle source

Gets the value of a libgit2 library option.

static VALUE rb_git_get_option(VALUE self, VALUE option)
{
        const char *opt;

        Check_Type(option, T_STRING);
        opt = StringValueCStr(option);

        if (strcmp(opt, "mwindow_size") == 0) {
                size_t val;
                git_libgit2_opts(GIT_OPT_GET_MWINDOW_SIZE, &val);
                return SIZET2NUM(val);
        }

        else if (strcmp(opt, "mwindow_mapped_limit") == 0) {
                size_t val;
                git_libgit2_opts(GIT_OPT_GET_MWINDOW_MAPPED_LIMIT, &val);
                return SIZET2NUM(val);
        }

        else if (strcmp(opt, "search_path_global") == 0) {
                return get_search_path(GIT_CONFIG_LEVEL_GLOBAL);
        }

        else if (strcmp(opt, "search_path_xdg") == 0) {
                return get_search_path(GIT_CONFIG_LEVEL_XDG);
        }

        else if (strcmp(opt, "search_path_system") == 0) {
                return get_search_path(GIT_CONFIG_LEVEL_SYSTEM);
        }

        else {
                rb_raise(rb_eArgError, "Unknown option specified");
        }
}
Settings[option] = value click to toggle source

Sets a libgit2 library option.

static VALUE rb_git_set_option(VALUE self, VALUE option, VALUE value)
{
        const char *opt;

        Check_Type(option, T_STRING);
        opt = StringValueCStr(option);

        if (strcmp(opt, "mwindow_size") == 0) {
                size_t val;
                Check_Type(value, T_FIXNUM);
                val = NUM2SIZET(value);
                git_libgit2_opts(GIT_OPT_SET_MWINDOW_SIZE, val);
        }

        else if (strcmp(opt, "mwindow_mapped_limit") == 0) {
                size_t val;
                Check_Type(value, T_FIXNUM);
                val = NUM2SIZET(value);
                git_libgit2_opts(GIT_OPT_SET_MWINDOW_MAPPED_LIMIT, val);
        }

        else if (strcmp(opt, "search_path_global") == 0) {
                set_search_path(GIT_CONFIG_LEVEL_GLOBAL, value);
        }

        else if (strcmp(opt, "search_path_xdg") == 0) {
                set_search_path(GIT_CONFIG_LEVEL_XDG, value);
        }

        else if (strcmp(opt, "search_path_system") == 0) {
                set_search_path(GIT_CONFIG_LEVEL_SYSTEM, value);
        }

        else if (strcmp(opt, "strict_object_creation") == 0) {
                int strict = RTEST(value) ? 1 : 0;
                git_libgit2_opts(GIT_OPT_ENABLE_STRICT_OBJECT_CREATION, strict);
        }

        else if (strcmp(opt, "fsync_gitdir") == 0) {
                int fsync = RTEST(value) ? 1 : 0;
                git_libgit2_opts(GIT_OPT_ENABLE_FSYNC_GITDIR, fsync);
        }

        else {
                rb_raise(rb_eArgError, "Unknown option specified");
        }

        return Qnil;
}
Rugged::Settings.max_cache_size → max cache size click to toggle source

Returns the maximum amount of memory the cache will consume.

static VALUE rb_git_get_max_cache_size(VALUE mod) {
    size_t val;
    size_t max;
    git_libgit2_opts(GIT_OPT_GET_CACHED_MEMORY, &val, &max);
    return SIZET2NUM(max);
}
Rugged::Settings.used_cache_size → used cache size click to toggle source

Returns the amount of memory the cache is currently consuming.

static VALUE rb_git_get_used_cache_size(VALUE mod) {
    size_t val;
    size_t max;
    git_libgit2_opts(GIT_OPT_GET_CACHED_MEMORY, &val, &max);
    return SIZET2NUM(val);
}