VerHuh?, v1.1.5

by Zaiste

HTML

<link rel="stylesheet" href="//cdn.jsdelivr.net/foundation/4.3.1/css/foundation.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.5/angular.min.js"></script>
<h1>Ver Huh?</h1>

<hr/>
<input type="text" ng-model="project.name" />
<ul>
    <li ng-repeat="t in project.tags">
        {{t.name}}
        <a href="{{t.zipball_url}}">(zip)</a>
        <a href='#'>(commit)</a>
    </li>
</ul>

CSS

li:first-child {
background-color: #CBE86B;
    font-weight: bold;
}

li {

}

JavaScript

var app = angular.module('app', []);

var official = {
    clojure: 'clojure/clojure',
    rails: 'rails/rails',
    "angular.js": 'angular/angular.js',
    "ring-json": "ring-clojure/ring-json",
    "ring": "ring-clojure/ring",
}

app.controller('Ctrl', function ($scope, $timeout, Github) {
    $scope.project = {};

    var timeout;
    $scope.$watch('project.name', function (newVal) {
        if (newVal) {
            if (timeout) $timeout.cancel(timeout);
            if (official.hasOwnProperty(newVal)) newVal = official[newVal];
            
            timeout = $timeout(function () {
                $scope.project.tags = Github.tags(newVal).then(function (data, status, headers, config) {
                    return data.data;
                });

            }, 450);
        }
    });
});

app.factory('Github', ['$http', function ($http) {
    return {
        tags: function (repo) {
            return $http.get('https://api.github.com/repos/' + repo + '/tags');
        },
    };
}]);