set up bower and grunt

This commit is contained in:
Kyle Hornberg
2013-11-25 10:26:50 -06:00
parent 0d78b464f4
commit 7bec183753
8 changed files with 146 additions and 7 deletions
+2
View File
@@ -0,0 +1,2 @@
node_modules/
bower_components/
+56
View File
@@ -0,0 +1,56 @@
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
options: {
separator: ';'
},
dist: {
src: ['ics.js'],
dest: '<%= pkg.name %>.js'
}
},
uglify: {
options: {
banner: '/*! <%= pkg.name %> <%= grunt.template.today("mm-dd-yyyy") %> */\n'
},
dist: {
files: {
'ics.min.js': ['ics.js']
}
}
},
qunit: {
files: ['tests/**/*.html']
},
jshint: {
files: ['Gruntfile.js', '*.js', 'tests/tests.js'],
options: {
// options here to override JSHint defaults
globals: {
jQuery: true,
console: true,
module: true,
document: true,
},
laxcomma: true
}
},
watch: {
files: ['<%= jshint.files %>'],
tasks: ['jshint', 'qunit']
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-qunit');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.registerTask('test', ['jshint', 'qunit']);
grunt.registerTask('default', ['jshint', 'qunit', 'uglify']);
};
+10 -4
View File
@@ -7,9 +7,11 @@ Now you can make calendar friendly files client-side. It outputs .ics files, so
How To Use
----------
Simply use the function...
download_ics(filename, subject, description, location, begin, end);
Simply use invoke the object and use the functions...
var cal = ics();
cal.addEvent(subject, description, location, begin, end);
cal.download(filename);
`begin` and `end` need to be formatted in a way that is friendly to `Date()`
@@ -19,7 +21,11 @@ Example
* **[Demo](http://htmlpreview.github.io/?https://github.com/nwcell/ics.js/blob/master/demo/demo.html)**
```
<a href="javascript:download_ics('demo', 'Demo Event', 'This is an awesome demo event', 'Sexy Land, AK', '8/7/2013', '8/9/2013')">Demo</a>
<script>
var cal = ics();
cal.addEvent('Demo Event', 'This is an awesome demo event', 'Nome, AK', '8/7/2013', '8/9/2013');
</script>
<a href="javascript:cal.download()">Demo</a>
```
+29
View File
@@ -0,0 +1,29 @@
{
"name": "ics.js",
"main": "ics.js",
"version": "0.0.0",
"homepage": "https://github.com/khornberg/ics.js"
"contributors": [
"Travis Krause <travis@codeforemen.com>",
"Kyle Hornberg <kyle.hornberg@gmail.com>"
],
"description": "A browser firendly .ics/.vcs file generator written entirely in javascript",
"keywords": [
"ics",
"iCal",
"iCalendar"
],
"license": "MIT",
"private": true,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
],
"dependencies": {
"Blob.js": "eligrey/Blob.js",
"FileSaver": "*"
}
}
+6 -3
View File
@@ -1,6 +1,9 @@
<!DOCTYPE html>
<head>
<script type="text/javascript" async="" src="ics-min.js"></script>
<script type="text/javascript" src="../bower_components/FileSaver/FileSaver.js"></script>
<script type="text/javascript" src="../bower_components/Blob.js/Blob.js"></script>
<script type="text/javascript" src="../ics.min.js"></script>
<script type="text/javascript" src="demo.js"></script>
<style>
html, body {
height: 100%;
@@ -44,7 +47,7 @@
</head>
<body>
<div class="wrap">
<a href="javascript:download_ics('demo', 'Demo Event', 'This is an awesome demo event', 'Sexy Land, AK', '8/7/2013', '8/9/2013')">Demo Event</a>
<a href="javascript:cal.download('christmas')">Download iCal</a>
Look at the console too!
</div>
</body>
</html>
+6
View File
@@ -0,0 +1,6 @@
// Demo
var cal = ics();
cal.addEvent('Christmas', 'Christian holiday celebrating the birth of Jesus Christ', 'Bethlehem', '12/25/2013', '12/25/2013');
cal.addEvent('Christmas', 'Christian holiday celebrating the birth of Jesus Christ', 'Bethlehem', '12/25/2014', '12/25/2014');
console.log('Events\n' + cal.events());
console.log('Calendar\n' + cal.calendar());
Vendored
+2
View File
@@ -0,0 +1,2 @@
/*! ics.js 11-25-2013 */
var ics=function(){"use strict";if(navigator.userAgent.indexOf("MSIE")>-1&&-1==navigator.userAgent.indexOf("MSIE 10"))return console.log("Unsupported Browser"),void 0;var a=-1!==navigator.appVersion.indexOf("Win")?"\r\n":"\n",b=[],c=["BEGIN:VCALENDAR","VERSION:2.0"].join(a),d=a+"END:VCALENDAR";return{events:function(){return b},calendar:function(){return c+a+b.join(a)+d},addEvent:function(c,d,e,f,g){var h=new Date(f),i=new Date(g),j=("0000"+h.getFullYear().toString()).slice(-4),k=("00"+h.getMonth().toString()).slice(-2),l=("00"+h.getDate().toString()).slice(-2),m=j+(Number(k)+1)+l,n=("0000"+i.getFullYear().toString()).slice(-4),o=("00"+i.getMonth().toString()).slice(-2),p=("00"+i.getDate().toString()).slice(-2),q=n+(Number(o)+1)+p,r=["BEGIN:VEVENT","CLASS:PUBLIC","DESCRIPTION:"+d,"DTSTART;VALUE=DATE:"+m,"DTEND;VALUE=DATE:"+q,"LOCATION:"+e,"SUMMARY;LANGUAGE=en-us:"+c,"TRANSP:TRANSPARENT","END:VEVENT"].join(a);b.push(r)},download:function(e,f){f="undefined"!=typeof f?f:".ics",e="undefined"!=typeof e?e:"calendar";var g,h=c+a+b.join(a)+d;if(-1===navigator.userAgent.indexOf("MSIE 10"))g=new Blob([h]);else{var i=new BlobBuilder;i.append(h),g=i.getBlob("text/x-vCalendar;charset="+document.characterSet)}saveAs(g,e+f)}}};
+35
View File
@@ -0,0 +1,35 @@
{
"name": "ics.js",
"version": "0.0.0",
"description": "A browser firendly .ics/.vcs file generator written entirely in javascript",
"main": "icsjs",
"dependencies": {
"grunt": "~0.4.2",
"grunt-contrib-concat": "~0.3.0",
"grunt-contrib-jshint": "~0.7.2",
"grunt-contrib-qunit": "~0.3.0",
"grunt-contrib-uglify": "~0.2.7",
"grunt-mocha": "~0.4.6"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/khornberg/ics.js.git"
},
"keywords": [
"ics",
"iCal",
"iCalendar"
],
"contributors": [
"Travis Krause <travis@codeforemen.com>",
"Kyle Hornberg <kyle.hornberg@gmail.com>"
],
"license": "MIT",
"bugs": {
"url": "https://github.com/khornberg/ics.js/issues"
}
}