diff --git a/History.md b/History.md index 0e1fa7b..c09148e 100644 --- a/History.md +++ b/History.md @@ -1,4 +1,9 @@ -1.3.1 / 2015-09-1 +1.4.1 / 2015-10-11 +================== + * add package generator + * windows fixes + +1.3.1 / 2015-09-01 ================== * fix run error on windows * template formatting fixes diff --git a/lib/generators/package.js b/lib/generators/package.js new file mode 100644 index 0000000..2cef0c2 --- /dev/null +++ b/lib/generators/package.js @@ -0,0 +1,43 @@ +var path = require('path'); +var _ = require('underscore'); + +Generator.create({ + name: 'package', + aliases: ['p'], + usage: 'iron {generate, g}:{package, p} [path/]', + description: 'Generate scaffolding for a Package.', + examples: [ + 'iron g:package todos:package' + ] +}, function (args, opts) { + + var file = this.cssCase(opts.resourceName); + + var pathToTemplate = this.pathFromApp('packages', opts.dir, file); + + var pathFromApp = this.pathFromApp('packages', opts.dir, file, 'package.js'); + + var context = { + name: opts.resourceName, + className: this.classCase(opts.resourceName), + myPath: path.relative(this.pathFromProject(), pathToTemplate), + fileName: file + }; + + this.template( + 'package/package.js', + pathFromApp, + context + ); + + var that = this; + _.each(['lib', 'client', 'server', 'test'], function(folder) { + var packageFile = pathToTemplate + '/' + folder + '/' + file + '.js'; + that.template( + 'package/' + folder + '/package.js', + packageFile, + context + ); + }); + +}); diff --git a/lib/generators/stylesheet.js b/lib/generators/stylesheet.js index a1d1652..c384992 100644 --- a/lib/generators/stylesheet.js +++ b/lib/generators/stylesheet.js @@ -22,12 +22,3 @@ Generator.create({ context ); }); - -// use scss index file -// see: https://github.com/fourseven/meteor-scss/#controlling-load-order-since-200-beta_3 -var config = CurrentConfig.get(); -if (config && config.engines.css == 'scss') { - var destpath = this.pathFromApp('scss.json'); - var content = '{\n\t"useIndex" : true,\n\t"indexFilePath" : "client/stylesheets/main.scss"\n}' - this.createFile(destpath, content); -} diff --git a/lib/templates/app/lib/routes.js b/lib/templates/app/lib/routes.js new file mode 100644 index 0000000..8c7186c --- /dev/null +++ b/lib/templates/app/lib/routes.js @@ -0,0 +1,5 @@ +Router.configure({ + layoutTemplate: 'MasterLayout', + loadingTemplate: 'Loading', + notFoundTemplate: 'NotFound' +}); diff --git a/lib/templates/app/lib/routes.js.coffee b/lib/templates/app/lib/routes.js.coffee new file mode 100644 index 0000000..72a3333 --- /dev/null +++ b/lib/templates/app/lib/routes.js.coffee @@ -0,0 +1,5 @@ +Router.configure + layoutTemplate: 'MasterLayout' + loadingTemplate: 'Loading' + notFoundTemplate: 'NotFound' + diff --git a/lib/templates/app/lib/routes.js.es6 b/lib/templates/app/lib/routes.js.es6 new file mode 100644 index 0000000..8c7186c --- /dev/null +++ b/lib/templates/app/lib/routes.js.es6 @@ -0,0 +1,5 @@ +Router.configure({ + layoutTemplate: 'MasterLayout', + loadingTemplate: 'Loading', + notFoundTemplate: 'NotFound' +}); diff --git a/lib/templates/package/client/package.js b/lib/templates/package/client/package.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/client/package.js.coffee b/lib/templates/package/client/package.js.coffee new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/client/package.js.es6 b/lib/templates/package/client/package.js.es6 new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/lib/package.js b/lib/templates/package/lib/package.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/lib/package.js.coffee b/lib/templates/package/lib/package.js.coffee new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/lib/package.js.es6 b/lib/templates/package/lib/package.js.es6 new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/package.js b/lib/templates/package/package.js new file mode 100644 index 0000000..ba8c494 --- /dev/null +++ b/lib/templates/package/package.js @@ -0,0 +1,36 @@ +Package.describe({ + name: "<%= name %>", + summary: "What this does", + version: "1.0.0", + git: "https://github.com//<%= fileName %>.git", +}); + +Package.onUse(function (api) { + api.versionsFrom('0.9.0'); + + api.use('ecmascript'); + + var packages = [ + 'iron:router' + ]; + + api.use(packages); + api.imply(packages); + + api.addFiles('lib/<%= fileName %>.js', ['client', 'server']); + api.addFiles('client/<%= fileName %>.js', 'client'); + api.addFiles('server/<%= fileName %>.js', 'server'); + + api.export('<%= className %>'); +}); + +Package.onTest(function (api) { + api.use('<%= name %>'); + api.use('ecmascript'); + api.use('tinytest@1.0.0'); + api.addFiles('test/<%= name %>.js', 'server'); +}); + +Npm.depends({ + "package": "X.X.X" +}); diff --git a/lib/templates/package/server/package.js b/lib/templates/package/server/package.js new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/server/package.js.coffee b/lib/templates/package/server/package.js.coffee new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/server/package.js.es6 b/lib/templates/package/server/package.js.es6 new file mode 100644 index 0000000..e69de29 diff --git a/lib/templates/package/test/package.js b/lib/templates/package/test/package.js new file mode 100644 index 0000000..50fc020 --- /dev/null +++ b/lib/templates/package/test/package.js @@ -0,0 +1,3 @@ +Tinytest.add('example', function (test) { + test.equal(true, true); +}); diff --git a/lib/templates/package/test/package.js.coffee b/lib/templates/package/test/package.js.coffee new file mode 100644 index 0000000..d389e24 --- /dev/null +++ b/lib/templates/package/test/package.js.coffee @@ -0,0 +1,2 @@ +Tinytest.add 'example', (test) -> + test.equal true, true diff --git a/lib/templates/package/test/package.js.es6 b/lib/templates/package/test/package.js.es6 new file mode 100644 index 0000000..50fc020 --- /dev/null +++ b/lib/templates/package/test/package.js.es6 @@ -0,0 +1,3 @@ +Tinytest.add('example', function (test) { + test.equal(true, true); +}); diff --git a/lib/tools/strings.js b/lib/tools/strings.js index 7acbec0..41f87fb 100644 --- a/lib/tools/strings.js +++ b/lib/tools/strings.js @@ -27,7 +27,7 @@ module.exports.capitalize = function capitalize(str) { module.exports.classCase = function classCase(str) { var self = this; // '_' or '-' or '.' or '/' - var re = /_|-|\.|\//; + var re = /_|-|:|\.|\//; if (!str) return ''; @@ -38,7 +38,7 @@ module.exports.classCase = function classCase(str) { }; /** - * Given FooBar, returns fooBar. + * Given FooBar, returns fooBar. */ module.exports.camelCase = function camelCase(str) { var output = this.classCase(str); diff --git a/package.json b/package.json index 38f7464..4659a2f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iron-meteor", - "version": "1.3.2", + "version": "1.4.1", "description": "A command line tool for scaffolding Meteor applications.", "homepage": "https://github.com/iron-meteor/iron-cli", "bugs": {