Class: Rugged::Object
- Inherits:
-
Object
- Object
- Rugged::Object
- Defined in:
- lib/rugged/objects.rb,
ext/rugged/rugged_object.c
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.lookup(rb_repo, rb_hex) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'ext/rugged/rugged_object.c', line 118
VALUE rb_git_object_lookup(VALUE klass, VALUE rb_repo, VALUE rb_hex)
{
git_object *object;
git_otype type;
git_oid oid;
int error;
int oid_length;
git_repository *repo;
type = class2otype(rb_obj_class(klass));
if (type == GIT_OBJ_BAD)
type = GIT_OBJ_ANY;
Check_Type(rb_hex, T_STRING);
oid_length = (int)RSTRING_LEN(rb_hex);
if (!rb_obj_is_instance_of(rb_repo, rb_cRuggedRepo))
rb_raise(rb_eTypeError, "Expecting a Rugged Repository");
if (oid_length > GIT_OID_HEXSZ)
rb_raise(rb_eTypeError, "The given OID is too long");
Data_Get_Struct(rb_repo, git_repository, repo);
error = git_oid_fromstrn(&oid, RSTRING_PTR(rb_hex), oid_length);
rugged_exception_check(error);
if (oid_length < GIT_OID_HEXSZ)
error = git_object_lookup_prefix(&object, repo, &oid, oid_length, type);
else
error = git_object_lookup(&object, repo, &oid, type);
rugged_exception_check(error);
return rugged_object_new(rb_repo, object);
}
|
.new(rb_repo, rb_hex) ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
# File 'ext/rugged/rugged_object.c', line 118
VALUE rb_git_object_lookup(VALUE klass, VALUE rb_repo, VALUE rb_hex)
{
git_object *object;
git_otype type;
git_oid oid;
int error;
int oid_length;
git_repository *repo;
type = class2otype(rb_obj_class(klass));
if (type == GIT_OBJ_BAD)
type = GIT_OBJ_ANY;
Check_Type(rb_hex, T_STRING);
oid_length = (int)RSTRING_LEN(rb_hex);
if (!rb_obj_is_instance_of(rb_repo, rb_cRuggedRepo))
rb_raise(rb_eTypeError, "Expecting a Rugged Repository");
if (oid_length > GIT_OID_HEXSZ)
rb_raise(rb_eTypeError, "The given OID is too long");
Data_Get_Struct(rb_repo, git_repository, repo);
error = git_oid_fromstrn(&oid, RSTRING_PTR(rb_hex), oid_length);
rugged_exception_check(error);
if (oid_length < GIT_OID_HEXSZ)
error = git_object_lookup_prefix(&object, repo, &oid, oid_length, type);
else
error = git_object_lookup(&object, repo, &oid, type);
rugged_exception_check(error);
return rugged_object_new(rb_repo, object);
}
|
Instance Method Details
#<=>(other) ⇒ Object
4 5 6 |
# File 'lib/rugged/objects.rb', line 4 def <=>(other) self.oid <=> other.oid end |
#==(other) ⇒ Object
157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'ext/rugged/rugged_object.c', line 157
static VALUE rb_git_object_equal(VALUE self, VALUE other)
{
git_object *a, *b;
if (!rb_obj_is_kind_of(other, rb_cRuggedObject))
return Qfalse;
Data_Get_Struct(self, git_object, a);
Data_Get_Struct(other, git_object, b);
return git_oid_cmp(git_object_id(a), git_object_id(b)) == 0 ? Qtrue : Qfalse;
}
|
#oid ⇒ Object
170 171 172 173 174 175 |
# File 'ext/rugged/rugged_object.c', line 170
static VALUE rb_git_object_oid_GET(VALUE self)
{
git_object *object;
Data_Get_Struct(self, git_object, object);
return rugged_create_oid(git_object_id(object));
}
|
#read_raw ⇒ Object
185 186 187 188 189 190 191 |
# File 'ext/rugged/rugged_object.c', line 185
static VALUE rb_git_object_read_raw(VALUE self)
{
git_object *object;
Data_Get_Struct(self, git_object, object);
return rugged_raw_read(git_object_owner(object), git_object_id(object));
}
|
#type ⇒ Object
177 178 179 180 181 182 183 |
# File 'ext/rugged/rugged_object.c', line 177
static VALUE rb_git_object_type_GET(VALUE self)
{
git_object *object;
Data_Get_Struct(self, git_object, object);
return rugged_str_new2(git_object_type2string(git_object_type(object)), NULL);
}
|