From 3216cadac9084cd0f7ee892550153ff4d10fc320 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Mon, 6 Jan 2014 17:32:22 -0300 Subject: [PATCH 01/10] added .nodemonignore to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index bb726e29..e322bd9f 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ results npm-debug.log node_modules +.nodemonignore .DS_Store public/lib/* From fab9d62df6e8add327946ad461ea5f787d3aa319 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Mon, 6 Jan 2014 17:32:58 -0300 Subject: [PATCH 02/10] added .editorconfig --- .editorconfig | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..c2cdfb8a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# Change these settings to your own preference +indent_style = space +indent_size = 2 + +# We recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false From f73586d49fc3f3744ce97f5ee0f95d5175b9f664 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Mon, 6 Jan 2014 17:33:44 -0300 Subject: [PATCH 03/10] Added Grunt and jsint --- .jshintrc | 40 +++++++++++++++++++++++++ Gruntfile.js | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100644 .jshintrc create mode 100644 Gruntfile.js diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 00000000..66eeef67 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,40 @@ +{ + "node": true, // Enable globals available when code is running inside of the NodeJS runtime environment. + "browser": true, // Standard browser globals e.g. `window`, `document`. + "esnext": true, // Allow ES.next specific features such as `const` and `let`. + "bitwise": false, // Prohibit bitwise operators (&, |, ^, etc.). + "camelcase": false, // Permit only camelcase for `var` and `object indexes`. + "curly": false, // Require {} for every new block or scope. + "eqeqeq": true, // Require triple equals i.e. `===`. + "immed": true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` + "latedef": true, // Prohibit variable use before definition. + "newcap": true, // Require capitalization of all constructor functions e.g. `new F()`. + "noarg": true, // Prohibit use of `arguments.caller` and `arguments.callee`. + "quotmark": "single", // Define quotes to string values. + "regexp": true, // Prohibit `.` and `[^...]` in regular expressions. + "undef": true, // Require all non-global variables be declared before they are used. + "unused": true, // Warn unused variables. + "strict": true, // Require `use strict` pragma in every file. + "trailing": true, // Prohibit trailing whitespaces. + "smarttabs": false, // Suppresses warnings about mixed tabs and spaces + "globals": { // Globals variables. + "angular": true + }, + "predef": [ // Extra globals. + "define", + "require", + "exports", + "module", + "describe", + "before", + "beforeEach", + "after", + "afterEach", + "it", + "inject", + "expect" + ], + "indent": 4, // Specify indentation spacing + "devel": true, // Allow development statements e.g. `console.log();`. + "noempty": true // Prohibit use of empty blocks. +} \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js new file mode 100644 index 00000000..9a93a609 --- /dev/null +++ b/Gruntfile.js @@ -0,0 +1,83 @@ +'use strict'; + +module.exports = function(grunt) { + // Project Configuration + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + watch: { + jade: { + files: ['app/views/**'], + options: { + livereload: true, + }, + }, + js: { + files: ['Gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**'], + tasks: ['jshint'], + options: { + livereload: true, + }, + }, + html: { + files: ['public/views/**'], + options: { + livereload: true, + }, + }, + css: { + files: ['public/css/**'], + options: { + livereload: true + } + } + }, + jshint: { + all: { + src: ['Gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**'], + options: { + jshintrc: true + } + } + }, + nodemon: { + dev: { + options: { + file: 'server.js', + args: [], + ignoredFiles: ['public/**'], + watchedExtensions: ['js'], + nodeArgs: ['--debug'], + delayTime: 1, + env: { + PORT: 3000 + }, + cwd: __dirname + } + } + }, + concurrent: { + tasks: ['nodemon', 'watch'], + options: { + logConcurrentOutput: true + } + }, + env: { + test: { + NODE_ENV: 'test' + } + } + }); + + //Load NPM tasks + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-nodemon'); + grunt.loadNpmTasks('grunt-concurrent'); + grunt.loadNpmTasks('grunt-env'); + + //Making grunt default to force in order not to break the project. + grunt.option('force', true); + + //Default task(s). + grunt.registerTask('default', ['jshint', 'concurrent']); +}; From cbc7a6773a6118a004abbb2d8e37b46f1191e59c Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Mon, 6 Jan 2014 17:34:17 -0300 Subject: [PATCH 04/10] package.json updated --- package.json | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index be95e6ec..b17b04a2 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,12 @@ "email": "ryan@bitpay.com" }, "repository": "git://github.com/bitpay/mystery.git", - "contributors": [{ - "name": "Matias Alejo Garcia", - "email": "ematiu@gmail.com" - }], + "contributors": [ + { + "name": "Matias Alejo Garcia", + "email": "ematiu@gmail.com" + } + ], "bugs": { "url": "https://github.com/bitpay/mystery/issues" }, @@ -29,6 +31,7 @@ "node": "*" }, "scripts": { + "start": "node node_modules/grunt-cli/bin/grunt", "postinstall": "node node_modules/bower/bin/bower install" }, "dependencies": { @@ -37,6 +40,19 @@ "mongoose": "~3.8.3", "lodash": "~2.4.1", "bower": "~1.2.8", - "bitcore": "*" + "bitcore": "*", + "grunt": "~0.4.2", + "grunt-cli": "~0.1.11", + "grunt-env": "~0.4.1", + "grunt-contrib-jshint": "~0.8.0", + "grunt-contrib-watch": "~0.5.3", + "grunt-concurrent": "~0.4.2", + "grunt-nodemon": "~0.1.2" + }, + "devDependencies": { + "grunt-contrib-watch": "~0.5.3", + "grunt-contrib-jshint": "~0.8.0", + "grunt-nodemon": "~0.1.2", + "grunt-concurrent": "~0.4.2" } } From cf1deca94ff8ae5f2165662fdb717e05cd9df404 Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Mon, 6 Jan 2014 17:34:25 -0300 Subject: [PATCH 05/10] angular js supported! --- app/views/includes/foot.jade | 29 ++++++++++++++++++++-- app/views/includes/navbar.jade | 18 +------------- app/views/index.jade | 43 +++++++++++++++++---------------- app/views/layouts/default.jade | 3 +-- bower.json | 9 ++++++- public/js/app.js | 5 ++++ public/js/config.js | 21 ++++++++++++++++ public/js/controllers/header.js | 15 ++++++++++++ public/js/controllers/index.js | 5 ++++ public/js/directives.js | 1 + public/js/filters.js | 1 + public/js/init.js | 9 +++++++ public/js/services/global.js | 14 +++++++++++ public/views/header.html | 18 ++++++++++++++ public/views/index.html | 5 ++++ 15 files changed, 153 insertions(+), 43 deletions(-) create mode 100755 public/js/app.js create mode 100755 public/js/config.js create mode 100755 public/js/controllers/header.js create mode 100755 public/js/controllers/index.js create mode 100755 public/js/directives.js create mode 100755 public/js/filters.js create mode 100755 public/js/init.js create mode 100755 public/js/services/global.js create mode 100755 public/views/header.html create mode 100644 public/views/index.html diff --git a/app/views/includes/foot.jade b/app/views/includes/foot.jade index b2a61b6e..f7cc3e62 100755 --- a/app/views/includes/foot.jade +++ b/app/views/includes/foot.jade @@ -2,5 +2,30 @@ .container p.text-muted Place sticky footer content here. -script(type='text/javascript', src='/lib/jquery/jquery.min.js') -script(type='text/javascript', src='/lib/bootstrap/dist/js/bootstrap.min.js') +//script(type='text/javascript', src='/lib/jquery/jquery.min.js') +//script(type='text/javascript', src='/lib/bootstrap/dist/js/bootstrap.min.js') + +//AngularJS +script(type='text/javascript', src='/lib/angular/angular.js') +script(type='text/javascript', src='/lib/angular-cookies/angular-cookies.js') +script(type='text/javascript', src='/lib/angular-resource/angular-resource.js') +script(type='text/javascript', src='/lib/angular-route/angular-route.js') + +//Angular UI +script(type='text/javascript', src='/lib/angular-bootstrap/ui-bootstrap.js') +script(type='text/javascript', src='/lib/angular-bootstrap/ui-bootstrap-tpls.js') +script(type='text/javascript', src='/lib/angular-ui-utils/ui-utils.js') + +//Application Init +script(type='text/javascript', src='/js/app.js') +script(type='text/javascript', src='/js/config.js') +script(type='text/javascript', src='/js/directives.js') +script(type='text/javascript', src='/js/filters.js') + +//Application Services +script(type='text/javascript', src='/js/services/global.js') + +//Application Controllers +script(type='text/javascript', src='/js/controllers/index.js') +script(type='text/javascript', src='/js/controllers/header.js') +script(type='text/javascript', src='/js/init.js') diff --git a/app/views/includes/navbar.jade b/app/views/includes/navbar.jade index eabfbb97..a1b2b1c8 100644 --- a/app/views/includes/navbar.jade +++ b/app/views/includes/navbar.jade @@ -1,17 +1 @@ -.navbar.navbar-default.navbar-fixed-top(role='navigation') - .container - .navbar-header - button.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse') - span.sr-only Toggle navigation - span.icon-bar - span.icon-bar - span.icon-bar - a.navbar-brand(href='#') Mystery - .collapse.navbar-collapse - ul.nav.navbar-nav - li.active - a(href='#') Home - li - a(href='#about') About - li - a(href='#contact') Contact +.navbar.navbar-default.navbar-fixed-top(data-ng-include="'views/header.html'", role='navigation') diff --git a/app/views/index.jade b/app/views/index.jade index cd0eb696..7f337180 100755 --- a/app/views/index.jade +++ b/app/views/index.jade @@ -1,24 +1,25 @@ extends layouts/default block content - .page-header - h1 Hello BitPay! - p ˈmɪst(ə)ri/' - | noun - audio(src="https://ssl.gstatic.com/dictionary/static/sounds/de/0/mystery.mp3",preload="auto",data-dobid="aud",id="aud") - button(onclick="document.getElementById('aud').play()") Play - - ol - li - strong something that is difficult or impossible to understand or explain. - p "the mysteries of outer space" - | synonyms: puzzle, enigma, conundrum, riddle, secret, unsolved problem, problem, question, question mark, closed book; secrecy or obscurity. - p "much of her past is shrouded in mystery" - | synonyms: secrecy, darkness, obscurity, ambiguity, ambiguousness, uncertainty, impenetrability, vagueness, nebulousness; More - li - strong a person or thing whose identity or nature is puzzling or unknown. - p "‘He's a bit of a mystery,’ said Nina" - li - strong a novel, play, or film dealing with a puzzling crime, especially a murder. - p "the 1920s murder mystery, The Ghost Train" - | synonyms: thriller, detective story/novel, murder story; More + section.container(data-ng-view) + + section.container + p ˈmɪst(ə)ri/' + | noun + audio(src="https://ssl.gstatic.com/dictionary/static/sounds/de/0/mystery.mp3",preload="auto",data-dobid="aud",id="aud") + button(onclick="document.getElementById('aud').play()") Play + + ol + li + strong something that is difficult or impossible to understand or explain. + p "the mysteries of outer space" + | synonyms: puzzle, enigma, conundrum, riddle, secret, unsolved problem, problem, question, question mark, closed book; secrecy or obscurity. + p "much of her past is shrouded in mystery" + | synonyms: secrecy, darkness, obscurity, ambiguity, ambiguousness, uncertainty, impenetrability, vagueness, nebulousness; More + li + strong a person or thing whose identity or nature is puzzling or unknown. + p "‘He's a bit of a mystery,’ said Nina" + li + strong a novel, play, or film dealing with a puzzling crime, especially a murder. + p "the 1920s murder mystery, The Ghost Train" + | synonyms: thriller, detective story/novel, murder story; More diff --git a/app/views/layouts/default.jade b/app/views/layouts/default.jade index 186b81c6..64e2713b 100755 --- a/app/views/layouts/default.jade +++ b/app/views/layouts/default.jade @@ -4,6 +4,5 @@ html(lang='en', xmlns='http://www.w3.org/1999/xhtml') body #wrap include ../includes/navbar - section.container - block content + block content include ../includes/foot diff --git a/bower.json b/bower.json index 62688af2..46be4c59 100644 --- a/bower.json +++ b/bower.json @@ -2,6 +2,13 @@ "name": "Mystery", "version": "0.0.1", "dependencies": { - "bootstrap": "3.0.3" + "angular": "latest", + "angular-resource": "latest", + "angular-cookies": "latest", + "angular-mocks": "latest", + "angular-route": "latest", + "bootstrap": "3.0.3", + "angular-bootstrap": "0.9.0", + "angular-ui-utils": "0.1.0" } } \ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js new file mode 100755 index 00000000..77b64cba --- /dev/null +++ b/public/js/app.js @@ -0,0 +1,5 @@ +'use strict'; + +angular.module('mystery', ['ngCookies', 'ngResource', 'ngRoute', 'ui.bootstrap', 'ui.route', 'mystery.system']); + +angular.module('mystery.system', []); \ No newline at end of file diff --git a/public/js/config.js b/public/js/config.js new file mode 100755 index 00000000..b86700b1 --- /dev/null +++ b/public/js/config.js @@ -0,0 +1,21 @@ +'use strict'; + +//Setting up route +angular.module('mystery').config(['$routeProvider', + function($routeProvider) { + $routeProvider. + when('/', { + templateUrl: 'views/index.html' + }). + otherwise({ + redirectTo: '/' + }); + } +]); + +//Setting HTML5 Location Mode +angular.module('mystery').config(['$locationProvider', + function($locationProvider) { + $locationProvider.hashPrefix('!'); + } +]); \ No newline at end of file diff --git a/public/js/controllers/header.js b/public/js/controllers/header.js new file mode 100755 index 00000000..512cb001 --- /dev/null +++ b/public/js/controllers/header.js @@ -0,0 +1,15 @@ +'use strict'; + +angular.module('mystery.system').controller('HeaderController', ['$scope', 'Global', function ($scope, Global) { + $scope.global = Global; + + $scope.menu = [{ + 'title': 'Articles', + 'link': 'articles' + }, { + 'title': 'Create New Article', + 'link': 'articles/create' + }]; + + $scope.isCollapsed = false; +}]); \ No newline at end of file diff --git a/public/js/controllers/index.js b/public/js/controllers/index.js new file mode 100755 index 00000000..503829cc --- /dev/null +++ b/public/js/controllers/index.js @@ -0,0 +1,5 @@ +'use strict'; + +angular.module('mystery.system').controller('IndexController', ['$scope', 'Global', function ($scope, Global) { + $scope.global = Global; +}]); \ No newline at end of file diff --git a/public/js/directives.js b/public/js/directives.js new file mode 100755 index 00000000..a726efc4 --- /dev/null +++ b/public/js/directives.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/public/js/filters.js b/public/js/filters.js new file mode 100755 index 00000000..a726efc4 --- /dev/null +++ b/public/js/filters.js @@ -0,0 +1 @@ +'use strict'; \ No newline at end of file diff --git a/public/js/init.js b/public/js/init.js new file mode 100755 index 00000000..d7c94286 --- /dev/null +++ b/public/js/init.js @@ -0,0 +1,9 @@ +'use strict'; + +angular.element(document).ready(function() { + //Fixing facebook bug with redirect + if (window.location.hash === '#_=_') window.location.hash = '#!'; + + //Then init the app + angular.bootstrap(document, ['mystery']); +}); \ No newline at end of file diff --git a/public/js/services/global.js b/public/js/services/global.js new file mode 100755 index 00000000..8dc532e5 --- /dev/null +++ b/public/js/services/global.js @@ -0,0 +1,14 @@ +'use strict'; + +//Global service for global variables +angular.module('mystery.system').factory('Global', [ + function() { + var _this = this; + _this._data = { + user: window.user, + authenticated: !! window.user + }; + + return _this._data; + } +]); diff --git a/public/views/header.html b/public/views/header.html new file mode 100755 index 00000000..70189e79 --- /dev/null +++ b/public/views/header.html @@ -0,0 +1,18 @@ +
+ + +
diff --git a/public/views/index.html b/public/views/index.html new file mode 100644 index 00000000..b92fe022 --- /dev/null +++ b/public/views/index.html @@ -0,0 +1,5 @@ +
+ +
From 86e11424d8735d19ccb228cf86c6c3983c2450d7 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Mon, 6 Jan 2014 17:54:32 -0300 Subject: [PATCH 06/10] removed spaces --- .jshintrc | 4 +- Gruntfile.js | 144 ++++++++++++++++---------------- public/js/config.js | 26 +++--- public/js/controllers/header.js | 22 ++--- public/js/init.js | 10 +-- public/js/services/global.js | 16 ++-- 6 files changed, 111 insertions(+), 111 deletions(-) diff --git a/.jshintrc b/.jshintrc index 66eeef67..bd532c2d 100644 --- a/.jshintrc +++ b/.jshintrc @@ -34,7 +34,7 @@ "inject", "expect" ], - "indent": 4, // Specify indentation spacing + "indent": 2, // Specify indentation spacing "devel": true, // Allow development statements e.g. `console.log();`. "noempty": true // Prohibit use of empty blocks. -} \ No newline at end of file +} diff --git a/Gruntfile.js b/Gruntfile.js index 9a93a609..6d397b7c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,83 +1,83 @@ 'use strict'; module.exports = function(grunt) { - // Project Configuration - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - watch: { - jade: { - files: ['app/views/**'], - options: { - livereload: true, - }, - }, - js: { - files: ['Gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**'], - tasks: ['jshint'], - options: { - livereload: true, - }, - }, - html: { - files: ['public/views/**'], - options: { - livereload: true, - }, - }, - css: { - files: ['public/css/**'], - options: { - livereload: true - } - } + // Project Configuration + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + watch: { + jade: { + files: ['app/views/**'], + options: { + livereload: true, }, - jshint: { - all: { - src: ['Gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**'], - options: { - jshintrc: true - } - } + }, + js: { + files: ['Gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**'], + tasks: ['jshint'], + options: { + livereload: true, }, - nodemon: { - dev: { - options: { - file: 'server.js', - args: [], - ignoredFiles: ['public/**'], - watchedExtensions: ['js'], - nodeArgs: ['--debug'], - delayTime: 1, - env: { - PORT: 3000 - }, - cwd: __dirname - } - } + }, + html: { + files: ['public/views/**'], + options: { + livereload: true, }, - concurrent: { - tasks: ['nodemon', 'watch'], - options: { - logConcurrentOutput: true - } - }, - env: { - test: { - NODE_ENV: 'test' - } + }, + css: { + files: ['public/css/**'], + options: { + livereload: true } - }); + } + }, + jshint: { + all: { + src: ['Gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**'], + options: { + jshintrc: true + } + } + }, + nodemon: { + dev: { + options: { + file: 'server.js', + args: [], + ignoredFiles: ['public/**'], + watchedExtensions: ['js'], + nodeArgs: ['--debug'], + delayTime: 1, + env: { + PORT: 3000 + }, + cwd: __dirname + } + } + }, + concurrent: { + tasks: ['nodemon', 'watch'], + options: { + logConcurrentOutput: true + } + }, + env: { + test: { + NODE_ENV: 'test' + } + } + }); - //Load NPM tasks - grunt.loadNpmTasks('grunt-contrib-watch'); - grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-nodemon'); - grunt.loadNpmTasks('grunt-concurrent'); - grunt.loadNpmTasks('grunt-env'); + //Load NPM tasks + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-nodemon'); + grunt.loadNpmTasks('grunt-concurrent'); + grunt.loadNpmTasks('grunt-env'); - //Making grunt default to force in order not to break the project. - grunt.option('force', true); + //Making grunt default to force in order not to break the project. + grunt.option('force', true); - //Default task(s). - grunt.registerTask('default', ['jshint', 'concurrent']); + //Default task(s). + grunt.registerTask('default', ['jshint', 'concurrent']); }; diff --git a/public/js/config.js b/public/js/config.js index b86700b1..fe680064 100755 --- a/public/js/config.js +++ b/public/js/config.js @@ -2,20 +2,20 @@ //Setting up route angular.module('mystery').config(['$routeProvider', - function($routeProvider) { - $routeProvider. - when('/', { - templateUrl: 'views/index.html' - }). - otherwise({ - redirectTo: '/' - }); - } + function($routeProvider) { + $routeProvider. + when('/', { + templateUrl: 'views/index.html' + }). + otherwise({ + redirectTo: '/' + }); + } ]); //Setting HTML5 Location Mode angular.module('mystery').config(['$locationProvider', - function($locationProvider) { - $locationProvider.hashPrefix('!'); - } -]); \ No newline at end of file + function($locationProvider) { + $locationProvider.hashPrefix('!'); + } +]); diff --git a/public/js/controllers/header.js b/public/js/controllers/header.js index 512cb001..039a5ac2 100755 --- a/public/js/controllers/header.js +++ b/public/js/controllers/header.js @@ -1,15 +1,15 @@ 'use strict'; angular.module('mystery.system').controller('HeaderController', ['$scope', 'Global', function ($scope, Global) { - $scope.global = Global; + $scope.global = Global; - $scope.menu = [{ - 'title': 'Articles', - 'link': 'articles' - }, { - 'title': 'Create New Article', - 'link': 'articles/create' - }]; - - $scope.isCollapsed = false; -}]); \ No newline at end of file + $scope.menu = [{ + 'title': 'Articles', + 'link': 'articles' + }, { + 'title': 'Create New Article', + 'link': 'articles/create' + }]; + + $scope.isCollapsed = false; +}]); diff --git a/public/js/init.js b/public/js/init.js index d7c94286..b226e6fd 100755 --- a/public/js/init.js +++ b/public/js/init.js @@ -1,9 +1,9 @@ 'use strict'; angular.element(document).ready(function() { - //Fixing facebook bug with redirect - if (window.location.hash === '#_=_') window.location.hash = '#!'; + //Fixing facebook bug with redirect + if (window.location.hash === '#_=_') window.location.hash = '#!'; - //Then init the app - angular.bootstrap(document, ['mystery']); -}); \ No newline at end of file + //Then init the app + angular.bootstrap(document, ['mystery']); +}); diff --git a/public/js/services/global.js b/public/js/services/global.js index 8dc532e5..79006526 100755 --- a/public/js/services/global.js +++ b/public/js/services/global.js @@ -2,13 +2,13 @@ //Global service for global variables angular.module('mystery.system').factory('Global', [ - function() { - var _this = this; - _this._data = { - user: window.user, - authenticated: !! window.user - }; + function() { + var _this = this; + _this._data = { + user: window.user, + authenticated: !! window.user + }; - return _this._data; - } + return _this._data; + } ]); From be497058fc87598b66e2aabd4bccea4adedb4aae Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Mon, 6 Jan 2014 18:01:23 -0300 Subject: [PATCH 07/10] little fix in tab spaces --- public/js/controllers/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/js/controllers/index.js b/public/js/controllers/index.js index 503829cc..4cb2b6fd 100755 --- a/public/js/controllers/index.js +++ b/public/js/controllers/index.js @@ -1,5 +1,5 @@ 'use strict'; angular.module('mystery.system').controller('IndexController', ['$scope', 'Global', function ($scope, Global) { - $scope.global = Global; + $scope.global = Global; }]); \ No newline at end of file From 075f86ba43fd8fbdf4c0ccba291b674f8d9158a4 Mon Sep 17 00:00:00 2001 From: Mario Colque Date: Mon, 6 Jan 2014 18:16:28 -0300 Subject: [PATCH 08/10] added installation steps --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 69bc9c9f..35ff00c2 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,13 @@ mystery ======= +## Install + +- sudo npm -g i grunt-cli +- npm i +- grunt + + ## bitcoind configuration There is a bitcoind configuration sample at: From ade4053e010bbe6cd2395422cc6ffd8f61d9c55d Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Mon, 6 Jan 2014 18:38:30 -0300 Subject: [PATCH 09/10] mocha support! --- Gruntfile.js | 11 +++++++++++ package.json | 12 +++++++----- test/test.js | 9 +++++++++ 3 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 test/test.js diff --git a/Gruntfile.js b/Gruntfile.js index 6d397b7c..743d9845 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -61,6 +61,13 @@ module.exports = function(grunt) { logConcurrentOutput: true } }, + mochaTest: { + options: { + reporter: 'spec', + require: 'server.js' + }, + src: ['test/*.js'] + }, env: { test: { NODE_ENV: 'test' @@ -71,6 +78,7 @@ module.exports = function(grunt) { //Load NPM tasks grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-mocha-test'); grunt.loadNpmTasks('grunt-nodemon'); grunt.loadNpmTasks('grunt-concurrent'); grunt.loadNpmTasks('grunt-env'); @@ -80,4 +88,7 @@ module.exports = function(grunt) { //Default task(s). grunt.registerTask('default', ['jshint', 'concurrent']); + + //Test task. + grunt.registerTask('test', ['env:test', 'mochaTest']); }; diff --git a/package.json b/package.json index b17b04a2..b4076136 100644 --- a/package.json +++ b/package.json @@ -47,12 +47,14 @@ "grunt-contrib-jshint": "~0.8.0", "grunt-contrib-watch": "~0.5.3", "grunt-concurrent": "~0.4.2", - "grunt-nodemon": "~0.1.2" + "grunt-nodemon": "~0.1.2", + "grunt-mocha-test": "~0.8.1" }, "devDependencies": { - "grunt-contrib-watch": "~0.5.3", - "grunt-contrib-jshint": "~0.8.0", - "grunt-nodemon": "~0.1.2", - "grunt-concurrent": "~0.4.2" + "grunt-contrib-watch": "latest", + "grunt-contrib-jshint": "latest", + "grunt-nodemon": "latest", + "grunt-concurrent": "latest", + "grunt-mocha-test": "latest" } } diff --git a/test/test.js b/test/test.js new file mode 100644 index 00000000..bab25b64 --- /dev/null +++ b/test/test.js @@ -0,0 +1,9 @@ +var assert = require("assert") +describe('Array', function(){ + describe('#indexOf()', function(){ + it('should return -1 when the value is not present', function(){ + assert.equal(-1, [1,2,3].indexOf(5)); + assert.equal(-1, [1,2,3].indexOf(0)); + }) + }) +}) From 6c4e476555d853ce1ea5b652f55685a576257573 Mon Sep 17 00:00:00 2001 From: Gustavo Cortez Date: Mon, 6 Jan 2014 19:36:47 -0300 Subject: [PATCH 10/10] mocha testing --- package.json | 6 ++++-- test/mocha.opts | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 test/mocha.opts diff --git a/package.json b/package.json index b4076136..110c3e0f 100644 --- a/package.json +++ b/package.json @@ -48,13 +48,15 @@ "grunt-contrib-watch": "~0.5.3", "grunt-concurrent": "~0.4.2", "grunt-nodemon": "~0.1.2", - "grunt-mocha-test": "~0.8.1" + "grunt-mocha-test": "~0.8.1", + "should": "~2.1.1" }, "devDependencies": { "grunt-contrib-watch": "latest", "grunt-contrib-jshint": "latest", "grunt-nodemon": "latest", "grunt-concurrent": "latest", - "grunt-mocha-test": "latest" + "grunt-mocha-test": "latest", + "should": "latest" } } diff --git a/test/mocha.opts b/test/mocha.opts new file mode 100644 index 00000000..74590dc4 --- /dev/null +++ b/test/mocha.opts @@ -0,0 +1,4 @@ +--require should +-R spec +--ui bdd +