From e4c7a30f07e938b202150ec6648a01df56aced32 Mon Sep 17 00:00:00 2001 From: Adrian Kashivskyy Date: Wed, 12 Mar 2014 21:46:00 +0100 Subject: [PATCH] Add CocoaPods version integration --- server.js | 33 +++++++++++++++++++++++++++++++++ try.html | 4 ++++ 2 files changed, 37 insertions(+) diff --git a/server.js b/server.js index 8bba61a..395826f 100644 --- a/server.js +++ b/server.js @@ -575,6 +575,39 @@ cache(function(data, match, sendBadge) { }); })); +// CocoaPods version integration. +camp.route(/^\/cocoapods\/v\/(.*)\.(svg|png|gif|jpg)$/, +cache(function(data, match, sendBadge) { + var spec = match[1]; + var format = match[2]; + var apiUrl = 'http://search.cocoapods.org/api/v1/pod/' + spec + '.json'; + var badgeData = getBadgeData('pod', data); + request(apiUrl, function(err, res, buffer) { + if (err != null) { + badgeData.text[1] = 'inaccessible'; + sendBadge(format, badgeData); + } + try { + var data = JSON.parse(buffer); + var version = data.version; + version = version.replace(/^v/, ""); + badgeData.text[1] = version; + if (/^\d/.test(badgeData.text[1])) { + badgeData.text[1] = 'v' + version; + } + if (version[0] === '0' || /dev/.test(version)) { + badgeData.colorscheme = 'orange'; + } else { + badgeData.colorscheme = 'blue'; + } + sendBadge(format, badgeData); + } catch(e) { + badgeData.text[1] = 'invalid'; + sendBadge(format, badgeData); + } + }); +})); + // Any badge. camp.route(/^\/(:|badge\/)(([^-]|--)+)-(([^-]|--)+)-(([^-]|--)+)\.(svg|png|gif|jpg)$/, function(data, match, end, ask) { diff --git a/try.html b/try.html index 5808ba7..1cc9cdd 100644 --- a/try.html +++ b/try.html @@ -156,6 +156,10 @@ I made the GitHub Badge Service. http://img.shields.io/packagist/v/symfony/symfony.svg + CocoaPods: + + http://img.shields.io/cocoapods/v/AFNetworking.svg +

Like This?