chore(generators): update page generator

This commit is contained in:
Tim Lancina
2016-01-07 14:59:25 -06:00
parent 67c808f4d5
commit 10e0558cd1
4 changed files with 25 additions and 37 deletions

View File

@ -1,36 +1,12 @@
/*
ionic g page about
what should happen:
create directories if not existing: /www, /www/app, /www/app/about
create files (about.html, about.scss, about.js) in /www/app/about
*/
var fs = require('fs'),
Generator = module.exports,
Generate = require('../../generate'),
path = require('path'),
Q = require('q');
/*
Run: generate a page template from the name and save
it in the desired app directory
@options
name: Page name
appDirectory: App directory of where to save file
*/
Generator.run = function run(options) {
Generate.createScaffoldDirectories({appDirectory: options.appDirectory, componentDirectory: 'pages', fileName: options.fileName});
// Generate.defaultTemplates(options)
options.rootDirectory = options.rootDirectory || path.join('app', 'pages');
var savePath = path.join(options.appDirectory, options.rootDirectory, options.fileName);
var path = require('path'),
Generator = require('../../generator');
var templates = Generate.loadGeneratorTemplates(__dirname);
module.exports = PageGenerator;
templates.forEach(function(template) {
options.templatePath = template.file;
var renderedTemplate = Generate.renderTemplateFromFile(options);
var saveFilePath = path.join(savePath, [options.fileName, template.type].join(''));
// console.log('renderedTemplate', renderedTemplate, 'saving to', saveFilePath);
console.log('√ Create'.blue, path.relative(options.appDirectory, saveFilePath));
fs.writeFileSync(saveFilePath, renderedTemplate);
});
};
function PageGenerator(options) {
Generator.call(this, options);
this.directory = path.join('app', 'pages');
}
PageGenerator.prototype = Object.create(Generator.prototype);

View File

@ -1,6 +1,12 @@
<!--
Generated template for the <%= jsClassName %> page.
See http://ionicframework.com/docs/v2/components/#navigation for more info on
Ionic pages and navigation.
-->
<ion-navbar *navbar>
<ion-title><%= jsClassName %></ion-title>
</ion-navbar>
<ion-content padding class="<%= cssClassName %>">
<ion-content padding class="<%= fileName %>">
</ion-content>

View File

@ -1,7 +1,13 @@
import {Page, NavController} from 'ionic/ionic';
/*
Generated class for the <%= jsClassName %> page.
See http://ionicframework.com/docs/v2/components/#navigation for more info on
Ionic pages and navigation.
*/
@Page({
templateUrl: 'app/<%= fileName %>/<%= fileName %>.html',
templateUrl: '<%= directory %>/<%= fileName %>/<%= fileName %>.html',
})
export class <%= jsClassName %> {
constructor(nav: NavController) {

View File

@ -1,3 +1,3 @@
.<%= cssClassName %> {
.<%= fileName %> {
}