From fda98a27179bec01f9e6c9aef45005e1675aa614 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Thu, 28 Feb 2013 23:56:34 -0300 Subject: [PATCH 001/101] adding multistring option to jshint --- grunt.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/grunt.js b/grunt.js index a1b8dc8..255743c 100644 --- a/grunt.js +++ b/grunt.js @@ -3,6 +3,11 @@ module.exports = function(grunt) { grunt.initConfig({ lint: { files: ['jquery.github.js'] + }, + jshint: { + options: { + multistr: true + } } }); From 20963803339b2a718c4c798b78ae80acd0ce5f57 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Thu, 28 Feb 2013 23:57:05 -0300 Subject: [PATCH 002/101] fixing weak comparision operator --- jquery.github.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jquery.github.js b/jquery.github.js index f80f06d..3323f56 100644 --- a/jquery.github.js +++ b/jquery.github.js @@ -32,7 +32,6 @@ this.element = element; this.$container = $(element); this.repo = this.$container.attr("data-repo"); - this.cached; // jQuery has an extend method which merges the contents of two or // more objects, storing the result in the first object. The first object @@ -56,7 +55,7 @@ cached = sessionStorage.getItem('gh-repos:' + this.repo); } - if (cached != null) { + if (cached !== null) { self.applyTemplate(JSON.parse(cached)); } else { From 39027a4af571a985c681fe42cb9d78faca19e402 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 1 Mar 2013 00:35:05 -0300 Subject: [PATCH 003/101] removing manually minified version and moving source to another folder --- jquery.github.min.js | 10 ---------- jquery.github.js => src/jquery.github.js | 0 2 files changed, 10 deletions(-) delete mode 100644 jquery.github.min.js rename jquery.github.js => src/jquery.github.js (100%) diff --git a/jquery.github.min.js b/jquery.github.min.js deleted file mode 100644 index 5e70f34..0000000 --- a/jquery.github.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * jQuery Github v0.2.2 - * A jQuery plugin to display your Github Repositories. - * http://git.io/WUV4_Q - * - * Zeno Rocha - * MIT License - */ - -(function(a,b){function g(b,c){this.element=b,this.$container=a(b),this.repo=this.$container.attr("data-repo"),this.cached,this.options=a.extend({},f,c),this._defaults=f,this._name=d,this.init()}var d="github",f=(b.document,{propertyName:"value"});g.prototype.init=function(){var e,d=this;b.sessionStorage&&(e=sessionStorage.getItem("gh-repos:"+this.repo)),null!=e?d.applyTemplate(JSON.parse(e)):a.ajax({url:"https://api.github.com/repos/"+this.repo,dataType:"jsonp",success:function(a){return a.meta.status>=400&&a.data.message?(console.warn(a.data.message),c):(d.applyTemplate(a.data),b.sessionStorage&&sessionStorage.setItem("gh-repos:"+d.repo,JSON.stringify(a.data)),c)}})},g.prototype.applyTemplate=function(b){var c=this,d=new Date(b.pushed_at),e=d.getDate()+"/"+(d.getMonth()+1)+"/"+d.getFullYear(),f=a(a.parseHTML('

'+b.description+' — Read More

Latest commit to master on '+e+'

Download as zip
'));c.appendTemplate(f)},g.prototype.appendTemplate=function(a){var b=this;a.appendTo(b.$container)},a.fn[d]=function(b){return this.each(function(){a.data(this,"plugin_"+d)||a.data(this,"plugin_"+d,new g(this,b))})}})(jQuery,window); \ No newline at end of file diff --git a/jquery.github.js b/src/jquery.github.js similarity index 100% rename from jquery.github.js rename to src/jquery.github.js From 3473ea54d7f227469bf6ab84af70eafd71c37005 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 1 Mar 2013 00:46:01 -0300 Subject: [PATCH 004/101] ignoring node_modules --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 496ee2c..91dfed8 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.DS_Store \ No newline at end of file +.DS_Store +node_modules \ No newline at end of file From 16f0f617f7e5e794369d8b21e8c8d38e35634e1c Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 1 Mar 2013 00:46:53 -0300 Subject: [PATCH 005/101] added minify task --- grunt.js | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/grunt.js b/grunt.js index 255743c..1664dec 100644 --- a/grunt.js +++ b/grunt.js @@ -1,17 +1,45 @@ module.exports = function(grunt) { grunt.initConfig({ + + // Meta informations + pkg: '', + meta: { + banner: '/*\n' + + ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n' + + ' * <%= pkg.description %>\n' + + ' * <%= pkg.homepage %>\n\n' + + ' * Copyright (c) <%= grunt.template.today("yyyy") %>\n' + + ' * MIT License\n' + + ' */' + }, + concat: { + dist: { + src: ['', ''], + dest: 'dist/jquery.github.js' + } + }, + + // Lint definitions lint: { - files: ['jquery.github.js'] + files: ['src/jquery.github.js'] }, jshint: { options: { multistr: true } + }, + + // Minify definitions + min: { + dist: { + src: ['', ''], + dest: 'dist/jquery.github.min.js' + } } }); - grunt.registerTask('default', 'lint'); + grunt.registerTask('default', 'lint min concat'); grunt.registerTask('travis', 'lint'); }; \ No newline at end of file From c8b6779cd0ea0fd18333fbdbfa08cbdc71fadb76 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 1 Mar 2013 00:53:50 -0300 Subject: [PATCH 006/101] removing old header --- demo/index.html | 2 +- dist/jquery.github.js | 136 ++++++++++++++++++++++++++++++++++++++ dist/jquery.github.min.js | 9 +++ src/jquery.github.js | 9 --- 4 files changed, 146 insertions(+), 10 deletions(-) create mode 100644 dist/jquery.github.js create mode 100644 dist/jquery.github.min.js diff --git a/demo/index.html b/demo/index.html index cd246d8..e131735 100644 --- a/demo/index.html +++ b/demo/index.html @@ -35,7 +35,7 @@

jQuery Github

- + - + + - + - \ No newline at end of file + diff --git a/github.jquery.json b/github.jquery.json index 4b07eab..f24ac79 100644 --- a/github.jquery.json +++ b/github.jquery.json @@ -1,35 +1,35 @@ { - "name": "github", - "title": "jQuery Github", - "description": "A jQuery plugin to display your Github Repositories.", - "keywords": [ - "github", - "repositories", - "git" - ], - "version": "0.2.5", - "author": { - "name": "Zeno Rocha", - "url": "https://github.com/zenorocha" - }, - "maintainers": [ - { - "name": "Zeno Rocha", - "email": "zno.rocha@gmail.com", - "url": "https://github.com/zenorocha" - } - ], - "licenses": [ - { - "type": "MIT", - "url": "http://zenorocha.mit-license.org/" - } - ], - "bugs": "https://github.com/zenorocha/jquery-github/issues", - "homepage": "https://github.com/zenorocha/jquery-github/", - "docs": "https://github.com/zenorocha/jquery-github#readme", - "download": "https://github.com/zenorocha/jquery-github/archive/master.zip", - "dependencies": { - "jquery": ">=1.9" - } -} \ No newline at end of file + "name": "github", + "title": "jQuery Github", + "description": "A jQuery plugin to display your Github Repositories.", + "keywords": [ + "github", + "repositories", + "git" + ], + "version": "0.2.5", + "author": { + "name": "Zeno Rocha", + "url": "https://github.com/zenorocha" + }, + "maintainers": [ + { + "name": "Zeno Rocha", + "email": "zno.rocha@gmail.com", + "url": "https://github.com/zenorocha" + } + ], + "licenses": [ + { + "type": "MIT", + "url": "http://zenorocha.mit-license.org/" + } + ], + "bugs": "https://github.com/zenorocha/jquery-github/issues", + "homepage": "https://github.com/zenorocha/jquery-github/", + "docs": "https://github.com/zenorocha/jquery-github#readme", + "download": "https://github.com/zenorocha/jquery-github/archive/master.zip", + "dependencies": { + "jquery": ">=1.9" + } +} diff --git a/grunt.js b/grunt.js index 1664dec..28af41d 100644 --- a/grunt.js +++ b/grunt.js @@ -1,45 +1,46 @@ module.exports = function(grunt) { - grunt.initConfig({ + grunt.initConfig({ - // Meta informations - pkg: '', - meta: { - banner: '/*\n' + - ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n' + - ' * <%= pkg.description %>\n' + - ' * <%= pkg.homepage %>\n\n' + - ' * Copyright (c) <%= grunt.template.today("yyyy") %>\n' + - ' * MIT License\n' + - ' */' - }, - concat: { - dist: { - src: ['', ''], - dest: 'dist/jquery.github.js' - } - }, + // Meta informations + pkg: '', + meta: { + banner: '/*\n' + + ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n' + + ' * <%= pkg.description %>\n' + + ' * <%= pkg.homepage %>\n\n' + + ' * Copyright (c) <%= grunt.template.today("yyyy") %>\n' + + ' * MIT License\n' + + ' */' + }, + concat: { + dist: { + src: ['', ''], + dest: 'dist/jquery.github.js' + } + }, - // Lint definitions - lint: { - files: ['src/jquery.github.js'] - }, - jshint: { - options: { - multistr: true - } - }, + // Lint definitions + lint: { + files: ['src/jquery.github.js'] + }, + jshint: { + options: { + multistr: true + } + }, - // Minify definitions - min: { - dist: { - src: ['', ''], - dest: 'dist/jquery.github.min.js' - } - } - }); + // Minify definitions + min: { + dist: { + src: ['', ''], + dest: 'dist/jquery.github.min.js' + } + } - grunt.registerTask('default', 'lint min concat'); - grunt.registerTask('travis', 'lint'); + }); -}; \ No newline at end of file + grunt.registerTask('default', 'lint min concat'); + grunt.registerTask('travis', 'lint'); + +}; diff --git a/package.json b/package.json index dfc0d0e..5111d0b 100644 --- a/package.json +++ b/package.json @@ -1,14 +1,14 @@ { - "name": "jquery-github", - "title": "jQuery Github", - "description": "A jQuery plugin to display your Github Repositories.", - "author": "Zeno Rocha", - "homepage": "https://github.com/zenorocha/jquery-github/", - "version": "0.2.5", - "devDependencies": { - "grunt": "~0.3.17" - }, - "scripts": { - "test": "grunt travis --verbose" - } -} \ No newline at end of file + "name": "jquery-github", + "title": "jQuery Github", + "description": "A jQuery plugin to display your Github Repositories.", + "author": "Zeno Rocha", + "homepage": "https://github.com/zenorocha/jquery-github/", + "version": "0.2.5", + "devDependencies": { + "grunt": "~0.3.17" + }, + "scripts": { + "test": "grunt travis --verbose" + } +} diff --git a/src/jquery.github.js b/src/jquery.github.js index 9299023..be11267 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -1,153 +1,155 @@ ;( function ( $, window, undefined ) { - var pluginName = 'github', - document = window.document, - defaults = { - propertyName: "value" - }; - - function Plugin( element, options ) { - var self = this; - - self.element = element; - self.$container = $(element); - self.repo = self.$container.attr("data-repo"); - - self.options = $.extend( {}, defaults, options) ; - - self._defaults = defaults; - self._name = pluginName; - - self.init(); - } - - // Initializer - Plugin.prototype.init = function () { - var self = this, - cached = self.getCache(); - - if (cached !== null) { - self.applyTemplate(JSON.parse(cached)); - } - else { - self.requestData(repo); - } - }; - - // Apply results to HTML template - Plugin.prototype.applyTemplate = function (repo) { - var self = this, - $widget = self.parseTemplate(repo); - - $widget.appendTo(self.$container); - }; - - // Stores repostories in sessionStorage if available - Plugin.prototype.cacheResults = function (result_data) { - var self = this; - - // Cache data - if (window.sessionStorage) { - window.sessionStorage.setItem('gh-repos:' + self.repo, JSON.stringify(result_data)); - } - }; - - // Grab cached results - Plugin.prototype.getCache = function () { - var self = this; - - if (window.sessionStorage) { - return window.sessionStorage.getItem('gh-repos:' + self.repo); - } - else { - return false; - } - }; - - // Handle Errors requests - Plugin.prototype.handlerErrorRequests = function (result_data) { - var self = this; - - console.warn(result_data.message); - return; - }; - - // Handle Successful request - Plugin.prototype.handlerSuccessfulRequest = function (result_data) { - var self = this; - - self.applyTemplate(result_data); - self.cacheResults(result_data); - }; - - // Parses Pushed date with date format - Plugin.prototype.parsePushedDate = function (pushed_at) { - var self = this, - date = new Date(pushed_at); - - return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear(); - }; - - // Parses repository URL to be friendly - Plugin.prototype.parseRepositoryURL = function (url) { - var self = this; - - return url.replace('api.','').replace('repos/',''); - }; - - // Parses HTML template - Plugin.prototype.parseTemplate = function (repo) { - var self = this, - pushed_at = self.parsePushedDate(repo.pushed_at), - repo_url = self.parseRepositoryURL(repo.url); - - return $($.parseHTML(' \ -
\ - \ -
\ -

' + repo.description + ' — Read More

\ -
\ -
\ -

Latest commit to master on ' + pushed_at + '

\ - Download as zip \ -
\ -
\ - ')); - }; - - // Request repositories from Github - Plugin.prototype.requestData = function (repo) { - var self = this; - - $.ajax({ - url: 'https://api.github.com/repos/' + repo, - dataType: 'jsonp', - success: function(results) { - var result_data = results.data; - - // Handle API failures - if (results.meta.status >= 400 && result_data.message) { - self.handlerErrorRequest(); - } - else { - self.handlerSuccessfulRequest(result_data); - } - } - }); - }; - - $.fn[pluginName] = function ( options ) { - return this.each(function () { - if (!$.data(this, 'plugin_' + pluginName)) { - $.data(this, 'plugin_' + pluginName, new Plugin( this, options )); - } - }); - }; -}(jQuery, window)); \ No newline at end of file + + var pluginName = 'github', + document = window.document, + defaults = { + propertyName: "value" + }; + + function Plugin( element, options ) { + var self = this; + + self.element = element; + self.$container = $(element); + self.repo = self.$container.attr("data-repo"); + + self.options = $.extend( {}, defaults, options) ; + + self._defaults = defaults; + self._name = pluginName; + + self.init(); + } + + // Initializer + Plugin.prototype.init = function () { + var self = this, + cached = self.getCache(); + + if (cached !== null) { + self.applyTemplate(JSON.parse(cached)); + } + else { + self.requestData(repo); + } + }; + + // Apply results to HTML template + Plugin.prototype.applyTemplate = function (repo) { + var self = this, + $widget = self.parseTemplate(repo); + + $widget.appendTo(self.$container); + }; + + // Stores repostories in sessionStorage if available + Plugin.prototype.cacheResults = function (result_data) { + var self = this; + + // Cache data + if (window.sessionStorage) { + window.sessionStorage.setItem('gh-repos:' + self.repo, JSON.stringify(result_data)); + } + }; + + // Grab cached results + Plugin.prototype.getCache = function () { + var self = this; + + if (window.sessionStorage) { + return window.sessionStorage.getItem('gh-repos:' + self.repo); + } + else { + return false; + } + }; + + // Handle Errors requests + Plugin.prototype.handlerErrorRequests = function (result_data) { + var self = this; + + console.warn(result_data.message); + return; + }; + + // Handle Successful request + Plugin.prototype.handlerSuccessfulRequest = function (result_data) { + var self = this; + + self.applyTemplate(result_data); + self.cacheResults(result_data); + }; + + // Parses Pushed date with date format + Plugin.prototype.parsePushedDate = function (pushed_at) { + var self = this, + date = new Date(pushed_at); + + return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear(); + }; + + // Parses repository URL to be friendly + Plugin.prototype.parseRepositoryURL = function (url) { + var self = this; + + return url.replace('api.','').replace('repos/',''); + }; + + // Parses HTML template + Plugin.prototype.parseTemplate = function (repo) { + var self = this, + pushed_at = self.parsePushedDate(repo.pushed_at), + repo_url = self.parseRepositoryURL(repo.url); + + return $($.parseHTML(' \ +
\ + \ +
\ +

' + repo.description + ' — Read More

\ +
\ +
\ +

Latest commit to master on ' + pushed_at + '

\ + Download as zip \ +
\ +
\ + ')); + }; + + // Request repositories from Github + Plugin.prototype.requestData = function (repo) { + var self = this; + + $.ajax({ + url: 'https://api.github.com/repos/' + repo, + dataType: 'jsonp', + success: function(results) { + var result_data = results.data; + + // Handle API failures + if (results.meta.status >= 400 && result_data.message) { + self.handlerErrorRequest(); + } + else { + self.handlerSuccessfulRequest(result_data); + } + } + }); + }; + + $.fn[pluginName] = function ( options ) { + return this.each(function () { + if (!$.data(this, 'plugin_' + pluginName)) { + $.data(this, 'plugin_' + pluginName, new Plugin( this, options )); + } + }); + }; + +}(jQuery, window)); From a1b4ab0ea15dd2a257dd99bc91aa30eff4c4d937 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Mon, 29 Apr 2013 14:44:41 -0300 Subject: [PATCH 019/101] Allow multistr, undef and unused rules --- .jshintrc | 7 ++++--- grunt.js | 46 ---------------------------------------------- 2 files changed, 4 insertions(+), 49 deletions(-) delete mode 100644 grunt.js diff --git a/.jshintrc b/.jshintrc index 20b958f..fff0d5e 100644 --- a/.jshintrc +++ b/.jshintrc @@ -10,7 +10,8 @@ "quotmark": "double", "smarttabs": true, "trailing": true, - "undef": true, - "unused": true, - "node": true + "undef": false, + "unused": false, + "node": true, + "multistr": true } diff --git a/grunt.js b/grunt.js deleted file mode 100644 index 28af41d..0000000 --- a/grunt.js +++ /dev/null @@ -1,46 +0,0 @@ -module.exports = function(grunt) { - - grunt.initConfig({ - - // Meta informations - pkg: '', - meta: { - banner: '/*\n' + - ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n' + - ' * <%= pkg.description %>\n' + - ' * <%= pkg.homepage %>\n\n' + - ' * Copyright (c) <%= grunt.template.today("yyyy") %>\n' + - ' * MIT License\n' + - ' */' - }, - concat: { - dist: { - src: ['', ''], - dest: 'dist/jquery.github.js' - } - }, - - // Lint definitions - lint: { - files: ['src/jquery.github.js'] - }, - jshint: { - options: { - multistr: true - } - }, - - // Minify definitions - min: { - dist: { - src: ['', ''], - dest: 'dist/jquery.github.min.js' - } - } - - }); - - grunt.registerTask('default', 'lint min concat'); - grunt.registerTask('travis', 'lint'); - -}; From f751e8ea790d910462e8367546a2fcbada2371b2 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Mon, 29 Apr 2013 14:45:10 -0300 Subject: [PATCH 020/101] Apply jQuery's core style --- src/jquery.github.js | 46 ++++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/jquery.github.js b/src/jquery.github.js index be11267..5a30aba 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -1,6 +1,6 @@ ;( function ( $, window, undefined ) { - var pluginName = 'github', + var pluginName = "github", document = window.document, defaults = { propertyName: "value" @@ -48,7 +48,7 @@ // Cache data if (window.sessionStorage) { - window.sessionStorage.setItem('gh-repos:' + self.repo, JSON.stringify(result_data)); + window.sessionStorage.setItem("gh-repos:" + self.repo, JSON.stringify(result_data)); } }; @@ -57,7 +57,7 @@ var self = this; if (window.sessionStorage) { - return window.sessionStorage.getItem('gh-repos:' + self.repo); + return window.sessionStorage.getItem("gh-repos:" + self.repo); } else { return false; @@ -85,14 +85,14 @@ var self = this, date = new Date(pushed_at); - return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear(); + return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); }; // Parses repository URL to be friendly Plugin.prototype.parseRepositoryURL = function (url) { var self = this; - return url.replace('api.','').replace('repos/',''); + return url.replace("api.","").replace("repos/",""); }; // Parses HTML template @@ -101,26 +101,26 @@ pushed_at = self.parsePushedDate(repo.pushed_at), repo_url = self.parseRepositoryURL(repo.url); - return $($.parseHTML(' \ -
\ -
\ + return $($.parseHTML(" \ +
\ +
\

\ - ' + repo.name + ' \ + '" + repo.name + "' \

\ - \ -
\ -

' + repo.description + ' — Read More

\ +
\ +

'" + repo.description + "' — Read More

\
\ -
\ -

Latest commit to master on ' + pushed_at + '

\ - Download as zip \ +
\ +

Latest commit to master on '" + pushed_at + "'

\ + Download as zip \
\
\ - ')); + ")); }; // Request repositories from Github @@ -128,10 +128,10 @@ var self = this; $.ajax({ - url: 'https://api.github.com/repos/' + repo, - dataType: 'jsonp', + url: "https://api.github.com/repos/" + repo, + dataType: "jsonp", success: function(results) { - var result_data = results.data; + var result_data = results.data; // Handle API failures if (results.meta.status >= 400 && result_data.message) { @@ -146,8 +146,8 @@ $.fn[pluginName] = function ( options ) { return this.each(function () { - if (!$.data(this, 'plugin_' + pluginName)) { - $.data(this, 'plugin_' + pluginName, new Plugin( this, options )); + if (!$.data(this, "plugin_" + pluginName)) { + $.data(this, "plugin_" + pluginName, new Plugin( this, options )); } }); }; From e95db376d7bdb0859579b48e9a712da4f333f6b3 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Mon, 29 Apr 2013 14:45:47 -0300 Subject: [PATCH 021/101] Upgrade Grunt from v0.3 to v0.4 --- Gruntfile.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 2 ++ package.json | 9 ++++++--- 3 files changed, 56 insertions(+), 3 deletions(-) create mode 100644 Gruntfile.js diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 0000000..64f13f4 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,48 @@ +module.exports = function(grunt) { + + grunt.initConfig({ + + // Meta informations + pkg: '', + meta: { + banner: '/*\n' + + ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n' + + ' * <%= pkg.description %>\n' + + ' * <%= pkg.homepage %>\n\n' + + ' * Copyright (c) <%= grunt.template.today("yyyy") %>\n' + + ' * MIT License\n' + + ' */' + }, + concat: { + dist: { + src: ['', ''], + dest: 'dist/jquery.github.js' + } + }, + + // Lint definitions + jshint: { + files: ['src/jquery.github.js'], + options: { + jshintrc: ".jshintrc" + } + }, + + // Minify definitions + min: { + dist: { + src: ['', ''], + dest: 'dist/jquery.github.min.js' + } + } + + }); + + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + + grunt.registerTask('default', ['jshint', 'min', 'concat']); + grunt.registerTask('travis', ['jshint']); + +}; diff --git a/README.md b/README.md index 989241d..5b10ad0 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,8 @@ Also remember to follow [jQuery's Code Style](http://contribute.jquery.org/style * v0.2.7 April 29, 2013 * Code refactoring + * Follow jQuery's core style guide + * Upgrade Grunt from v0.3 to v0.4 * v0.2.6 March 14, 2013 * Updated to responsive design * v0.2.5 March 01, 2013 diff --git a/package.json b/package.json index 5111d0b..e8847ce 100644 --- a/package.json +++ b/package.json @@ -4,10 +4,13 @@ "description": "A jQuery plugin to display your Github Repositories.", "author": "Zeno Rocha", "homepage": "https://github.com/zenorocha/jquery-github/", - "version": "0.2.5", + "version": "0.2.7", "devDependencies": { - "grunt": "~0.3.17" - }, + "grunt": "~0.4.1", + "grunt-contrib-jshint": "~0.4.3", + "grunt-contrib-concat": "~0.3.0", + "grunt-contrib-uglify": "~0.2.0" + }, "scripts": { "test": "grunt travis --verbose" } From d78f2c639f0269febdcee9d3382bc2ee2d5ac6e2 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Mon, 29 Apr 2013 14:50:24 -0300 Subject: [PATCH 022/101] Add grunt-cli to help Travis execute tasks --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index e8847ce..80e7060 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "version": "0.2.7", "devDependencies": { "grunt": "~0.4.1", + "grunt-cli": "~0.1.7", "grunt-contrib-jshint": "~0.4.3", "grunt-contrib-concat": "~0.3.0", "grunt-contrib-uglify": "~0.2.0" From dccbc5f90309fc4afa7f4e893541e47bac7cb5e2 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Mon, 29 Apr 2013 15:59:44 -0300 Subject: [PATCH 023/101] Fix minify task --- Gruntfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 64f13f4..011bffb 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -29,7 +29,7 @@ module.exports = function(grunt) { }, // Minify definitions - min: { + uglify: { dist: { src: ['', ''], dest: 'dist/jquery.github.min.js' @@ -42,7 +42,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.registerTask('default', ['jshint', 'min', 'concat']); + grunt.registerTask('default', ['jshint', 'uglify', 'concat']); grunt.registerTask('travis', ['jshint']); }; From 4330dead947e983a14d7586b70554c27657a8f5a Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Mon, 29 Apr 2013 16:00:09 -0300 Subject: [PATCH 024/101] Fix YAML indentation --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 462fd5b..baa0031 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,3 @@ language: node_js node_js: - - 0.8 + - 0.8 From 0cd4ebea61e9fb42e0fe27aaf5ab8c4a11e532da Mon Sep 17 00:00:00 2001 From: Douglas Miranda Date: Tue, 30 Apr 2013 00:39:47 -0400 Subject: [PATCH 025/101] Fix "Uncaught ReferenceError: repo is not defined" --- dist/jquery.github.js | 2 +- dist/jquery.github.min.js | 2 +- src/jquery.github.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/jquery.github.js b/dist/jquery.github.js index d69c723..c880553 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -41,7 +41,7 @@ self.applyTemplate(JSON.parse(cached)); } else { - self.requestData(repo); + self.requestData(self.repo); } }; diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index c601377..e71765d 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -6,4 +6,4 @@ * Copyright (c) 2013 * MIT License */ -(function(a,b){function g(b,c){var e=this;e.element=b,e.$container=a(b),e.repo=e.$container.attr("data-repo"),e.options=a.extend({},f,c),e._defaults=f,e._name=d,e.init()}var d="github",f=(b.document,{propertyName:"value"});g.prototype.init=function(){var a=this,b=a.getCache();null!==b?a.applyTemplate(JSON.parse(b)):a.requestData(repo)},g.prototype.applyTemplate=function(a){var b=this,c=b.parseTemplate(a);c.appendTo(b.$container)},g.prototype.cacheResults=function(a){var c=this;b.sessionStorage&&sessionStorage.setItem("gh-repos:"+c.repo,JSON.stringify(a))},g.prototype.getCache=function(){var a=this;return b.sessionStorage?sessionStorage.getItem("gh-repos:"+a.repo):!1},g.prototype.handlerErrorRequests=function(a){console.warn(a.message)},g.prototype.handlerSuccessfulRequest=function(a){var b=this;b.applyTemplate(a),b.cacheResults(a)},g.prototype.parsePushedDate=function(a){var c=new Date(a);return c.getDate()+"/"+(c.getMonth()+1)+"/"+c.getFullYear()},g.prototype.parseRepositoryURL=function(a){return a.replace("api.","").replace("repos/","")},g.prototype.parseTemplate=function(b){var c=this,d=c.parsePushedDate(b.pushed_at),e=c.parseRepositoryURL(b.url);return a(a.parseHTML('

'+b.description+' — Read More

Latest commit to master on '+d+'

Download as zip
'))},g.prototype.requestData=function(b){var c=this;a.ajax({url:"https://api.github.com/repos/"+b,dataType:"jsonp",success:function(a){var b=a.data;a.meta.status>=400&&b.message?c.handlerErrorRequest():c.handlerSuccessfulRequest(b)}})},a.fn[d]=function(b){return this.each(function(){a.data(this,"plugin_"+d)||a.data(this,"plugin_"+d,new g(this,b))})}})(jQuery,window); \ No newline at end of file +(function(a,b){function g(b,c){var e=this;e.element=b,e.$container=a(b),e.repo=e.$container.attr("data-repo"),e.options=a.extend({},f,c),e._defaults=f,e._name=d,e.init()}var d="github",f=(b.document,{propertyName:"value"});g.prototype.init=function(){var a=this,b=a.getCache();null!==b?a.applyTemplate(JSON.parse(b)):a.requestData(a.repo)},g.prototype.applyTemplate=function(a){var b=this,c=b.parseTemplate(a);c.appendTo(b.$container)},g.prototype.cacheResults=function(a){var c=this;b.sessionStorage&&sessionStorage.setItem("gh-repos:"+c.repo,JSON.stringify(a))},g.prototype.getCache=function(){var a=this;return b.sessionStorage?sessionStorage.getItem("gh-repos:"+a.repo):!1},g.prototype.handlerErrorRequests=function(a){console.warn(a.message)},g.prototype.handlerSuccessfulRequest=function(a){var b=this;b.applyTemplate(a),b.cacheResults(a)},g.prototype.parsePushedDate=function(a){var c=new Date(a);return c.getDate()+"/"+(c.getMonth()+1)+"/"+c.getFullYear()},g.prototype.parseRepositoryURL=function(a){return a.replace("api.","").replace("repos/","")},g.prototype.parseTemplate=function(b){var c=this,d=c.parsePushedDate(b.pushed_at),e=c.parseRepositoryURL(b.url);return a(a.parseHTML('

'+b.description+' — Read More

Latest commit to master on '+d+'

Download as zip
'))},g.prototype.requestData=function(b){var c=this;a.ajax({url:"https://api.github.com/repos/"+b,dataType:"jsonp",success:function(a){var b=a.data;a.meta.status>=400&&b.message?c.handlerErrorRequest():c.handlerSuccessfulRequest(b)}})},a.fn[d]=function(b){return this.each(function(){a.data(this,"plugin_"+d)||a.data(this,"plugin_"+d,new g(this,b))})}})(jQuery,window); \ No newline at end of file diff --git a/src/jquery.github.js b/src/jquery.github.js index 5a30aba..2ab1623 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -30,7 +30,7 @@ self.applyTemplate(JSON.parse(cached)); } else { - self.requestData(repo); + self.requestData(self.repo); } }; From 026fd169f08ba5ec4823c146d068acf42cc58755 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Tue, 30 Apr 2013 08:13:06 -0300 Subject: [PATCH 026/101] Fix uglify task --- Gruntfile.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 011bffb..2fba85e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,19 +3,23 @@ module.exports = function(grunt) { grunt.initConfig({ // Meta informations - pkg: '', + pkg: grunt.file.readJSON('package.json'), meta: { banner: '/*\n' + ' * <%= pkg.title || pkg.name %> - v<%= pkg.version %>\n' + ' * <%= pkg.description %>\n' + - ' * <%= pkg.homepage %>\n\n' + + ' * <%= pkg.homepage %>\n' + + ' *\n' + ' * Copyright (c) <%= grunt.template.today("yyyy") %>\n' + ' * MIT License\n' + - ' */' - }, + ' */\n' + }, concat: { + options: { + banner: '<%= meta.banner %>' + }, dist: { - src: ['', ''], + src: ['src/jquery.github.js'], dest: 'dist/jquery.github.js' } }, @@ -30,8 +34,11 @@ module.exports = function(grunt) { // Minify definitions uglify: { - dist: { - src: ['', ''], + options: { + banner: '<%= meta.banner %>' + }, + my_target: { + src: ['dist/jquery.github.js'], dest: 'dist/jquery.github.min.js' } } @@ -42,7 +49,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.registerTask('default', ['jshint', 'uglify', 'concat']); + grunt.registerTask('default', ['jshint', 'concat', 'uglify']); grunt.registerTask('travis', ['jshint']); }; From 643b627ac43016ba5e82739131e281ea50d500dc Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Tue, 30 Apr 2013 08:13:26 -0300 Subject: [PATCH 027/101] Remove extra single quotes --- src/jquery.github.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/jquery.github.js b/src/jquery.github.js index 2ab1623..93bb8b6 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -105,18 +105,18 @@
\ \
\ -

'" + repo.description + "' — Read More

\ +

" + repo.description + " — Read More

\
\
\ -

Latest commit to master on '" + pushed_at + "'

\ +

Latest commit to master on " + pushed_at + "

\ Download as zip \
\
\ From 036257019ba8865a073e161886ef3993cc599710 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Tue, 30 Apr 2013 08:14:40 -0300 Subject: [PATCH 028/101] Regenerate v0.2.7 --- dist/jquery.github.js | 343 +++++++++++++++++--------------------- dist/jquery.github.min.js | 6 +- 2 files changed, 160 insertions(+), 189 deletions(-) diff --git a/dist/jquery.github.js b/dist/jquery.github.js index c880553..54d7a9b 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -1,192 +1,163 @@ /* - * jQuery Github - v0.2.6 + * jQuery Github - v0.2.7 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ - + * * Copyright (c) 2013 * MIT License */ - -;(function ( $, window, undefined ) { - var pluginName = 'github', - document = window.document, - defaults = { - propertyName: "value" - }; - - function Plugin( element, options ) { - var self = this; - - self.element = element; - self.$container = $(element); - self.repo = self.$container.attr("data-repo"); - - self.options = $.extend( {}, defaults, options) ; - - self._defaults = defaults; - self._name = pluginName; - - self.init(); - } - - /** - * Initializer - * - */ - Plugin.prototype.init = function () { - var self = this, - cached = self.getCache(); - - if (cached !== null) { - self.applyTemplate(JSON.parse(cached)); - } - else { - self.requestData(self.repo); - } - }; - - /** - * Apply results to HTML template - * - */ - Plugin.prototype.applyTemplate = function (repo) { - var self = this, - $widget = self.parseTemplate(repo); - - $widget.appendTo(self.$container); - }; - - /** - * Stores repostories in sessionStorage if available - * - */ - Plugin.prototype.cacheResults = function (result_data) { - var self = this; - - // Cache data - if (window.sessionStorage) { - sessionStorage.setItem('gh-repos:' + self.repo, JSON.stringify(result_data)); - } - }; - - /** - * Grab cached results - * - */ - Plugin.prototype.getCache = function () { - var self = this; - - if (window.sessionStorage) { - return sessionStorage.getItem('gh-repos:' + self.repo); - } - else { - return false; - } - }; - - /** - * Handle Errors requests - * - */ - Plugin.prototype.handlerErrorRequests = function (result_data) { - var self = this; - - console.warn(result_data.message); - return; - }; - - /** - * Handle Successful request - * - */ - Plugin.prototype.handlerSuccessfulRequest = function (result_data) { - var self = this; - - self.applyTemplate(result_data); - self.cacheResults(result_data); - }; - - /** - * Parses Pushed date with date format - * - */ - Plugin.prototype.parsePushedDate = function (pushed_at) { - var self = this, - date = new Date(pushed_at); - - return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear() - }; - - /** - * Parses repository URL to be friendly - * - */ - Plugin.prototype.parseRepositoryURL = function (url) { - var self = this; - - return url.replace('api.','').replace('repos/',''); - }; - - /** - * Parses HTML template - * - */ - Plugin.prototype.parseTemplate = function (repo) { - var self = this, - pushed_at = self.parsePushedDate(repo.pushed_at), - repo_url = self.parseRepositoryURL(repo.url); - - return $($.parseHTML(' \ -
\ - \ -
\ -

' + repo.description + ' — Read More

\ -
\ -
\ -

Latest commit to master on ' + pushed_at + '

\ - Download as zip \ -
\ -
\ - ')); - }; - - /** - * Request repositories from Github - * - */ - Plugin.prototype.requestData = function (repo) { - var self = this; - - $.ajax({ - url: 'https://api.github.com/repos/' + repo, - dataType: 'jsonp', - success: function(results) { - var result_data = results.data; - - // Handle API failures - if (results.meta.status >= 400 && result_data.message) { - self.handlerErrorRequest(); - } - else { - self.handlerSuccessfulRequest(result_data); - } - } - }); - }; - - $.fn[pluginName] = function ( options ) { - return this.each(function () { - if (!$.data(this, 'plugin_' + pluginName)) { - $.data(this, 'plugin_' + pluginName, new Plugin( this, options )); - } - }); - }; -}(jQuery, window)); \ No newline at end of file +;( function ( $, window, undefined ) { + + var pluginName = "github", + document = window.document, + defaults = { + propertyName: "value" + }; + + function Plugin( element, options ) { + var self = this; + + self.element = element; + self.$container = $(element); + self.repo = self.$container.attr("data-repo"); + + self.options = $.extend( {}, defaults, options) ; + + self._defaults = defaults; + self._name = pluginName; + + self.init(); + } + + // Initializer + Plugin.prototype.init = function () { + var self = this, + cached = self.getCache(); + + if (cached !== null) { + self.applyTemplate(JSON.parse(cached)); + } + else { + self.requestData(self.repo); + } + }; + + // Apply results to HTML template + Plugin.prototype.applyTemplate = function (repo) { + var self = this, + $widget = self.parseTemplate(repo); + + $widget.appendTo(self.$container); + }; + + // Stores repostories in sessionStorage if available + Plugin.prototype.cacheResults = function (result_data) { + var self = this; + + // Cache data + if (window.sessionStorage) { + window.sessionStorage.setItem("gh-repos:" + self.repo, JSON.stringify(result_data)); + } + }; + + // Grab cached results + Plugin.prototype.getCache = function () { + var self = this; + + if (window.sessionStorage) { + return window.sessionStorage.getItem("gh-repos:" + self.repo); + } + else { + return false; + } + }; + + // Handle Errors requests + Plugin.prototype.handlerErrorRequests = function (result_data) { + var self = this; + + console.warn(result_data.message); + return; + }; + + // Handle Successful request + Plugin.prototype.handlerSuccessfulRequest = function (result_data) { + var self = this; + + self.applyTemplate(result_data); + self.cacheResults(result_data); + }; + + // Parses Pushed date with date format + Plugin.prototype.parsePushedDate = function (pushed_at) { + var self = this, + date = new Date(pushed_at); + + return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); + }; + + // Parses repository URL to be friendly + Plugin.prototype.parseRepositoryURL = function (url) { + var self = this; + + return url.replace("api.","").replace("repos/",""); + }; + + // Parses HTML template + Plugin.prototype.parseTemplate = function (repo) { + var self = this, + pushed_at = self.parsePushedDate(repo.pushed_at), + repo_url = self.parseRepositoryURL(repo.url); + + return $($.parseHTML(" \ +
\ + \ +
\ +

" + repo.description + " — Read More

\ +
\ +
\ +

Latest commit to master on " + pushed_at + "

\ + Download as zip \ +
\ +
\ + ")); + }; + + // Request repositories from Github + Plugin.prototype.requestData = function (repo) { + var self = this; + + $.ajax({ + url: "https://api.github.com/repos/" + repo, + dataType: "jsonp", + success: function(results) { + var result_data = results.data; + + // Handle API failures + if (results.meta.status >= 400 && result_data.message) { + self.handlerErrorRequest(); + } + else { + self.handlerSuccessfulRequest(result_data); + } + } + }); + }; + + $.fn[pluginName] = function ( options ) { + return this.each(function () { + if (!$.data(this, "plugin_" + pluginName)) { + $.data(this, "plugin_" + pluginName, new Plugin( this, options )); + } + }); + }; + +}(jQuery, window)); diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index e71765d..d35fea7 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -1,9 +1,9 @@ /* - * jQuery Github - v0.2.6 + * jQuery Github - v0.2.7 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ - + * * Copyright (c) 2013 * MIT License */ -(function(a,b){function g(b,c){var e=this;e.element=b,e.$container=a(b),e.repo=e.$container.attr("data-repo"),e.options=a.extend({},f,c),e._defaults=f,e._name=d,e.init()}var d="github",f=(b.document,{propertyName:"value"});g.prototype.init=function(){var a=this,b=a.getCache();null!==b?a.applyTemplate(JSON.parse(b)):a.requestData(a.repo)},g.prototype.applyTemplate=function(a){var b=this,c=b.parseTemplate(a);c.appendTo(b.$container)},g.prototype.cacheResults=function(a){var c=this;b.sessionStorage&&sessionStorage.setItem("gh-repos:"+c.repo,JSON.stringify(a))},g.prototype.getCache=function(){var a=this;return b.sessionStorage?sessionStorage.getItem("gh-repos:"+a.repo):!1},g.prototype.handlerErrorRequests=function(a){console.warn(a.message)},g.prototype.handlerSuccessfulRequest=function(a){var b=this;b.applyTemplate(a),b.cacheResults(a)},g.prototype.parsePushedDate=function(a){var c=new Date(a);return c.getDate()+"/"+(c.getMonth()+1)+"/"+c.getFullYear()},g.prototype.parseRepositoryURL=function(a){return a.replace("api.","").replace("repos/","")},g.prototype.parseTemplate=function(b){var c=this,d=c.parsePushedDate(b.pushed_at),e=c.parseRepositoryURL(b.url);return a(a.parseHTML('

'+b.description+' — Read More

Latest commit to master on '+d+'

Download as zip
'))},g.prototype.requestData=function(b){var c=this;a.ajax({url:"https://api.github.com/repos/"+b,dataType:"jsonp",success:function(a){var b=a.data;a.meta.status>=400&&b.message?c.handlerErrorRequest():c.handlerSuccessfulRequest(b)}})},a.fn[d]=function(b){return this.each(function(){a.data(this,"plugin_"+d)||a.data(this,"plugin_"+d,new g(this,b))})}})(jQuery,window); \ No newline at end of file +(function(e,t){function a(t,a){var o=this;o.element=t,o.$container=e(t),o.repo=o.$container.attr("data-repo"),o.options=e.extend({},r,a),o._defaults=r,o._name=s,o.init()}var s="github",r=(t.document,{propertyName:"value"});a.prototype.init=function(){var e=this,t=e.getCache();null!==t?e.applyTemplate(JSON.parse(t)):e.requestData(e.repo)},a.prototype.applyTemplate=function(e){var t=this,a=t.parseTemplate(e);a.appendTo(t.$container)},a.prototype.cacheResults=function(e){var a=this;t.sessionStorage&&t.sessionStorage.setItem("gh-repos:"+a.repo,JSON.stringify(e))},a.prototype.getCache=function(){var e=this;return t.sessionStorage?t.sessionStorage.getItem("gh-repos:"+e.repo):!1},a.prototype.handlerErrorRequests=function(e){console.warn(e.message)},a.prototype.handlerSuccessfulRequest=function(e){var t=this;t.applyTemplate(e),t.cacheResults(e)},a.prototype.parsePushedDate=function(e){var t=new Date(e);return t.getDate()+"/"+(t.getMonth()+1)+"/"+t.getFullYear()},a.prototype.parseRepositoryURL=function(e){return e.replace("api.","").replace("repos/","")},a.prototype.parseTemplate=function(t){var a=this,s=a.parsePushedDate(t.pushed_at),r=a.parseRepositoryURL(t.url);return e(e.parseHTML("

"+t.description+" — Read More

Latest commit to master on "+s+"

Download as zip
"))},a.prototype.requestData=function(t){var a=this;e.ajax({url:"https://api.github.com/repos/"+t,dataType:"jsonp",success:function(e){var t=e.data;e.meta.status>=400&&t.message?a.handlerErrorRequest():a.handlerSuccessfulRequest(t)}})},e.fn[s]=function(t){return this.each(function(){e.data(this,"plugin_"+s)||e.data(this,"plugin_"+s,new a(this,t))})}})(jQuery,window); \ No newline at end of file From 4d96358602714d17f640de81aa1d5306074e6ad1 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Tue, 30 Apr 2013 08:25:17 -0300 Subject: [PATCH 029/101] Apply jQuery's core style --- src/jquery.github.js | 76 ++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/src/jquery.github.js b/src/jquery.github.js index 93bb8b6..ebeff15 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -10,10 +10,10 @@ var self = this; self.element = element; - self.$container = $(element); - self.repo = self.$container.attr("data-repo"); + self.$container = $( element ); + self.repo = self.$container.attr( "data-repo" ); - self.options = $.extend( {}, defaults, options) ; + self.options = $.extend( {}, defaults, options ) ; self._defaults = defaults; self._name = pluginName; @@ -26,38 +26,38 @@ var self = this, cached = self.getCache(); - if (cached !== null) { - self.applyTemplate(JSON.parse(cached)); + if ( cached !== null ) { + self.applyTemplate( JSON.parse( cached ) ); } else { - self.requestData(self.repo); + self.requestData( self.repo ); } }; // Apply results to HTML template - Plugin.prototype.applyTemplate = function (repo) { + Plugin.prototype.applyTemplate = function ( repo ) { var self = this, - $widget = self.parseTemplate(repo); + $widget = self.parseTemplate( repo ); - $widget.appendTo(self.$container); + $widget.appendTo( self.$container ); }; // Stores repostories in sessionStorage if available - Plugin.prototype.cacheResults = function (result_data) { + Plugin.prototype.cacheResults = function ( result_data ) { var self = this; // Cache data - if (window.sessionStorage) { - window.sessionStorage.setItem("gh-repos:" + self.repo, JSON.stringify(result_data)); + if ( window.sessionStorage ) { + window.sessionStorage.setItem( "gh-repos:" + self.repo, JSON.stringify( result_data ) ); } }; // Grab cached results - Plugin.prototype.getCache = function () { + Plugin.prototype.getCache = function() { var self = this; - if (window.sessionStorage) { - return window.sessionStorage.getItem("gh-repos:" + self.repo); + if ( window.sessionStorage ) { + return window.sessionStorage.getItem( "gh-repos:" + self.repo ); } else { return false; @@ -65,43 +65,43 @@ }; // Handle Errors requests - Plugin.prototype.handlerErrorRequests = function (result_data) { + Plugin.prototype.handlerErrorRequests = function ( result_data ) { var self = this; - console.warn(result_data.message); + console.warn( result_data.message ); return; }; // Handle Successful request - Plugin.prototype.handlerSuccessfulRequest = function (result_data) { + Plugin.prototype.handlerSuccessfulRequest = function ( result_data ) { var self = this; - self.applyTemplate(result_data); - self.cacheResults(result_data); + self.applyTemplate( result_data ); + self.cacheResults( result_data ); }; // Parses Pushed date with date format - Plugin.prototype.parsePushedDate = function (pushed_at) { + Plugin.prototype.parsePushedDate = function ( pushed_at ) { var self = this, - date = new Date(pushed_at); + date = new Date( pushed_at ); - return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); + return date.getDate() + "/" + ( date.getMonth() + 1 ) + "/" + date.getFullYear(); }; // Parses repository URL to be friendly - Plugin.prototype.parseRepositoryURL = function (url) { + Plugin.prototype.parseRepositoryURL = function ( url ) { var self = this; - return url.replace("api.","").replace("repos/",""); + return url.replace( "api.", "" ).replace( "repos/", "" ); }; // Parses HTML template - Plugin.prototype.parseTemplate = function (repo) { + Plugin.prototype.parseTemplate = function ( repo ) { var self = this, - pushed_at = self.parsePushedDate(repo.pushed_at), - repo_url = self.parseRepositoryURL(repo.url); + pushed_at = self.parsePushedDate( repo.pushed_at ), + repo_url = self.parseRepositoryURL( repo.url ); - return $($.parseHTML(" \ + return $( $.parseHTML(" \
\
\

\ @@ -120,36 +120,36 @@ Download as zip \

\
\ - ")); + ") ); }; // Request repositories from Github - Plugin.prototype.requestData = function (repo) { + Plugin.prototype.requestData = function ( repo ) { var self = this; $.ajax({ url: "https://api.github.com/repos/" + repo, dataType: "jsonp", - success: function(results) { + success: function( results ) { var result_data = results.data; // Handle API failures - if (results.meta.status >= 400 && result_data.message) { + if ( results.meta.status >= 400 && result_data.message ) { self.handlerErrorRequest(); } else { - self.handlerSuccessfulRequest(result_data); + self.handlerSuccessfulRequest( result_data ); } } }); }; - $.fn[pluginName] = function ( options ) { + $.fn[ pluginName ] = function ( options ) { return this.each(function () { - if (!$.data(this, "plugin_" + pluginName)) { - $.data(this, "plugin_" + pluginName, new Plugin( this, options )); + if ( !$.data( this, "plugin_" + pluginName ) ) { + $.data( this, "plugin_" + pluginName, new Plugin( this, options ) ); } }); }; -}(jQuery, window)); +}( jQuery, window ) ); From 55cb9841aa58cb12bf2c8437bdbd457e215b9720 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Tue, 30 Apr 2013 08:26:11 -0300 Subject: [PATCH 030/101] Generate v0.2.8 --- README.md | 3 +- dist/jquery.github.js | 78 +++++++++++++++++++-------------------- dist/jquery.github.min.js | 2 +- github.jquery.json | 2 +- package.json | 2 +- 5 files changed, 44 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 5b10ad0..24b2cd4 100644 --- a/README.md +++ b/README.md @@ -49,9 +49,10 @@ Also remember to follow [jQuery's Code Style](http://contribute.jquery.org/style ## History +* v0.2.8 April 30, 2013 + * Follow jQuery's core style guide * v0.2.7 April 29, 2013 * Code refactoring - * Follow jQuery's core style guide * Upgrade Grunt from v0.3 to v0.4 * v0.2.6 March 14, 2013 * Updated to responsive design diff --git a/dist/jquery.github.js b/dist/jquery.github.js index 54d7a9b..eb540db 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -1,5 +1,5 @@ /* - * jQuery Github - v0.2.7 + * jQuery Github - v0.2.8 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ * @@ -18,10 +18,10 @@ var self = this; self.element = element; - self.$container = $(element); - self.repo = self.$container.attr("data-repo"); + self.$container = $( element ); + self.repo = self.$container.attr( "data-repo" ); - self.options = $.extend( {}, defaults, options) ; + self.options = $.extend( {}, defaults, options ) ; self._defaults = defaults; self._name = pluginName; @@ -34,38 +34,38 @@ var self = this, cached = self.getCache(); - if (cached !== null) { - self.applyTemplate(JSON.parse(cached)); + if ( cached !== null ) { + self.applyTemplate( JSON.parse( cached ) ); } else { - self.requestData(self.repo); + self.requestData( self.repo ); } }; // Apply results to HTML template - Plugin.prototype.applyTemplate = function (repo) { + Plugin.prototype.applyTemplate = function ( repo ) { var self = this, - $widget = self.parseTemplate(repo); + $widget = self.parseTemplate( repo ); - $widget.appendTo(self.$container); + $widget.appendTo( self.$container ); }; // Stores repostories in sessionStorage if available - Plugin.prototype.cacheResults = function (result_data) { + Plugin.prototype.cacheResults = function ( result_data ) { var self = this; // Cache data - if (window.sessionStorage) { - window.sessionStorage.setItem("gh-repos:" + self.repo, JSON.stringify(result_data)); + if ( window.sessionStorage ) { + window.sessionStorage.setItem( "gh-repos:" + self.repo, JSON.stringify( result_data ) ); } }; // Grab cached results - Plugin.prototype.getCache = function () { + Plugin.prototype.getCache = function() { var self = this; - if (window.sessionStorage) { - return window.sessionStorage.getItem("gh-repos:" + self.repo); + if ( window.sessionStorage ) { + return window.sessionStorage.getItem( "gh-repos:" + self.repo ); } else { return false; @@ -73,43 +73,43 @@ }; // Handle Errors requests - Plugin.prototype.handlerErrorRequests = function (result_data) { + Plugin.prototype.handlerErrorRequests = function ( result_data ) { var self = this; - console.warn(result_data.message); + console.warn( result_data.message ); return; }; // Handle Successful request - Plugin.prototype.handlerSuccessfulRequest = function (result_data) { + Plugin.prototype.handlerSuccessfulRequest = function ( result_data ) { var self = this; - self.applyTemplate(result_data); - self.cacheResults(result_data); + self.applyTemplate( result_data ); + self.cacheResults( result_data ); }; // Parses Pushed date with date format - Plugin.prototype.parsePushedDate = function (pushed_at) { + Plugin.prototype.parsePushedDate = function ( pushed_at ) { var self = this, - date = new Date(pushed_at); + date = new Date( pushed_at ); - return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); + return date.getDate() + "/" + ( date.getMonth() + 1 ) + "/" + date.getFullYear(); }; // Parses repository URL to be friendly - Plugin.prototype.parseRepositoryURL = function (url) { + Plugin.prototype.parseRepositoryURL = function ( url ) { var self = this; - return url.replace("api.","").replace("repos/",""); + return url.replace( "api.", "" ).replace( "repos/", "" ); }; // Parses HTML template - Plugin.prototype.parseTemplate = function (repo) { + Plugin.prototype.parseTemplate = function ( repo ) { var self = this, - pushed_at = self.parsePushedDate(repo.pushed_at), - repo_url = self.parseRepositoryURL(repo.url); + pushed_at = self.parsePushedDate( repo.pushed_at ), + repo_url = self.parseRepositoryURL( repo.url ); - return $($.parseHTML(" \ + return $( $.parseHTML(" \
\
\

\ @@ -128,36 +128,36 @@ Download as zip \

\
\ - ")); + ") ); }; // Request repositories from Github - Plugin.prototype.requestData = function (repo) { + Plugin.prototype.requestData = function ( repo ) { var self = this; $.ajax({ url: "https://api.github.com/repos/" + repo, dataType: "jsonp", - success: function(results) { + success: function( results ) { var result_data = results.data; // Handle API failures - if (results.meta.status >= 400 && result_data.message) { + if ( results.meta.status >= 400 && result_data.message ) { self.handlerErrorRequest(); } else { - self.handlerSuccessfulRequest(result_data); + self.handlerSuccessfulRequest( result_data ); } } }); }; - $.fn[pluginName] = function ( options ) { + $.fn[ pluginName ] = function ( options ) { return this.each(function () { - if (!$.data(this, "plugin_" + pluginName)) { - $.data(this, "plugin_" + pluginName, new Plugin( this, options )); + if ( !$.data( this, "plugin_" + pluginName ) ) { + $.data( this, "plugin_" + pluginName, new Plugin( this, options ) ); } }); }; -}(jQuery, window)); +}( jQuery, window ) ); diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index d35fea7..29f3332 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -1,5 +1,5 @@ /* - * jQuery Github - v0.2.7 + * jQuery Github - v0.2.8 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ * diff --git a/github.jquery.json b/github.jquery.json index f24ac79..8f70fd8 100644 --- a/github.jquery.json +++ b/github.jquery.json @@ -7,7 +7,7 @@ "repositories", "git" ], - "version": "0.2.5", + "version": "0.2.8", "author": { "name": "Zeno Rocha", "url": "https://github.com/zenorocha" diff --git a/package.json b/package.json index 80e7060..92238e6 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A jQuery plugin to display your Github Repositories.", "author": "Zeno Rocha", "homepage": "https://github.com/zenorocha/jquery-github/", - "version": "0.2.7", + "version": "0.2.8", "devDependencies": { "grunt": "~0.4.1", "grunt-cli": "~0.1.7", From 595761b6280e2b9fd1fb4c70452981e970abcf40 Mon Sep 17 00:00:00 2001 From: Beto Muniz Date: Wed, 1 May 2013 01:50:24 -0300 Subject: [PATCH 031/101] fix url for download repository --- dist/jquery.github.js | 18 +++++++++--------- dist/jquery.github.min.js | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/dist/jquery.github.js b/dist/jquery.github.js index eb540db..2bcefe5 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -1,11 +1,11 @@ -/* - * jQuery Github - v0.2.8 - * A jQuery plugin to display your Github Repositories. - * https://github.com/zenorocha/jquery-github/ - * - * Copyright (c) 2013 - * MIT License - */ +/* + * jQuery Github - v0.2.8 + * A jQuery plugin to display your Github Repositories. + * https://github.com/zenorocha/jquery-github/ + * + * Copyright (c) 2013 + * MIT License + */ ;( function ( $, window, undefined ) { var pluginName = "github", @@ -125,7 +125,7 @@
\
\

Latest commit to master on " + pushed_at + "

\ - Download as zip \ + Download as zip \
\
\ ") ); diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index 29f3332..9c551d3 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -1,9 +1,9 @@ -/* - * jQuery Github - v0.2.8 - * A jQuery plugin to display your Github Repositories. - * https://github.com/zenorocha/jquery-github/ - * - * Copyright (c) 2013 - * MIT License - */ -(function(e,t){function a(t,a){var o=this;o.element=t,o.$container=e(t),o.repo=o.$container.attr("data-repo"),o.options=e.extend({},r,a),o._defaults=r,o._name=s,o.init()}var s="github",r=(t.document,{propertyName:"value"});a.prototype.init=function(){var e=this,t=e.getCache();null!==t?e.applyTemplate(JSON.parse(t)):e.requestData(e.repo)},a.prototype.applyTemplate=function(e){var t=this,a=t.parseTemplate(e);a.appendTo(t.$container)},a.prototype.cacheResults=function(e){var a=this;t.sessionStorage&&t.sessionStorage.setItem("gh-repos:"+a.repo,JSON.stringify(e))},a.prototype.getCache=function(){var e=this;return t.sessionStorage?t.sessionStorage.getItem("gh-repos:"+e.repo):!1},a.prototype.handlerErrorRequests=function(e){console.warn(e.message)},a.prototype.handlerSuccessfulRequest=function(e){var t=this;t.applyTemplate(e),t.cacheResults(e)},a.prototype.parsePushedDate=function(e){var t=new Date(e);return t.getDate()+"/"+(t.getMonth()+1)+"/"+t.getFullYear()},a.prototype.parseRepositoryURL=function(e){return e.replace("api.","").replace("repos/","")},a.prototype.parseTemplate=function(t){var a=this,s=a.parsePushedDate(t.pushed_at),r=a.parseRepositoryURL(t.url);return e(e.parseHTML("

"+t.description+" — Read More

Latest commit to master on "+s+"

Download as zip
"))},a.prototype.requestData=function(t){var a=this;e.ajax({url:"https://api.github.com/repos/"+t,dataType:"jsonp",success:function(e){var t=e.data;e.meta.status>=400&&t.message?a.handlerErrorRequest():a.handlerSuccessfulRequest(t)}})},e.fn[s]=function(t){return this.each(function(){e.data(this,"plugin_"+s)||e.data(this,"plugin_"+s,new a(this,t))})}})(jQuery,window); \ No newline at end of file +/* + * jQuery Github - v0.2.8 + * A jQuery plugin to display your Github Repositories. + * https://github.com/zenorocha/jquery-github/ + * + * Copyright (c) 2013 + * MIT License + */ +(function(e,t){function a(t,a){var o=this;o.element=t,o.$container=e(t),o.repo=o.$container.attr("data-repo"),o.options=e.extend({},r,a),o._defaults=r,o._name=s,o.init()}var s="github",r=(t.document,{propertyName:"value"});a.prototype.init=function(){var e=this,t=e.getCache();null!==t?e.applyTemplate(JSON.parse(t)):e.requestData(e.repo)},a.prototype.applyTemplate=function(e){var t=this,a=t.parseTemplate(e);a.appendTo(t.$container)},a.prototype.cacheResults=function(e){var a=this;t.sessionStorage&&t.sessionStorage.setItem("gh-repos:"+a.repo,JSON.stringify(e))},a.prototype.getCache=function(){var e=this;return t.sessionStorage?t.sessionStorage.getItem("gh-repos:"+e.repo):!1},a.prototype.handlerErrorRequests=function(e){console.warn(e.message)},a.prototype.handlerSuccessfulRequest=function(e){var t=this;t.applyTemplate(e),t.cacheResults(e)},a.prototype.parsePushedDate=function(e){var t=new Date(e);return t.getDate()+"/"+(t.getMonth()+1)+"/"+t.getFullYear()},a.prototype.parseRepositoryURL=function(e){return e.replace("api.","").replace("repos/","")},a.prototype.parseTemplate=function(t){var a=this,s=a.parsePushedDate(t.pushed_at),r=a.parseRepositoryURL(t.url);return e(e.parseHTML("

"+t.description+" — Read More

Latest commit to master on "+s+"

Download as zip
"))},a.prototype.requestData=function(t){var a=this;e.ajax({url:"https://api.github.com/repos/"+t,dataType:"jsonp",success:function(e){var t=e.data;e.meta.status>=400&&t.message?a.handlerErrorRequest():a.handlerSuccessfulRequest(t)}})},e.fn[s]=function(t){return this.each(function(){e.data(this,"plugin_"+s)||e.data(this,"plugin_"+s,new a(this,t))})}})(jQuery,window); \ No newline at end of file From 8f6c38999c61cec782003ed1bc245eded15f2d11 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Wed, 1 May 2013 08:57:35 -0300 Subject: [PATCH 032/101] Fix urls --- dist/jquery.github.js | 22 +++++++++++----------- dist/jquery.github.min.js | 18 +++++++++--------- src/jquery.github.js | 8 ++++---- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/dist/jquery.github.js b/dist/jquery.github.js index 2bcefe5..e2802da 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -1,11 +1,11 @@ -/* - * jQuery Github - v0.2.8 - * A jQuery plugin to display your Github Repositories. - * https://github.com/zenorocha/jquery-github/ - * - * Copyright (c) 2013 - * MIT License - */ +/* + * jQuery Github - v0.2.8 + * A jQuery plugin to display your Github Repositories. + * https://github.com/zenorocha/jquery-github/ + * + * Copyright (c) 2013 + * MIT License + */ ;( function ( $, window, undefined ) { var pluginName = "github", @@ -116,12 +116,12 @@ " + repo.name + " \ \ \
\
\ -

" + repo.description + " — Read More

\ +

" + repo.description + " — Read More

\
\
\

Latest commit to master on " + pushed_at + "

\ diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index 9c551d3..1e28f99 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -1,9 +1,9 @@ -/* - * jQuery Github - v0.2.8 - * A jQuery plugin to display your Github Repositories. - * https://github.com/zenorocha/jquery-github/ - * - * Copyright (c) 2013 - * MIT License - */ -(function(e,t){function a(t,a){var o=this;o.element=t,o.$container=e(t),o.repo=o.$container.attr("data-repo"),o.options=e.extend({},r,a),o._defaults=r,o._name=s,o.init()}var s="github",r=(t.document,{propertyName:"value"});a.prototype.init=function(){var e=this,t=e.getCache();null!==t?e.applyTemplate(JSON.parse(t)):e.requestData(e.repo)},a.prototype.applyTemplate=function(e){var t=this,a=t.parseTemplate(e);a.appendTo(t.$container)},a.prototype.cacheResults=function(e){var a=this;t.sessionStorage&&t.sessionStorage.setItem("gh-repos:"+a.repo,JSON.stringify(e))},a.prototype.getCache=function(){var e=this;return t.sessionStorage?t.sessionStorage.getItem("gh-repos:"+e.repo):!1},a.prototype.handlerErrorRequests=function(e){console.warn(e.message)},a.prototype.handlerSuccessfulRequest=function(e){var t=this;t.applyTemplate(e),t.cacheResults(e)},a.prototype.parsePushedDate=function(e){var t=new Date(e);return t.getDate()+"/"+(t.getMonth()+1)+"/"+t.getFullYear()},a.prototype.parseRepositoryURL=function(e){return e.replace("api.","").replace("repos/","")},a.prototype.parseTemplate=function(t){var a=this,s=a.parsePushedDate(t.pushed_at),r=a.parseRepositoryURL(t.url);return e(e.parseHTML("

"+t.description+" — Read More

Latest commit to master on "+s+"

Download as zip
"))},a.prototype.requestData=function(t){var a=this;e.ajax({url:"https://api.github.com/repos/"+t,dataType:"jsonp",success:function(e){var t=e.data;e.meta.status>=400&&t.message?a.handlerErrorRequest():a.handlerSuccessfulRequest(t)}})},e.fn[s]=function(t){return this.each(function(){e.data(this,"plugin_"+s)||e.data(this,"plugin_"+s,new a(this,t))})}})(jQuery,window); \ No newline at end of file +/* + * jQuery Github - v0.2.8 + * A jQuery plugin to display your Github Repositories. + * https://github.com/zenorocha/jquery-github/ + * + * Copyright (c) 2013 + * MIT License + */ +(function(e,t){function a(t,a){var o=this;o.element=t,o.$container=e(t),o.repo=o.$container.attr("data-repo"),o.options=e.extend({},r,a),o._defaults=r,o._name=s,o.init()}var s="github",r=(t.document,{propertyName:"value"});a.prototype.init=function(){var e=this,t=e.getCache();null!==t?e.applyTemplate(JSON.parse(t)):e.requestData(e.repo)},a.prototype.applyTemplate=function(e){var t=this,a=t.parseTemplate(e);a.appendTo(t.$container)},a.prototype.cacheResults=function(e){var a=this;t.sessionStorage&&t.sessionStorage.setItem("gh-repos:"+a.repo,JSON.stringify(e))},a.prototype.getCache=function(){var e=this;return t.sessionStorage?t.sessionStorage.getItem("gh-repos:"+e.repo):!1},a.prototype.handlerErrorRequests=function(e){console.warn(e.message)},a.prototype.handlerSuccessfulRequest=function(e){var t=this;t.applyTemplate(e),t.cacheResults(e)},a.prototype.parsePushedDate=function(e){var t=new Date(e);return t.getDate()+"/"+(t.getMonth()+1)+"/"+t.getFullYear()},a.prototype.parseRepositoryURL=function(e){return e.replace("api.","").replace("repos/","")},a.prototype.parseTemplate=function(t){var a=this,s=a.parsePushedDate(t.pushed_at),r=a.parseRepositoryURL(t.url);return e(e.parseHTML("

"+t.description+" — Read More

Latest commit to master on "+s+"

Download as zip
"))},a.prototype.requestData=function(t){var a=this;e.ajax({url:"https://api.github.com/repos/"+t,dataType:"jsonp",success:function(e){var t=e.data;e.meta.status>=400&&t.message?a.handlerErrorRequest():a.handlerSuccessfulRequest(t)}})},e.fn[s]=function(t){return this.each(function(){e.data(this,"plugin_"+s)||e.data(this,"plugin_"+s,new a(this,t))})}})(jQuery,window); \ No newline at end of file diff --git a/src/jquery.github.js b/src/jquery.github.js index ebeff15..b23383e 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -108,16 +108,16 @@ " + repo.name + " \ \ \
\
\ -

" + repo.description + " — Read More

\ +

" + repo.description + " — Read More

\
\
\

Latest commit to master on " + pushed_at + "

\ - Download as zip \ + Download as zip \
\
\ ") ); From 3151f817c9ad8100c4f3da0594b2dcd985774661 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Wed, 1 May 2013 08:59:03 -0300 Subject: [PATCH 033/101] Generate v0.2.9 --- README.md | 6 ++++-- dist/jquery.github.js | 2 +- dist/jquery.github.min.js | 2 +- github.jquery.json | 2 +- package.json | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 24b2cd4..0a6dc55 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,13 @@ Also remember to follow [jQuery's Code Style](http://contribute.jquery.org/style ## History +* v0.2.9 May 1, 2013 + * Fixed urls * v0.2.8 April 30, 2013 - * Follow jQuery's core style guide + * Followed jQuery's core style guide * v0.2.7 April 29, 2013 * Code refactoring - * Upgrade Grunt from v0.3 to v0.4 + * Upgraded Grunt from v0.3 to v0.4 * v0.2.6 March 14, 2013 * Updated to responsive design * v0.2.5 March 01, 2013 diff --git a/dist/jquery.github.js b/dist/jquery.github.js index e2802da..f56d90b 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -1,5 +1,5 @@ /* - * jQuery Github - v0.2.8 + * jQuery Github - v0.2.9 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ * diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index 1e28f99..b219d3c 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -1,5 +1,5 @@ /* - * jQuery Github - v0.2.8 + * jQuery Github - v0.2.9 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ * diff --git a/github.jquery.json b/github.jquery.json index 8f70fd8..49f59e4 100644 --- a/github.jquery.json +++ b/github.jquery.json @@ -7,7 +7,7 @@ "repositories", "git" ], - "version": "0.2.8", + "version": "0.2.9", "author": { "name": "Zeno Rocha", "url": "https://github.com/zenorocha" diff --git a/package.json b/package.json index 92238e6..d66c93f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A jQuery plugin to display your Github Repositories.", "author": "Zeno Rocha", "homepage": "https://github.com/zenorocha/jquery-github/", - "version": "0.2.8", + "version": "0.2.9", "devDependencies": { "grunt": "~0.4.1", "grunt-cli": "~0.1.7", From 6a4e961c6cd73430dad8761fe8c3b37a875e1c63 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Thu, 2 May 2013 13:23:24 -0300 Subject: [PATCH 034/101] Add Showcase section --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 0a6dc55..033fed2 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,15 @@ And that's it \o/ [Check full example's source code](https://github.com/zenorocha/jquery-github/blob/master/demo/index.html). +## Showcase + +* [zenorocha.com/projects](http://zenorocha.com/projects/) +* [anasnakawa.com/projects](http://anasnakawa.com/projects/) + +Have you used this plugin in your project? + +Let me know! Send a [tweet](http://twitter.com/zenorocha) or [pull request](https://github.com/zenorocha/jquery-github/pull/new/master) :) + ## Forks Prefer a non-jquery version with pure JavaScript? No problem, [@ricardobeat](https://github.com/ricardobeat) already did one :) Check [his fork!](https://github.com/ricardobeat/github-repos) From 35b01770ad66d7573f43d14f68e862da57075d6a Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Thu, 2 May 2013 13:28:03 -0300 Subject: [PATCH 035/101] Highlight common questions --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 033fed2..633d112 100644 --- a/README.md +++ b/README.md @@ -38,13 +38,15 @@ And that's it \o/ * [zenorocha.com/projects](http://zenorocha.com/projects/) * [anasnakawa.com/projects](http://anasnakawa.com/projects/) -Have you used this plugin in your project? +**Have you used this plugin in your project?** -Let me know! Send a [tweet](http://twitter.com/zenorocha) or [pull request](https://github.com/zenorocha/jquery-github/pull/new/master) :) +Let me know! Send a [tweet](http://twitter.com/zenorocha) or [pull request](https://github.com/zenorocha/jquery-github/pull/new/master) and I'll add it here :) ## Forks -Prefer a non-jquery version with pure JavaScript? No problem, [@ricardobeat](https://github.com/ricardobeat) already did one :) Check [his fork!](https://github.com/ricardobeat/github-repos) +**Prefer a non-jquery version with pure JavaScript?** + +No problem, [@ricardobeat](https://github.com/ricardobeat) already did one. Check [his fork!](https://github.com/ricardobeat/github-repos) ## Contributing From 45dbb355eca63f4a089e498b1f5788bfda1406ac Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Sat, 11 May 2013 08:40:10 -0300 Subject: [PATCH 036/101] Use font icons instead of images --- assets/Entypo-webfont.eot | Bin 0 -> 25004 bytes assets/Entypo-webfont.svg | 141 +++++++++++++++++++++++++++++++++++++ assets/Entypo-webfont.ttf | Bin 0 -> 24840 bytes assets/Entypo-webfont.woff | Bin 0 -> 16204 bytes assets/base.css | 50 ++++++++++--- assets/btn-sprite.png | Bin 1598 -> 0 bytes src/jquery.github.js | 6 +- 7 files changed, 184 insertions(+), 13 deletions(-) create mode 100755 assets/Entypo-webfont.eot create mode 100755 assets/Entypo-webfont.svg create mode 100755 assets/Entypo-webfont.ttf create mode 100755 assets/Entypo-webfont.woff delete mode 100644 assets/btn-sprite.png diff --git a/assets/Entypo-webfont.eot b/assets/Entypo-webfont.eot new file mode 100755 index 0000000000000000000000000000000000000000..a754415abcc98c5cf596ce5eb7ee8c43a028892b GIT binary patch literal 25004 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 aGHP)$S-K=`xCuAaP*GhfZn5;V@P7bXCE+0e literal 0 HcmV?d00001 diff --git a/assets/Entypo-webfont.svg b/assets/Entypo-webfont.svg new file mode 100755 index 0000000..0bdb76b --- /dev/null +++ b/assets/Entypo-webfont.svg @@ -0,0 +1,141 @@ + + + + +This is a custom SVG webfont generated by Font Squirrel. +Copyright : Creative Commons CC BYSA 2012 +Designer : Daniel Bruce +Foundry : Daniel Bruce +Foundry URL : wwwdanielbrucese + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/Entypo-webfont.ttf b/assets/Entypo-webfont.ttf new file mode 100755 index 0000000000000000000000000000000000000000..25438bd199ed2a339b6449839698d232a48d712a GIT binary patch literal 24840 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 literal 0 HcmV?d00001 diff --git a/assets/Entypo-webfont.woff b/assets/Entypo-webfont.woff new file mode 100755 index 0000000000000000000000000000000000000000..b859168e7fdb95bc5a17644d1692a17ba5907a23 GIT binary patch literal 16204 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 literal 0 HcmV?d00001 diff --git a/assets/base.css b/assets/base.css index 05c78ff..0be81d4 100644 --- a/assets/base.css +++ b/assets/base.css @@ -50,6 +50,7 @@ /* Github Box Header - Stats */ .github-box .github-box-header .github-stats { + line-height: 36px; position: absolute; top: 10px; right: 10px; @@ -66,10 +67,10 @@ display: inline-block; height: 21px; color: #666; - padding: 0 5px 0 18px; - background: url('btn-sprite.png') no-repeat; + padding: 0 5px 0 5px; filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70); opacity: 0.7; + vertical-align: top; } .github-box .github-box-header .github-stats a:hover { @@ -77,14 +78,21 @@ opacity: 1; } -.github-box .github-box-header .github-stats .repo-watchers { +.github-box .github-box-header .github-stats a:before { + font-family: 'EntypoRegular'; + content: attr(data-icon); + display: inline-block; + speak: none; + padding-right: 2px; + font-size: 2em; +} + +.github-box .github-box-header .github-stats .repo-stars { border-right: 1px solid #ddd; - background-position: 3px 4px; } .github-box .github-box-header .github-stats .repo-forks { - background-position: 2px -14px; - padding-left: 15px; + padding-left: 2px; } /* Github Box Content */ @@ -147,13 +155,12 @@ border-bottom-color: #bbb; border-radius: 3px; display: block; - text-indent: -9999px; width: 24px; padding: 0; - background: url('btn-sprite.png') no-repeat 4px -31px,-webkit-linear-gradient(whiteSmoke, #E5E5E5); - background: url('btn-sprite.png') no-repeat 4px -31px,-moz-linear-gradient(#f1f7fa, #dbeaf1); + background: -webkit-linear-gradient(whiteSmoke, #E5E5E5); + background: -moz-linear-gradient(#f1f7fa, #dbeaf1); filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=70); - opacity: 0.7; + opacity: 1; } .github-box .github-box-download .repo-download:hover { @@ -164,6 +171,16 @@ opacity: 1; } +.github-box .github-box-download .repo-download:before { + font-family: 'EntypoRegular'; + text-indent: 0px; + content: attr(data-icon); + display: inline-block; + speak: none; + font-size: 2.0em; + padding: 0 6px; +} + /* Breakpoint content-driven */ @media all and (max-width: 678px) { @@ -173,3 +190,16 @@ margin-right: 0; } } + +/* Fonts */ + +@font-face { + font-family: 'EntypoRegular'; + src: url('Entypo-webfont.eot'); + src: url('Entypo-webfont.eot?#iefix') format('embedded-opentype'), + url('Entypo-webfont.woff') format('woff'), + url('Entypo-webfont.ttf') format('truetype'), + url('Entypo-webfont.svg#EntypoRegular') format('svg'); + font-weight: normal; + font-style: normal; +} diff --git a/assets/btn-sprite.png b/assets/btn-sprite.png deleted file mode 100644 index b9e22c04a8699c7c4386b7bc280c1c017ba4a14f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1598 zcmeAS@N?(olHy`uVBq!ia0vp^d_Zi-!3HE>rOa3fq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfglRhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb;hUJ8nFkWk z1ncniwerj>E=kNwPW5!LRRWr!mzkMj_fVQA=T}P z3G>cYauirMF;GNRfK`~4zp2YD-%V+em^r0v?Zf90$7yHQIlwD>H>@PFTVc{ zSR3~6+qY@Q#JX8!_}JI1U8{MGv!E-TGH@6N5Kub*fj(Qy26qk{rN z)Y@;N6~)EO>gwtSQoRRKj2x9FHaslw;Qmr&D3M(^FfA<5j}eZyp~QXsjA|d zb0@=uYxeBf6TFsY%<)k>`8Gz+e5(qFK&OjCO;r_BrOO9t^^c0*LROi7K7amvaCr7s zsg%u;x0YYbXsNK_d;D?60jb`$n73uS7hHaMLV5PtZ(e-w-oJU%BXP90uxQ=7bs2m! z@7}z*(2{j^%mfw|^Vz;q`8hcamtVGg{rdI$;g8Y&eILqYKH1L>JKg3Qaq3ZuQRCmg zwN{hn7m1$Nk=Aa|kFTD6t#S-}S7#>_t@8HmThBA9o!rW;C2M9CU)|EOE~4n)dM<R71~$WQ{_7UfMd@;NhxWzoaifArdMZ|?OyAVbnPC;qw2!R+)W#66LU|C%WO7# zCcXbu=D}~@z8(7Gv|8iE$)iVG74*FAnV!vN|0ny`MPjo(iv)wH^E5eT|I%VmiSFs@ K=d#Wzp$PzV{b$br diff --git a/src/jquery.github.js b/src/jquery.github.js index b23383e..b9a617a 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -108,8 +108,8 @@ " + repo.name + " \ \

\
\
\ @@ -117,7 +117,7 @@
\
\

Latest commit to master on " + pushed_at + "

\ - Download as zip \ + \
\ \ ") ); From 63679969dd37a50ee9e2cb5544cefe05dd16dccf Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Sat, 11 May 2013 08:52:47 -0300 Subject: [PATCH 037/101] Add Grunt Watch task --- Gruntfile.js | 10 +++++++++- package.json | 5 +++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 2fba85e..c2449a7 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -41,13 +41,21 @@ module.exports = function(grunt) { src: ['dist/jquery.github.js'], dest: 'dist/jquery.github.min.js' } - } + }, + + // Run JSHint, concat, minify and send it to the dist folder + // any time a file is added, changed or deleted + watch: { + files: ['**/*'], + tasks: ['jshint', 'concat', 'uglify'], + }, }); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-watch'); grunt.registerTask('default', ['jshint', 'concat', 'uglify']); grunt.registerTask('travis', ['jshint']); diff --git a/package.json b/package.json index d66c93f..856714d 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,14 @@ "description": "A jQuery plugin to display your Github Repositories.", "author": "Zeno Rocha", "homepage": "https://github.com/zenorocha/jquery-github/", - "version": "0.2.9", + "version": "0.3.0", "devDependencies": { "grunt": "~0.4.1", "grunt-cli": "~0.1.7", "grunt-contrib-jshint": "~0.4.3", "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-uglify": "~0.2.0" + "grunt-contrib-uglify": "~0.2.0", + "grunt-contrib-watch": "~0.4.2" }, "scripts": { "test": "grunt travis --verbose" From 69d16df06aa496da884813881b6bdf027f311665 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Sat, 11 May 2013 10:02:05 -0300 Subject: [PATCH 038/101] Add options to display or hide icons --- assets/base.css | 1 + demo/index.html | 2 +- src/jquery.github.js | 31 ++++++++++++++++++++++++++++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/assets/base.css b/assets/base.css index 0be81d4..312546d 100644 --- a/assets/base.css +++ b/assets/base.css @@ -93,6 +93,7 @@ .github-box .github-box-header .github-stats .repo-forks { padding-left: 2px; + border-right: 1px solid #ddd; } /* Github Box Content */ diff --git a/demo/index.html b/demo/index.html index 78bd98c..e63c7fb 100644 --- a/demo/index.html +++ b/demo/index.html @@ -38,7 +38,7 @@

jQuery Github

diff --git a/src/jquery.github.js b/src/jquery.github.js index b9a617a..9a0dbf5 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -3,7 +3,9 @@ var pluginName = "github", document = window.document, defaults = { - propertyName: "value" + iconStars: true, + iconForks: true, + iconIssues: false }; function Plugin( element, options ) { @@ -19,6 +21,7 @@ self._name = pluginName; self.init(); + self.displayIcons(); } // Initializer @@ -34,6 +37,31 @@ } }; + // Display or hide icons + Plugin.prototype.displayIcons = function () { + $iconStars = $( ".repo-stars" ); + $iconForks = $( ".repo-forks" ); + $iconIssues = $( ".repo-issues" ); + + if ( this.options.iconStars ) { + $iconStars.css( "display", "inline-block" ); + } else { + $iconStars.css( "display", "none" ); + } + + if ( this.options.iconForks ) { + $iconForks.css( "display", "inline-block" ); + } else { + $iconForks.css( "display", "none" ); + } + + if ( this.options.iconIssues ) { + $iconIssues.css( "display", "inline-block" ); + } else { + $iconIssues.css( "display", "none" ); + } + }; + // Apply results to HTML template Plugin.prototype.applyTemplate = function ( repo ) { var self = this, @@ -110,6 +138,7 @@ \ \
\ From 86a3b99186639a7baf5feacbfb2ef75ab55142ee Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Sat, 11 May 2013 10:02:53 -0300 Subject: [PATCH 039/101] Generate v0.3.0 --- README.md | 39 ++++++++++++++++++++++++++++++++++++++- dist/jquery.github.js | 39 ++++++++++++++++++++++++++++++++++----- dist/jquery.github.min.js | 4 ++-- github.jquery.json | 2 +- 4 files changed, 75 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 633d112..29873ef 100644 --- a/README.md +++ b/README.md @@ -26,13 +26,43 @@ Include plugin's CSS and JS: Call the plugin: ```javascript -$('[data-repo]').github(); +$("[data-repo]").github(); ``` And that's it \o/ [Check full example's source code](https://github.com/zenorocha/jquery-github/blob/master/demo/index.html). +## Options + +Here's a list of available settings. + +```javascript +$("[data-repo]").github({ + iconStars: true, + iconForks: true, + iconIssues: false +}); +``` + +#### iconStars + +*Type: `Boolean` Default: `true`* + +Display the number of stars in a repository. + +#### iconForks + +*Type: `Boolean` Default: `true`* + +Display the number of forks in a repository. + +#### iconIssues + +*Type: `Boolean` Default: `false`* + +Display the number of issues in a repository. + ## Showcase * [zenorocha.com/projects](http://zenorocha.com/projects/) @@ -60,6 +90,13 @@ Also remember to follow [jQuery's Code Style](http://contribute.jquery.org/style ## History +* v0.3.0 May 11, 2013 + * Added options to display or hide icons + * Displayed the number of issues + * Added Grunt Watch task + * Added title on attribute on icons + * Switched from 'watch' icon to 'star' icon + * Used font icons instead of images * v0.2.9 May 1, 2013 * Fixed urls * v0.2.8 April 30, 2013 diff --git a/dist/jquery.github.js b/dist/jquery.github.js index f56d90b..336661b 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -1,5 +1,5 @@ /* - * jQuery Github - v0.2.9 + * jQuery Github - v0.3.0 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ * @@ -11,7 +11,9 @@ var pluginName = "github", document = window.document, defaults = { - propertyName: "value" + iconStars: true, + iconForks: true, + iconIssues: false }; function Plugin( element, options ) { @@ -27,6 +29,7 @@ self._name = pluginName; self.init(); + self.displayIcons(); } // Initializer @@ -42,6 +45,31 @@ } }; + // Display or hide icons + Plugin.prototype.displayIcons = function () { + $iconStars = $( ".repo-stars" ); + $iconForks = $( ".repo-forks" ); + $iconIssues = $( ".repo-issues" ); + + if ( this.options.iconStars ) { + $iconStars.css( "display", "inline-block" ); + } else { + $iconStars.css( "display", "none" ); + } + + if ( this.options.iconForks ) { + $iconForks.css( "display", "inline-block" ); + } else { + $iconForks.css( "display", "none" ); + } + + if ( this.options.iconIssues ) { + $iconIssues.css( "display", "inline-block" ); + } else { + $iconIssues.css( "display", "none" ); + } + }; + // Apply results to HTML template Plugin.prototype.applyTemplate = function ( repo ) { var self = this, @@ -116,8 +144,9 @@ " + repo.name + " \ \ \
\
\ @@ -125,7 +154,7 @@
\
\

Latest commit to master on " + pushed_at + "

\ - Download as zip \ + \
\ \ ") ); diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index b219d3c..662b8e9 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -1,9 +1,9 @@ /* - * jQuery Github - v0.2.9 + * jQuery Github - v0.3.0 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github/ * * Copyright (c) 2013 * MIT License */ -(function(e,t){function a(t,a){var o=this;o.element=t,o.$container=e(t),o.repo=o.$container.attr("data-repo"),o.options=e.extend({},r,a),o._defaults=r,o._name=s,o.init()}var s="github",r=(t.document,{propertyName:"value"});a.prototype.init=function(){var e=this,t=e.getCache();null!==t?e.applyTemplate(JSON.parse(t)):e.requestData(e.repo)},a.prototype.applyTemplate=function(e){var t=this,a=t.parseTemplate(e);a.appendTo(t.$container)},a.prototype.cacheResults=function(e){var a=this;t.sessionStorage&&t.sessionStorage.setItem("gh-repos:"+a.repo,JSON.stringify(e))},a.prototype.getCache=function(){var e=this;return t.sessionStorage?t.sessionStorage.getItem("gh-repos:"+e.repo):!1},a.prototype.handlerErrorRequests=function(e){console.warn(e.message)},a.prototype.handlerSuccessfulRequest=function(e){var t=this;t.applyTemplate(e),t.cacheResults(e)},a.prototype.parsePushedDate=function(e){var t=new Date(e);return t.getDate()+"/"+(t.getMonth()+1)+"/"+t.getFullYear()},a.prototype.parseRepositoryURL=function(e){return e.replace("api.","").replace("repos/","")},a.prototype.parseTemplate=function(t){var a=this,s=a.parsePushedDate(t.pushed_at),r=a.parseRepositoryURL(t.url);return e(e.parseHTML("

"+t.description+" — Read More

Latest commit to master on "+s+"

Download as zip
"))},a.prototype.requestData=function(t){var a=this;e.ajax({url:"https://api.github.com/repos/"+t,dataType:"jsonp",success:function(e){var t=e.data;e.meta.status>=400&&t.message?a.handlerErrorRequest():a.handlerSuccessfulRequest(t)}})},e.fn[s]=function(t){return this.each(function(){e.data(this,"plugin_"+s)||e.data(this,"plugin_"+s,new a(this,t))})}})(jQuery,window); \ No newline at end of file +(function(s,e){function t(e,t){var r=this;r.element=e,r.$container=s(e),r.repo=r.$container.attr("data-repo"),r.options=s.extend({},a,t),r._defaults=a,r._name=o,r.init(),r.displayIcons()}var o="github",a=(e.document,{iconStars:!0,iconForks:!0,iconIssues:!1});t.prototype.init=function(){var s=this,e=s.getCache();null!==e?s.applyTemplate(JSON.parse(e)):s.requestData(s.repo)},t.prototype.displayIcons=function(){$iconStars=s(".repo-stars"),$iconForks=s(".repo-forks"),$iconIssues=s(".repo-issues"),this.options.iconStars?$iconStars.css("display","inline-block"):$iconStars.css("display","none"),this.options.iconForks?$iconForks.css("display","inline-block"):$iconForks.css("display","none"),this.options.iconIssues?$iconIssues.css("display","inline-block"):$iconIssues.css("display","none")},t.prototype.applyTemplate=function(s){var e=this,t=e.parseTemplate(s);t.appendTo(e.$container)},t.prototype.cacheResults=function(s){var t=this;e.sessionStorage&&e.sessionStorage.setItem("gh-repos:"+t.repo,JSON.stringify(s))},t.prototype.getCache=function(){var s=this;return e.sessionStorage?e.sessionStorage.getItem("gh-repos:"+s.repo):!1},t.prototype.handlerErrorRequests=function(s){console.warn(s.message)},t.prototype.handlerSuccessfulRequest=function(s){var e=this;e.applyTemplate(s),e.cacheResults(s)},t.prototype.parsePushedDate=function(s){var e=new Date(s);return e.getDate()+"/"+(e.getMonth()+1)+"/"+e.getFullYear()},t.prototype.parseRepositoryURL=function(s){return s.replace("api.","").replace("repos/","")},t.prototype.parseTemplate=function(e){var t=this,o=t.parsePushedDate(e.pushed_at),a=t.parseRepositoryURL(e.url);return s(s.parseHTML("

"+e.description+" — Read More

Latest commit to master on "+o+"

"))},t.prototype.requestData=function(e){var t=this;s.ajax({url:"https://api.github.com/repos/"+e,dataType:"jsonp",success:function(s){var e=s.data;s.meta.status>=400&&e.message?t.handlerErrorRequest():t.handlerSuccessfulRequest(e)}})},s.fn[o]=function(e){return this.each(function(){s.data(this,"plugin_"+o)||s.data(this,"plugin_"+o,new t(this,e))})}})(jQuery,window); \ No newline at end of file diff --git a/github.jquery.json b/github.jquery.json index 49f59e4..f8c915c 100644 --- a/github.jquery.json +++ b/github.jquery.json @@ -7,7 +7,7 @@ "repositories", "git" ], - "version": "0.2.9", + "version": "0.3.0", "author": { "name": "Zeno Rocha", "url": "https://github.com/zenorocha" From 8e531eb75363bffab03ff8a538848ecc3dfe34ec Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Sat, 11 May 2013 10:13:58 -0300 Subject: [PATCH 040/101] Move contributing and history sections to a separated file --- CONTRIBUTING.md | 9 +++++++++ HISTORY.md | 40 ++++++++++++++++++++++++++++++++++++++++ README.md | 47 ++--------------------------------------------- 3 files changed, 51 insertions(+), 45 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 HISTORY.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..827615f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,9 @@ +# Contributing + +1. Fork it! +2. Create your feature branch: `git checkout -b my-new-feature` +3. Commit your changes: `git commit -am 'Add some feature'` +4. Push to the branch: `git push origin my-new-feature` +5. Submit a pull request :D + +Also remember to follow [jQuery's Code Style](http://contribute.jquery.org/style-guide/js/). diff --git a/HISTORY.md b/HISTORY.md new file mode 100644 index 0000000..caa97d9 --- /dev/null +++ b/HISTORY.md @@ -0,0 +1,40 @@ +# History + +* v0.3.0 May 11, 2013 + * Added options to display or hide icons + * Displayed the number of issues + * Added Grunt Watch task + * Added title on attribute on icons + * Switched from 'watch' icon to 'star' icon + * Used font icons instead of images +* v0.2.9 May 1, 2013 + * Fixed urls +* v0.2.8 April 30, 2013 + * Followed jQuery's core style guide +* v0.2.7 April 29, 2013 + * Code refactoring + * Upgraded Grunt from v0.3 to v0.4 +* v0.2.6 March 14, 2013 + * Updated to responsive design +* v0.2.5 March 01, 2013 + * Added Grunt and integrated it with Travis + * Added lint task + * Added minify task +* v0.2.4 January 17, 2013 + * Renamed from `jquery-github-repos` to `jquery-github` +* v0.2.3 January 17, 2013 + * Added to jQuery Plugins Registry + * Updated to jQuery v1.9 +* v0.2.2 January 15, 2013 + * Fixed "Last commit" date + * Cached repo data using sessionStorage + * Added error message if API exceeds its limits +* v0.2.1 January 13, 2013 + * Added live demo + * Replaced single images for a sprite + * Added minified version +* v0.2 September 11, 2012 + * Code wrapped into a jQuery plugin + * Demonstration page created +* v0.1 September 10, 2012 + * Initial commit diff --git a/README.md b/README.md index 29873ef..71b2f0c 100644 --- a/README.md +++ b/README.md @@ -80,54 +80,11 @@ No problem, [@ricardobeat](https://github.com/ricardobeat) already did one. Chec ## Contributing -1. Fork it! -2. Create your feature branch: `git checkout -b my-new-feature` -3. Commit your changes: `git commit -am 'Add some feature'` -4. Push to the branch: `git push origin my-new-feature` -5. Submit a pull request :D - -Also remember to follow [jQuery's Code Style](http://contribute.jquery.org/style-guide/js/). +Check [CONTRIBUTING.md](https://github.com/zenorocha/jquery-github/blob/master/CONTRIBUTING.md). ## History -* v0.3.0 May 11, 2013 - * Added options to display or hide icons - * Displayed the number of issues - * Added Grunt Watch task - * Added title on attribute on icons - * Switched from 'watch' icon to 'star' icon - * Used font icons instead of images -* v0.2.9 May 1, 2013 - * Fixed urls -* v0.2.8 April 30, 2013 - * Followed jQuery's core style guide -* v0.2.7 April 29, 2013 - * Code refactoring - * Upgraded Grunt from v0.3 to v0.4 -* v0.2.6 March 14, 2013 - * Updated to responsive design -* v0.2.5 March 01, 2013 - * Added Grunt and integrated it with Travis - * Added lint task - * Added minify task -* v0.2.4 January 17, 2013 - * Renamed from `jquery-github-repos` to `jquery-github` -* v0.2.3 January 17, 2013 - * Added to jQuery Plugins Registry - * Updated to jQuery v1.9 -* v0.2.2 January 15, 2013 - * Fixed "Last commit" date - * Cached repo data using sessionStorage - * Added error message if API exceeds its limits -* v0.2.1 January 13, 2013 - * Added live demo - * Replaced single images for a sprite - * Added minified version -* v0.2 September 11, 2012 - * Code wrapped into a jQuery plugin - * Demonstration page created -* v0.1 September 10, 2012 - * Initial commit +Check [HISTORY.md](https://github.com/zenorocha/jquery-github/blob/master/HISTORY.md). ## Credits From 8668393b7b791f856b4c499e5571478162bf6736 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Sat, 11 May 2013 10:31:25 -0300 Subject: [PATCH 041/101] Add Structure section --- README.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 71b2f0c..2d1eb56 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,88 @@ Display the number of forks in a repository. Display the number of issues in a repository. +## Structure + +The basic structure of the project is given in the following way: + +``` +. +|-- assets/ +|-- demo/ +| |-- index.html +|-- dist/ +| |-- jquery.boilerplate.js +| |-- jquery.boilerplate.min.js +|-- src/ +| |-- jquery.boilerplate.coffee +| |-- jquery.boilerplate.js +|-- .editorconfig +|-- .gitignore +|-- .jshintrc +|-- .travis.yml +|-- github.jquery.json +|-- Gruntfile.js +`-- package.json +``` + +#### [assets/](https://github.com/zenorocha/jquery-github/tree/master/assets) + +Contains CSS and Font files to create that lovely Github box. + +#### [demo/](https://github.com/zenorocha/jquery-github/tree/master/demo) + +Contains a simple HTML file to demonstrate the plugin. + +#### [dist/](https://github.com/zenorocha/jquery-github/tree/master/dist) + +This is where the generated files are stored once Grunt runs JSHint and other stuff. + +#### [src/](https://github.com/zenorocha/jquery-github/tree/master/src) + +Contains the files responsible for the plugin. + +#### [.editorconfig](https://github.com/zenorocha/jquery-github/tree/master/.editorconfig) + +This file is for unifying the coding style for different editors and IDEs. + +> Check [editorconfig.org](http://editorconfig.org) if you haven't heard about this project yet. + +#### [.gitignore](https://github.com/zenorocha/jquery-github/tree/master/.gitignore) + +List of files that we don't want Git to track. + +> Check this [Git Ignoring Files Guide](https://help.github.com/articles/ignoring-files) for more details. + +#### [.jshintrc](https://github.com/zenorocha/jquery-github/tree/master/.jshintrc) + +List of rules used by JSHint to detect errors and potential problems in JavaScript. + +> Check [jshint.com](http://jshint.com/about/) if you haven't heard about this project yet. + +#### [.travis.yml](https://github.com/zenorocha/jquery-github/tree/master/.travis.yml) + +Definitions for continous integration using Travis. + +> Check [travis-ci.org](http://about.travis-ci.org/) if you haven't heard about this project yet. + +#### [github.jquery.json](https://github.com/zenorocha/jquery-github/tree/master/github.jquery.json) + +Package manifest file used to publish plugins in jQuery Plugin Registry. + +> Check this [Package Manifest Guide](http://plugins.jquery.com/docs/package-manifest/) for more details. + +#### [Gruntfile.js](https://github.com/zenorocha/jquery-github/tree/master/Gruntfile.js) + +Contains all automated tasks using Grunt. + +> Check [gruntjs.com](http://gruntjs.com) if you haven't heard about this project yet. + +#### [package.json](https://github.com/zenorocha/jquery-github/tree/master/package.json) + +Specify all dependencies loaded via Node.JS. + +> Check [NPM](https://npmjs.org/doc/json.html) for more details. + ## Showcase * [zenorocha.com/projects](http://zenorocha.com/projects/) @@ -80,11 +162,11 @@ No problem, [@ricardobeat](https://github.com/ricardobeat) already did one. Chec ## Contributing -Check [CONTRIBUTING.md](https://github.com/zenorocha/jquery-github/blob/master/CONTRIBUTING.md). +Check [CONTRIBUTING.md](https://github.com/zenorocha/jquery-github/blob/master/CONTRIBUTING.md) ## History -Check [HISTORY.md](https://github.com/zenorocha/jquery-github/blob/master/HISTORY.md). +Check [HISTORY.md](https://github.com/zenorocha/jquery-github/blob/master/HISTORY.md) ## Credits From 5d4cdaad92cd1bf57c504924d05fbd15beb99b0e Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Sat, 11 May 2013 10:37:49 -0300 Subject: [PATCH 042/101] Add instructions to edit only files under src folder --- CONTRIBUTING.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 827615f..5fbd9fb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,8 +2,10 @@ 1. Fork it! 2. Create your feature branch: `git checkout -b my-new-feature` -3. Commit your changes: `git commit -am 'Add some feature'` +3. Commit your changes: `git commit -m 'Add some feature'` 4. Push to the branch: `git push origin my-new-feature` 5. Submit a pull request :D +Don't edit files under `dist` folder, those are generated after running `grunt` command, edit files under `src` folder instead. + Also remember to follow [jQuery's Code Style](http://contribute.jquery.org/style-guide/js/). From 9c848a5e597aeaa5330b58f484d86a1e1bcea0b7 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Mon, 13 May 2013 15:34:35 -0300 Subject: [PATCH 043/101] Fix indentation --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 856714d..a0d5bc4 100644 --- a/package.json +++ b/package.json @@ -6,13 +6,13 @@ "homepage": "https://github.com/zenorocha/jquery-github/", "version": "0.3.0", "devDependencies": { - "grunt": "~0.4.1", - "grunt-cli": "~0.1.7", - "grunt-contrib-jshint": "~0.4.3", - "grunt-contrib-concat": "~0.3.0", - "grunt-contrib-uglify": "~0.2.0", - "grunt-contrib-watch": "~0.4.2" - }, + "grunt": "~0.4.1", + "grunt-cli": "~0.1.7", + "grunt-contrib-jshint": "~0.4.3", + "grunt-contrib-concat": "~0.3.0", + "grunt-contrib-uglify": "~0.2.0", + "grunt-contrib-watch": "~0.4.2" + }, "scripts": { "test": "grunt travis --verbose" } From 711c99806eeb4830e45f7add90910ad61c439d34 Mon Sep 17 00:00:00 2001 From: Igor Lima Date: Thu, 2 May 2013 21:53:27 -0300 Subject: [PATCH 044/101] Refactor to be possible compatibilty with Zepto --- src/jquery.github.js | 49 ++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/src/jquery.github.js b/src/jquery.github.js index 9a0dbf5..ae436ee 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -129,27 +129,26 @@ pushed_at = self.parsePushedDate( repo.pushed_at ), repo_url = self.parseRepositoryURL( repo.url ); - return $( $.parseHTML(" \ -
\ - \ -
\ -

" + repo.description + " — Read More

\ -
\ -
\ -

Latest commit to master on " + pushed_at + "

\ - \ -
\ -
\ - ") ); + return $( + "
" + + "
" + + "

" + + "" + repo.name + "" + + "

" + + "" + + "
" + + "
" + + "

" + repo.description + " — Read More

" + + "
" + + "
" + + "

Latest commit to master on " + pushed_at + "

" + + "" + + "
" + + "
"); }; // Request repositories from Github @@ -173,12 +172,12 @@ }); }; - $.fn[ pluginName ] = function ( options ) { + $.fn[pluginName] = function ( options ) { return this.each(function () { - if ( !$.data( this, "plugin_" + pluginName ) ) { - $.data( this, "plugin_" + pluginName, new Plugin( this, options ) ); + if ( !$( this ).data( "plugin_" + pluginName ) ) { + $( this ).data( "plugin_" + pluginName, new Plugin( this, options ) ); } }); }; -}( jQuery, window ) ); +}( window.jQuery || window.Zepto, window )); From a38527e93c812abbe2dfe82e86383aebeb9aceac Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 21 Jun 2013 10:27:47 -0300 Subject: [PATCH 045/101] Use jquery-github not minified --- demo/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/index.html b/demo/index.html index e63c7fb..7d447f6 100644 --- a/demo/index.html +++ b/demo/index.html @@ -35,7 +35,7 @@

jQuery Github

- + + + + + + + + \ No newline at end of file From 34a86c5e8188a8e433a1279f2b4b5793b15f8be7 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 21 Jun 2013 10:38:16 -0300 Subject: [PATCH 047/101] Add compatibility with Zepto --- README.md | 12 +++++++- demo/index-zepto.html | 56 ++++++++++++++++++------------------ demo/index.html | 2 +- lib/jquery.min.js | 4 +++ lib/zepto.data.js | 67 +++++++++++++++++++++++++++++++++++++++++++ lib/zepto.min.js | 2 ++ 6 files changed, 113 insertions(+), 30 deletions(-) create mode 100644 lib/jquery.min.js create mode 100644 lib/zepto.data.js create mode 100644 lib/zepto.min.js diff --git a/README.md b/README.md index 2d1eb56..3c238bb 100644 --- a/README.md +++ b/README.md @@ -72,9 +72,11 @@ The basic structure of the project is given in the following way: |-- assets/ |-- demo/ | |-- index.html +| |-- index-zepto.html |-- dist/ | |-- jquery.boilerplate.js | |-- jquery.boilerplate.min.js +|-- lib/ |-- src/ | |-- jquery.boilerplate.coffee | |-- jquery.boilerplate.js @@ -99,6 +101,10 @@ Contains a simple HTML file to demonstrate the plugin. This is where the generated files are stored once Grunt runs JSHint and other stuff. +#### [lib/](https://github.com/zenorocha/jquery-github/tree/master/lib) + +Contains libraries like jQuery and Zepto. + #### [src/](https://github.com/zenorocha/jquery-github/tree/master/src) Contains the files responsible for the plugin. @@ -154,12 +160,16 @@ Specify all dependencies loaded via Node.JS. Let me know! Send a [tweet](http://twitter.com/zenorocha) or [pull request](https://github.com/zenorocha/jquery-github/pull/new/master) and I'll add it here :) -## Forks +## Alternatives **Prefer a non-jquery version with pure JavaScript?** No problem, [@ricardobeat](https://github.com/ricardobeat) already did one. Check [his fork!](https://github.com/ricardobeat/github-repos) +**Prefer Zepto instead of jQuery?** + +No problem, [@igorlima](https://github.com/igorlima) already did that. Check [demo/index-zepto.html](https://github.com/zenorocha/jquery-github/tree/master/demo/index-zepto.html) + ## Contributing Check [CONTRIBUTING.md](https://github.com/zenorocha/jquery-github/blob/master/CONTRIBUTING.md) diff --git a/demo/index-zepto.html b/demo/index-zepto.html index 7dbd46b..8e9833c 100644 --- a/demo/index-zepto.html +++ b/demo/index-zepto.html @@ -2,45 +2,45 @@ - - jQuery Github with Zepto + + jQuery Github with Zepto - - + + - - + + - - Fork me on GitHub - + + Fork me on GitHub + -
-

jQuery Github

-

A jQuery plugin to display your favorite Github Repositories.
For more informations, visit our repository.

-
+
+

jQuery Github

+

A jQuery plugin to display your favorite Github Repositories.
For more informations, visit our repository.

+
-
-
-
-
-
-
+
+
+
+
+
+
-

Made with love by Zeno Rocha.

+

Made with love by Zeno Rocha.

- + - - - + + + - + - \ No newline at end of file + diff --git a/demo/index.html b/demo/index.html index 7d447f6..041987c 100644 --- a/demo/index.html +++ b/demo/index.html @@ -34,7 +34,7 @@

jQuery Github

- + - + + + ``` Include plugin's CSS and JS: diff --git a/bower.json b/bower.json index 3ca05f1..4bcfc3d 100644 --- a/bower.json +++ b/bower.json @@ -13,7 +13,7 @@ ], "license": "MIT", "dependencies": { - "zepto": "~1.0.0", - "jquery": "~2.0.3" + "jquery": "^2.1.1", + "zepto": "^1.1.4" } } diff --git a/demo/index.html b/demo/index.html index a7dc9d2..265417e 100644 --- a/demo/index.html +++ b/demo/index.html @@ -34,7 +34,7 @@

jQuery Github

- + diff --git a/github.jquery.json b/github.jquery.json index 35f90ca..e7f7c1e 100644 --- a/github.jquery.json +++ b/github.jquery.json @@ -7,7 +7,7 @@ "repositories", "git" ], - "version": "0.3.3", + "version": "0.3.4", "author": { "name": "Zeno Rocha", "url": "https://github.com/zenorocha" From c20ad941e3b0aa037cb58193d39524c619c17ec0 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Tue, 4 Nov 2014 14:56:10 +0100 Subject: [PATCH 096/101] Release v0.4.0 --- bower.json | 2 +- dist/jquery.github.min.js | 2 +- github.jquery.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bower.json b/bower.json index 4bcfc3d..f804d76 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery-github", - "version": "0.3.4", + "version": "0.4.0", "homepage": "https://github.com/zenorocha/jquery-github", "authors": [ "Zeno Rocha " diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index 5a9707a..3f350b3 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -6,4 +6,4 @@ * Copyright (c) 2014 * MIT License */ -function GithubRepo(a){this.description=a.description,this.forks=a.forks_count,this.name=a.name,this.open_issues=a.open_issues,this.pushed_at=a.pushed_at,this.url=a.url,this.stargazers=a.stargazers_count}function Github(a,b){var c={iconStars:!0,iconForks:!0,iconIssues:!1};this.element=a,this.$container=$(a),this.repo=this.$container.attr("data-repo"),this.options=$.extend({},c,b),this._defaults=c,this.init(),this.displayIcons()}GithubRepo.prototype.toHTML=function(){return this.pushed_at=this._parsePushedDate(this.pushed_at),this.url=this._parseURL(this.url),$("

"+this.description+" — Read More

Latest commit to master on "+this.pushed_at+"

")},GithubRepo.prototype._parsePushedDate=function(a){var b=new Date(a);return b.getDate()+"/"+(b.getMonth()+1)+"/"+b.getFullYear()},GithubRepo.prototype._parseURL=function(a){return a.replace("api.","").replace("repos/","")},Github.prototype.init=function(){var a=this.getCache();return null!==a?(this.applyTemplate(JSON.parse(a)),void 0):(this.requestData(this.repo),void 0)},Github.prototype.displayIcons=function(){var a=this.options,b=$(".repo-stars"),c=$(".repo-forks"),d=$(".repo-issues");b.css("display",a.iconStars?"inline-block":"none"),c.css("display",a.iconForks?"inline-block":"none"),d.css("display",a.iconIssues?"inline-block":"none")},Github.prototype.requestData=function(a){var b=this;$.ajax({url:"https://api.github.com/repos/"+a,dataType:"jsonp",success:function(a){var c=a.data,d=a.meta.status>=400&&c.message;return d?(b.handleErrorRequest(c),void 0):(b.handleSuccessfulRequest(c),void 0)}})},Github.prototype.handleErrorRequest=function(a){console.warn(a.message)},Github.prototype.handleSuccessfulRequest=function(a){this.applyTemplate(a),this.setCache(a)},Github.prototype.setCache=function(a){window.sessionStorage&&window.sessionStorage.setItem("gh-repos:"+this.repo,JSON.stringify(a))},Github.prototype.getCache=function(){return window.sessionStorage?window.sessionStorage.getItem("gh-repos:"+this.repo):!1},Github.prototype.applyTemplate=function(a){var b=new GithubRepo(a),c=b.toHTML();c.appendTo(this.$container)},function(a){a.fn.github=function(b){return this.each(function(){a(this).data("plugin_github")||a(this).data("plugin_github",new Github(this,b))})}}(window.jQuery||window.Zepto,window); \ No newline at end of file +function GithubRepo(a){this.description=a.description,this.forks=a.forks_count,this.name=a.name,this.open_issues=a.open_issues,this.pushed_at=a.pushed_at,this.url=a.url,this.stargazers=a.stargazers_count}function Github(a,b){var c={iconStars:!0,iconForks:!0,iconIssues:!1};this.element=a,this.$container=$(a),this.repo=this.$container.attr("data-repo"),this.options=$.extend({},c,b),this._defaults=c,this.init(),this.displayIcons()}GithubRepo.prototype.toHTML=function(){return this.pushed_at=this._parsePushedDate(this.pushed_at),this.url=this._parseURL(this.url),$("

"+this.description+" — Read More

Latest commit to master on "+this.pushed_at+"

")},GithubRepo.prototype._parsePushedDate=function(a){var b=new Date(a);return b.getDate()+"/"+(b.getMonth()+1)+"/"+b.getFullYear()},GithubRepo.prototype._parseURL=function(a){return a.replace("api.","").replace("repos/","")},Github.prototype.init=function(){var a=this.getCache();return null!==a?void this.applyTemplate(JSON.parse(a)):void this.requestData(this.repo)},Github.prototype.displayIcons=function(){var a=this.options,b=$(".repo-stars"),c=$(".repo-forks"),d=$(".repo-issues");b.css("display",a.iconStars?"inline-block":"none"),c.css("display",a.iconForks?"inline-block":"none"),d.css("display",a.iconIssues?"inline-block":"none")},Github.prototype.requestData=function(a){var b=this;$.ajax({url:"https://api.github.com/repos/"+a,dataType:"jsonp",success:function(a){var c=a.data,d=a.meta.status>=400&&c.message;return d?void b.handleErrorRequest(c):void b.handleSuccessfulRequest(c)}})},Github.prototype.handleErrorRequest=function(a){console.warn(a.message)},Github.prototype.handleSuccessfulRequest=function(a){this.applyTemplate(a),this.setCache(a)},Github.prototype.setCache=function(a){window.sessionStorage&&window.sessionStorage.setItem("gh-repos:"+this.repo,JSON.stringify(a))},Github.prototype.getCache=function(){return window.sessionStorage?window.sessionStorage.getItem("gh-repos:"+this.repo):!1},Github.prototype.applyTemplate=function(a){var b=new GithubRepo(a),c=b.toHTML();c.appendTo(this.$container)},function(a){a.fn.github=function(b){return this.each(function(){a(this).data("plugin_github")||a(this).data("plugin_github",new Github(this,b))})}}(window.jQuery||window.Zepto,window); \ No newline at end of file diff --git a/github.jquery.json b/github.jquery.json index e7f7c1e..4e3a30c 100644 --- a/github.jquery.json +++ b/github.jquery.json @@ -7,7 +7,7 @@ "repositories", "git" ], - "version": "0.3.4", + "version": "0.4.0", "author": { "name": "Zeno Rocha", "url": "https://github.com/zenorocha" From a3b997fc6907dcbffe0cf5ad75c3a2bcef4edb19 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 28 Nov 2014 14:10:20 -0800 Subject: [PATCH 097/101] Update attribute names - "stargazers" > "stargazers_count" & "forks" > "forks_count" --- spec/jquery.github.repo-spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/jquery.github.repo-spec.js b/spec/jquery.github.repo-spec.js index 0169e4e..88464bb 100644 --- a/spec/jquery.github.repo-spec.js +++ b/spec/jquery.github.repo-spec.js @@ -6,10 +6,10 @@ describe("jquery.github.repo", function() { instance = new GithubRepo({ name: "jquery-github", description: "A jQuery plugin to display your Github Repositories", - forks: 33, + forks_count: 33, pushed_at: "2013-07-02T12:08:36Z", url: "https://api.github.com/repos/zenorocha/jquery-github", - stargazers: 131 + stargazers_count: 131 }); }); From 3b135ab8ce96523fe33f07680d8fb06fa501feea Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Fri, 28 Nov 2014 14:11:16 -0800 Subject: [PATCH 098/101] Bump version in dist files --- dist/jquery.github.js | 2 +- dist/jquery.github.min.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dist/jquery.github.js b/dist/jquery.github.js index a3e88a1..27e6de9 100644 --- a/dist/jquery.github.js +++ b/dist/jquery.github.js @@ -1,5 +1,5 @@ /* - * jquery-github - v0.3.4 + * jquery-github - v0.4.0 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github * diff --git a/dist/jquery.github.min.js b/dist/jquery.github.min.js index 3f350b3..4d06fc4 100644 --- a/dist/jquery.github.min.js +++ b/dist/jquery.github.min.js @@ -1,5 +1,5 @@ /* - * jquery-github - v0.3.4 + * jquery-github - v0.4.0 * A jQuery plugin to display your Github Repositories. * https://github.com/zenorocha/jquery-github * From 3c8c8c083a54c4466376369ec47bc497e77dd454 Mon Sep 17 00:00:00 2001 From: Tadeu Zagallo Date: Thu, 8 Jan 2015 01:31:23 -0200 Subject: [PATCH 099/101] Move displayIcons to be called inside applyTemplate --- src/jquery.github.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/jquery.github.js b/src/jquery.github.js index 1fadfa9..197663b 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -67,7 +67,6 @@ function Github( element, options ) { this._defaults = defaults; this.init(); - this.displayIcons(); } // Initializer @@ -151,6 +150,8 @@ Github.prototype.applyTemplate = function ( repo ) { $widget = githubRepo.toHTML(); $widget.appendTo( this.$container ); + + this.displayIcons(); }; // -- Attach plugin to jQuery's prototype -------------------------------------- From 00710d66c0d4b36d09b802684c03663172efc649 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Thu, 10 Mar 2016 11:09:12 -0800 Subject: [PATCH 100/101] Uses parsed URL from API --- src/jquery.github.js | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/jquery.github.js b/src/jquery.github.js index 197663b..97f0871 100644 --- a/src/jquery.github.js +++ b/src/jquery.github.js @@ -6,14 +6,13 @@ function GithubRepo( repo ) { this.name = repo.name; this.open_issues = repo.open_issues; this.pushed_at = repo.pushed_at; - this.url = repo.url; + this.url = repo.html_url; this.stargazers = repo.stargazers_count; } // Parses HTML template GithubRepo.prototype.toHTML = function () { - this.pushed_at = this._parsePushedDate( this.pushed_at ), - this.url = this._parseURL( this.url ); + this.pushed_at = this._parsePushedDate( this.pushed_at ); return $( "
" + @@ -44,11 +43,6 @@ GithubRepo.prototype._parsePushedDate = function ( pushed_at ) { return date.getDate() + "/" + ( date.getMonth() + 1 ) + "/" + date.getFullYear(); }; -// Parses URL to be friendly -GithubRepo.prototype._parseURL = function ( url ) { - return url.replace( "api.", "" ).replace( "repos/", "" ); -}; - // -- Github Plugin ------------------------------------------------------------ function Github( element, options ) { From 98f752cf92ef99ff49df5c574c98b3753db55591 Mon Sep 17 00:00:00 2001 From: Zeno Rocha Date: Thu, 10 Mar 2016 11:13:26 -0800 Subject: [PATCH 101/101] Removes broken test --- spec/jquery.github.repo-spec.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/spec/jquery.github.repo-spec.js b/spec/jquery.github.repo-spec.js index 88464bb..28c4d12 100644 --- a/spec/jquery.github.repo-spec.js +++ b/spec/jquery.github.repo-spec.js @@ -34,11 +34,6 @@ describe("jquery.github.repo", function() { .toEqual("2013-07-02T12:08:36Z"); }); - it("should be repository's api url", function() { - expect(instance.url) - .toEqual("https://api.github.com/repos/zenorocha/jquery-github"); - }); - it("should be repository's number of stargazers", function() { expect(instance.stargazers) .toEqual(131); @@ -52,14 +47,4 @@ describe("jquery.github.repo", function() { }); }); - describe("execute _parseURL()", function() { - it("should parse repository's url attribute", function() { - expect(instance._parseURL(instance.url)) - .toEqual("https://github.com/zenorocha/jquery-github"); - }); - }); - - describe("execute toHTML()", function() { - // TODO - }); });