4cc1ee49 |
(in-package :fwoar.cl-git)
|
489818ad |
(defclass+ blob (git-object)
|
657ab332 |
((%data :reader data :initarg :data)))
|
489818ad |
(defgeneric -extract-object-of-type (type s repository &key &allow-other-keys)
(:method :around (type s repository &key hash)
(let ((result (call-next-method)))
(prog1 result
(when (typep result 'git-object)
(setf (hash result) hash)))))
|
4cc1ee49 |
(:method ((type (eql :blob)) s repository &key)
|
657ab332 |
(blob s))
|
4cc1ee49 |
(:method ((type (eql :tag)) s repository &key)
s))
(defgeneric component (component object)
(:argument-precedence-order object component)
(:method (component (object git-ref))
(component component (extract-object object)))
(:method ((component sequence) object)
(reduce (lambda (cur next)
(component next cur))
component
:initial-value object)))
|