├── templates
├── styles
│ ├── _variables.scss
│ ├── base
│ │ ├── _fonts.scss
│ │ ├── _lists.scss
│ │ ├── _typography.scss
│ │ ├── _buttons.scss
│ │ ├── _tables.scss
│ │ ├── _forms.scss
│ │ ├── _page.scss
│ │ └── _icons.scss
│ ├── _functions
│ │ └── _some-function.scss
│ ├── _mixins
│ │ └── _some-mixin.scss
│ ├── _placeholders
│ │ └── _some-placeholder.scss
│ └── main.scss
├── app
│ ├── _component.scss
│ ├── _directive.scss
│ ├── _controller.scss
│ ├── component.html
│ ├── directive.html
│ ├── controller.html
│ ├── _app.spec.js
│ ├── routes.spec.js
│ ├── _app.js
│ ├── factory.spec.js
│ ├── service.spec.js
│ ├── decorator.spec.js
│ ├── decorator.js
│ ├── filter.js
│ ├── component.spec.js
│ ├── directive.spec.js
│ ├── factory.js
│ ├── service.js
│ ├── filter.spec.js
│ ├── controller.js
│ ├── controller.spec.js
│ ├── provider.spec.js
│ ├── routes.js
│ ├── component.js
│ ├── directive.js
│ └── provider.js
├── root
│ ├── _bowerrc
│ ├── _gulpfile.js
│ ├── _travis.yml
│ ├── _gitignore
│ ├── _editorconfig
│ ├── _config.xml
│ ├── _karma-e2e.conf.js
│ ├── _gitattributes
│ ├── _jshintrc
│ ├── _bower.json
│ ├── _package.json
│ ├── _karma.conf.js
│ └── README.md
├── e2e-tests
│ ├── example.e2e.js
│ └── po
│ │ └── home.po.js
├── tasks
│ ├── deploy.js
│ ├── e2e.js
│ ├── config.js
│ ├── build.js
│ ├── cordova.js
│ └── dev.js
└── index.html
├── assets
├── gulp.png
├── angular.png
├── bower.png
├── cordova.png
├── libsass.png
└── yeoman.png
├── .gitignore
├── s
└── index.js
├── filter
└── index.js
├── p
└── index.js
├── f
└── index.js
├── decorator
└── index.js
├── .travis.yml
├── .jshintrc
├── LICENSE
├── package.json
├── helper.js
├── default-settings.js
├── Makefile
├── c
└── index.js
├── cp
└── index.js
├── d
└── index.js
├── test
├── custom-templates-from-file.spec.js
├── helper.spec.js
├── provider.spec.js
├── decorator.spec.js
├── filter.spec.js
├── custom-templates-in-yo-rc.spec.js
├── service.spec.js
├── factory.spec.js
├── controller.spec.js
├── app.spec.js
├── directive.spec.js
├── component.spec.js
└── route.spec.js
├── test-app
├── styles.spec.js
└── injections.spec.js
├── .jscsrc
├── r
└── index.js
├── app
└── index.js
└── sub-generator-base.js
/templates/styles/_variables.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/templates/styles/base/_fonts.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/templates/styles/_functions/_some-function.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/templates/app/_component.scss:
--------------------------------------------------------------------------------
1 | <%=sluggedName %> {
2 |
3 | }
--------------------------------------------------------------------------------
/templates/app/_directive.scss:
--------------------------------------------------------------------------------
1 | <%=sluggedName %> {
2 |
3 | }
--------------------------------------------------------------------------------
/templates/app/_controller.scss:
--------------------------------------------------------------------------------
1 | .page-<%=sluggedName %> {
2 |
3 | }
--------------------------------------------------------------------------------
/templates/styles/_mixins/_some-mixin.scss:
--------------------------------------------------------------------------------
1 | @mixin some-mixin() {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/templates/app/component.html:
--------------------------------------------------------------------------------
1 | This is the <%= cameledName %> component.
2 |
3 |
--------------------------------------------------------------------------------
/templates/app/directive.html:
--------------------------------------------------------------------------------
1 | This is the <%= cameledName %> directive.
2 |
3 |
--------------------------------------------------------------------------------
/templates/root/_bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "app/bower_components"
3 | }
4 |
--------------------------------------------------------------------------------
/templates/styles/_placeholders/_some-placeholder.scss:
--------------------------------------------------------------------------------
1 | %some-placeholder {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/assets/gulp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/johannesjo/generator-modular-angular/HEAD/assets/gulp.png
--------------------------------------------------------------------------------
/assets/angular.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/johannesjo/generator-modular-angular/HEAD/assets/angular.png
--------------------------------------------------------------------------------
/assets/bower.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/johannesjo/generator-modular-angular/HEAD/assets/bower.png
--------------------------------------------------------------------------------
/assets/cordova.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/johannesjo/generator-modular-angular/HEAD/assets/cordova.png
--------------------------------------------------------------------------------
/assets/libsass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/johannesjo/generator-modular-angular/HEAD/assets/libsass.png
--------------------------------------------------------------------------------
/assets/yeoman.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/johannesjo/generator-modular-angular/HEAD/assets/yeoman.png
--------------------------------------------------------------------------------
/templates/app/controller.html:
--------------------------------------------------------------------------------
1 |
2 |
This is the <%= classedName %> view
3 |
4 |
--------------------------------------------------------------------------------
/templates/styles/base/_lists.scss:
--------------------------------------------------------------------------------
1 | ul {
2 | li {
3 |
4 | }
5 | }
6 |
7 | ol {
8 | li {
9 |
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/templates/styles/base/_typography.scss:
--------------------------------------------------------------------------------
1 | h1,
2 | h2,
3 | h3,
4 | h4,
5 | h5,
6 | h6 {
7 |
8 | }
9 |
10 | p {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/templates/root/_gulpfile.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | // require all task files
3 | var requireDir = require('require-dir');
4 | requireDir('./tasks');
5 |
--------------------------------------------------------------------------------
/templates/root/_travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - '0.10'
4 | before_script:
5 | - 'npm install -g bower grunt-cli'
6 | - 'bower install'
7 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .tmp
3 | .sass-cache
4 | .grunt
5 | bower_components
6 | dist/example
7 | .idea/
8 | *.DS_*
9 | npm-debug.log
10 | coverage/
11 | .test-instance/
--------------------------------------------------------------------------------
/templates/styles/base/_buttons.scss:
--------------------------------------------------------------------------------
1 | button {
2 | text-align: center;
3 |
4 | &:hover {
5 |
6 | }
7 | &:active {
8 |
9 | }
10 | &:focus {
11 |
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/templates/styles/base/_tables.scss:
--------------------------------------------------------------------------------
1 | table {
2 |
3 | }
4 |
5 | thead {
6 |
7 | }
8 |
9 | tbody {
10 |
11 | }
12 |
13 | tfoot {
14 |
15 | }
16 |
17 | tr {
18 |
19 | }
20 |
21 | td {
22 |
23 | }
24 |
--------------------------------------------------------------------------------
/templates/root/_gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | dist
3 | www
4 | platforms
5 | release
6 | .tmp
7 | app/styles/**/*.css
8 | app/styles/**/*.css.map
9 | .sass-cache
10 | bower_components
11 | app/bower_components
12 | *.log
13 |
--------------------------------------------------------------------------------
/templates/app/_app.spec.js:
--------------------------------------------------------------------------------
1 | describe('<%= scriptAppName %>', () => {
2 | 'use strict';
3 |
4 | beforeEach(module('<%= scriptAppName %>'));
5 |
6 | it('should always work', () => {
7 | expect(true)
8 | .toBe(true);
9 | });
10 | });
11 |
--------------------------------------------------------------------------------
/templates/app/routes.spec.js:
--------------------------------------------------------------------------------
1 | describe('<%= scriptAppName %>.routes', () => {
2 | 'use strict';
3 |
4 | beforeEach(module('<%= scriptAppName %>'));
5 |
6 | it('should be defined', () => {
7 | expect(true)
8 | .toBe(true);
9 | });
10 | });
--------------------------------------------------------------------------------
/templates/app/_app.js:
--------------------------------------------------------------------------------
1 | /**
2 | * @ngdoc overview
3 | * @name <%= scriptAppName %>
4 | * @description
5 | * # <%= scriptAppName %>
6 | *
7 | * Main module of the application.
8 | */
9 |
10 | (() => {
11 | 'use strict';
12 |
13 | angular
14 | .module('<%= scriptAppName %>', [<%- angularModules %>]);
15 | })();
--------------------------------------------------------------------------------
/s/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | var ScriptBase = require('../sub-generator-base.js');
3 |
4 | module.exports = ScriptBase.extend({
5 | initializing: function() {
6 | // needs to be called manually
7 | this.init();
8 | },
9 | createFactoryFiles: function createFactoryFiles() {
10 | this.generateSourceAndTest('service');
11 | }
12 | });
--------------------------------------------------------------------------------
/filter/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | var ScriptBase = require('../sub-generator-base.js');
3 |
4 | module.exports = ScriptBase.extend({
5 | initializing: function() {
6 | // needs to be called manually
7 | this.init();
8 | },
9 | createFactoryFiles: function createFactoryFiles() {
10 | this.generateSourceAndTest('filter');
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/p/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | var ScriptBase = require('../sub-generator-base.js');
3 |
4 | module.exports = ScriptBase.extend({
5 | initializing: function() {
6 | // needs to be called manually
7 | this.init();
8 | },
9 | createFactoryFiles: function createFactoryFiles() {
10 | this.generateSourceAndTest('provider');
11 | }
12 | });
13 |
--------------------------------------------------------------------------------
/f/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | var ScriptBase = require('../sub-generator-base.js');
3 |
4 | module.exports = ScriptBase.extend({
5 | initializing: function() {
6 | // needs to be called manually
7 | this.init();
8 | },
9 | createFactoryFiles: function createFactoryFiles() {
10 | this.generateSourceAndTest('factory');
11 | }
12 | });
13 |
14 |
15 |
--------------------------------------------------------------------------------
/decorator/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | var ScriptBase = require('../sub-generator-base.js');
3 |
4 | module.exports = ScriptBase.extend({
5 | initializing: function() {
6 | // needs to be called manually
7 | this.init();
8 | },
9 | createFactoryFiles: function createFactoryFiles() {
10 | this.generateSourceAndTest('decorator');
11 | }
12 | });
13 |
14 |
15 |
--------------------------------------------------------------------------------
/templates/e2e-tests/example.e2e.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | describe('The home view', function ()
4 | {
5 | var page;
6 |
7 | beforeEach(function ()
8 | {
9 | browser.get('http://localhost:3000/index.html');
10 | page = require('./home.po');
11 | });
12 |
13 | it('runs e2e tests', function ()
14 | {
15 | expect(page.body.count()).toBeGreaterThan(1);
16 | });
17 |
18 | });
19 |
--------------------------------------------------------------------------------
/templates/styles/base/_forms.scss:
--------------------------------------------------------------------------------
1 | form {
2 |
3 | }
4 |
5 | fieldset {
6 |
7 | }
8 |
9 | input {
10 | &[type="text"],
11 | &[type="password"],
12 | &[type="email"] {
13 |
14 | }
15 |
16 | &[type="radio"] {
17 |
18 | }
19 |
20 | &[type="checkbox"] {
21 |
22 | }
23 |
24 | &[type="number"] {
25 |
26 | }
27 | }
28 |
29 | select {
30 |
31 | }
32 |
33 | textarea {
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/templates/e2e-tests/po/home.po.js:
--------------------------------------------------------------------------------
1 | /**
2 | * This file uses the Page Object pattern
3 | * @see https://docs.google.com/presentation/d/1B6manhG0zEXkC-H-tPo2vwU06JhL8w9-XCF9oehXzAQ
4 | */
5 |
6 | 'use strict';
7 |
8 | var MainPage = function ()
9 | {
10 | this.body = element(by.css('body'));
11 | };
12 |
13 | MainPage.prototype.goTo = function ()
14 | {
15 | return browser.get('/');
16 | };
17 |
18 | module.exports = new MainPage();
19 |
--------------------------------------------------------------------------------
/templates/styles/base/_page.scss:
--------------------------------------------------------------------------------
1 | * {
2 | // global reset and border-box
3 | &,
4 | &:after,
5 | &:before {
6 | -webkit-box-sizing: border-box;
7 | -moz-box-sizing: border-box;
8 | box-sizing: border-box;
9 | }
10 | }
11 |
12 | body,
13 | html {
14 | // prevent overflow
15 | width: 100%;
16 | max-width: 100%;
17 | overflow-x: hidden;
18 | }
19 |
20 | main {
21 |
22 | }
23 |
24 | article {
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | before_install:
3 | - "export DISPLAY=:99.0"
4 | - "sh -e /etc/init.d/xvfb start"
5 | node_js:
6 | - '5'
7 | before_script:
8 | - npm install -g istanbul
9 | - npm install -g mocha
10 |
11 | script: make test-full
12 | after_success:
13 | - make coveralls
14 | addons:
15 | apt:
16 | sources:
17 | - ubuntu-toolchain-r-test
18 | packages:
19 | - gcc-4.9
20 | - g++-4.9
21 | before_install:
22 | - export CC="gcc-4.9" CXX="g++-4.9"
--------------------------------------------------------------------------------
/templates/root/_editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig helps developers define and maintain consistent
2 | # coding styles between different editors and IDEs
3 | # editorconfig.org
4 |
5 | root = true
6 |
7 |
8 | [*]
9 | charset = utf-8
10 | end_of_line = lf
11 | indent_size = 4
12 | indent_style = space
13 | insert_final_newline = true
14 | trim_trailing_whitespace = true
15 |
16 | [*.md]
17 | trim_trailing_whitespace = false
18 |
19 | [{package.json,bower.json,.travis.yml}]
20 | indent_size = 2
21 |
--------------------------------------------------------------------------------
/templates/styles/base/_icons.scss:
--------------------------------------------------------------------------------
1 | [class^="icon-"], [class*=" icon-"] {
2 | font-family: 'icon-font';
3 | speak: none;
4 | font-style: normal;
5 | font-weight: normal;
6 | font-variant: normal;
7 | text-transform: none;
8 | line-height: 1;
9 | /* Better Font Rendering =========== */
10 | -webkit-font-smoothing: antialiased;
11 | -moz-osx-font-smoothing: grayscale;
12 | }
13 |
--------------------------------------------------------------------------------
/templates/root/_config.xml:
--------------------------------------------------------------------------------
1 |
2 |