示例#1
0
def set_gist_meta(organization, gist):
    meta = Obj()
    meta.watch = get_url(organization, gist, 'gists.watch')
    meta.unwatch = get_url(organization, gist, 'gists.unwatch')
    meta.watchers = get_url(organization, gist, 'gists.watchers')
    meta.view = get_url(organization, gist, 'gists.view')
    meta.edit = get_url(organization, gist, 'gists.edit')
    meta.fork = get_url(organization, gist, 'gists.fork')
    meta.forks = get_url(organization, gist, 'gists.forks')
    meta.delete = get_url(organization, gist, 'gists.delete')
    meta.revisions = get_url(organization, gist, 'gists.revisions')
    if gist.parent:
        meta.parent = set_gist_meta(organization, get_gist(gist.parent))

    @reqcache('gist:revisions:count:{gid}')
    def count_revisions(gid):
        jagare = get_jagare(gist.id, gist.parent)
        error, ret = jagare.get_log(gist.get_real_path(), total=1)
        count = 0 if error else ret['total']
        return count

    meta.count_revisions = lambda: count_revisions(gist.id)
    setattr(gist, 'meta', meta)